Come colpire la rete, parte 2 Proteggi la tua VPN (DD-WRT)
Ti abbiamo mostrato come attivare WOL da remoto tramite "Port Knocking" sul tuo router. In questo articolo, mostreremo come utilizzarlo per proteggere un servizio VPN.
Immagine di Aviad Raviv & bfick.
Prefazione
Se hai utilizzato le funzionalità incorporate di DD-WRT per VPN o hai un altro server VPN nella tua rete, potresti apprezzare la possibilità di proteggerlo dagli attacchi di forza bruta nascondendolo dietro una sequenza di colpi. In questo modo, filtrerai gli script kiddies che stanno tentando di accedere alla tua rete. Detto questo, come affermato nell'articolo precedente, il knockout del porto non sostituisce una buona password e / o politica di sicurezza. Ricorda che con abbastanza pazienza un attaccante può scoprire la sequenza ed eseguire un attacco di replay.
Tieni anche a mente che il lato negativo dell'implementazione di questo è che quando qualsiasi client / VPN desidera connettersi, dovrebbe attivare la sequenza dei colpi in anticipo e che se non riescono a completare la sequenza per qualsiasi motivo, non saranno affatto in grado di utilizzare la VPN.
Panoramica
Per proteggere * il servizio VPN, prima disabiliteremo tutte le comunicazioni possibili bloccando la porta di istanziazione del 1723. Per raggiungere questo obiettivo, useremo iptables. Questo perché, è così che la comunicazione viene filtrata sulla maggior parte delle moderne distribuzioni Linux / GNU in generale e su DD-WRT in particolare. Se desideri maggiori informazioni su iptables checkout la sua voce wiki, e dare un'occhiata al nostro precedente articolo sull'argomento. Una volta che il servizio è protetto, creeremo una sequenza di knock che aprirà temporaneamente la porta di istanziazione della VPN e la chiuderà automaticamente dopo un intervallo di tempo configurato, mantenendo la sessione VPN già stabilita connessa.
Nota: in questa guida, stiamo utilizzando il servizio VPN PPTP come esempio. Detto questo, lo stesso metodo può essere utilizzato per altri tipi di VPN, dovrai solo cambiare la porta bloccata e / o il tipo di comunicazione.
Prerequisiti, ipotesi e raccomandazioni
- Si presuppone / è necessario disporre di un router DD-WRT abilitato per Opkg.
- Si presume / richiesto che siano già stati eseguiti i passaggi nella guida "Come bussare alla rete (DD-WRT)".
- Si presume una certa conoscenza di rete.
Lasciamo scoppiare.
Predefinito Regola "Blocca nuove VPN" su DD-WRT
Anche se il sottotitolo di "codice" probabilmente funzionerebbe su tutti gli iptables che si rispettano, usando la distribuzione Linux / GNU, perché ci sono così tante varianti là fuori che mostreremo solo come usarlo su DD-WRT. Nulla ti impedisce, se lo desideri, di implementarlo direttamente nella casella VPN. Tuttavia, come farlo, va oltre lo scopo di questa guida.
Poiché vogliamo aumentare il firewall del router, è logico aggiungere lo script "Firewall". In questo modo, il comando iptables potrebbe essere eseguito ogni volta che il firewall viene aggiornato e quindi mantenere il nostro aumento in atto per mantenere.
Dalla web-GUI di DD-WRT:
- Vai su "Amministrazione" -> "Comandi".
- Inserisci il "codice" sotto nella casella di testo:
inline = "$ (stato iptables -L INPUT -n | grep -n" RELATED, ESTABLISHED "| awk -F: 'print $ 1')"; Inline = $ (($ inline-2 + 1)); iptables -I INPUT "$ inline" -p tcp --dport 1723 -j DROP
- Clicca su "Salva firewall".
- Fatto.
Cos'è questo comando "Voodoo"?
Il comando "magia voodoo" di cui sopra fa quanto segue:
- Trova dove si trova la linea iptable che consente il passaggio della comunicazione già stabilita. Lo facciamo, perché A. Sui router DD-WRT, se il servizio VPN è abilitato, si troverà proprio sotto questa linea e B. È essenziale per il nostro obiettivo continuare a consentire alle sessioni VPN già stabilite di continuare a vivere dopo il evento di bussare.
- Deduce due (2) dall'output del comando listing per tenere conto dell'offset causato dalle intestazioni delle colonne informative. Una volta fatto, aggiunge uno (1) al numero sopra, in modo che la regola che stiamo inserendo arriverà subito dopo la regola che consente la comunicazione già stabilita. Ho lasciato questo semplicissimo "problema matematico" qui, solo per fare la logica del "perché uno ha bisogno di ridurne uno dal posto della regola invece di aggiungerne uno".
Configurazione KnockD
Dobbiamo creare una nuova sequenza di attivazione che consenta la creazione di nuove connessioni VPN. Per fare ciò, modifica il file knockd.conf emettendo in un terminale:
vi /opt/etc/knockd.conf
Aggiungi alla configurazione esistente:
[Enable-VPN]
sequenza = 02,02,02,01,01,01,2010,2010,2010
seq_timeout = 60
start_command = iptables -I INPUT 1 -s% IP% -p tcp --dport 1723 -j ACCEPT
cmd_timeout = 20
stop_command = iptables -D INPUT -s% IP% -p tcp --dport 1723 -j ACCEPT
Questa configurazione:
- Imposta la finestra di opportunità per completare la sequenza, a 60 secondi. (Si consiglia di tenerlo il più corto possibile)
- Ascolta una sequenza di tre colpi sulle porte 2, 1 e 2010 (questo ordine è intenzionale per eliminare gli scanner delle porte fuori traccia).
- Una volta che la sequenza è stata rilevata, eseguire "start_command". Questo comando "iptables" posizionerà un "accetta traffico destinato alla porta 1723 da cui provengono i colpi" in cima alle regole del firewall. (La direttiva% IP% è trattata in modo speciale da KnockD e viene sostituita con l'IP dell'origine degli urti).
- Attendi 20 secondi prima di emettere il "stop_command".
- Esegui "stop_command". Dove questo comando "iptables" fa il contrario di quanto sopra e cancella la regola che consente la comunicazione.
AutoreI consigli di
Mentre dovresti essere tutto pronto, ci sono un paio di punti che ritengo debbano essere menzionati.
- Risoluzione dei problemi. Ricorda che se hai problemi, il segmento "risoluzione dei problemi" alla fine del primo articolo dovrebbe essere la tua prima fermata.
- Se vuoi, puoi fare in modo che le direttive "start / stop" eseguano più comandi separandoli con un semi-colen (;) o persino uno script. In questo modo ti consentirai di fare qualcosa di carino. Per esempio, ho knockd mandami un * Email che mi dice che una sequenza è stata attivata e da dove.
- Non dimenticare che "C'è un'app per questo" e anche se non è menzionato in questo articolo, sei incoraggiato ad afferrare il programma di knocker Android di StavFX.
- In tema di Android, non dimenticare che esiste un client VPN PPTP solitamente integrato nel sistema operativo dal produttore.
- Il metodo di, bloccare inizialmente qualcosa e quindi continuare a consentire comunicazioni già stabilite, può essere utilizzato praticamente su qualsiasi comunicazione basata su TCP. Infatti, nel Knockd su DD-WRT 1 ~ 6 film, ho fatto un passo indietro quando, ho usato il protocollo desktop remoto (RDP) che usa la porta 3389 come esempio.
Chi disturba il mio sonno?