6Aug

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 ciò, 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.
Ricorda anche che il lato negativo dell'implementazione di questo è che quando qualsiasi client VPN desidera connettersi, dovrebbe prima attivare la sequenza di battiti e che se non riescono a completare la sequenza per qualsiasi motivo, essinon sarà in grado di VPN a tutti. Panoramica

Al fine di proteggere * il servizio VPN, prima disabilitiamo tutte le possibili comunicazioni con esso 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 battiti che aprirebbe temporaneamente la porta di istanziazione VPN e la chiuderà automaticamente dopo un intervallo di tempo configurato, mantenendo la sessione VPN già stabilita collegata.

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 amp;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 conoscenza di rete.

Consente di ottenere cracking.

Default Regola "Block new VPNs" su DD-WRT

Mentre il frammento di codice sottostante probabilmente funzionerebbe su tutti gli iptables che si rispettano, usando la distribuzione Linux / GNU, perché ci sono così tante varianti là fuori chemostra 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 può essere eseguito ogni volta che il firewall viene aggiornato e quindi mantenere il nostro aumento in vigore per il mantenimento.

dalla web-GUI del DD-WRT:

  • Vai a "Amministrazione" - & gt;“Comandi”.
  • Immettere il seguente "codice" 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

  • Fare clic 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 ilevento 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 di matematica" qui, solo per fare la logica del "perché uno ha bisogno di ridurne uno dal posto della regola invece di aggiungerne uno" chiaro.

Configurazione di KnockD

Abbiamo bisogno di creare una nuova sequenza di attivazione che consentirà di creare 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% -ptcp --dport 1723 -j ACCEPT

Questa configurazione:

  • Imposta la finestra di opportunità per completare la sequenza, a 60 secondi.(Si consiglia di mantenerlo il più corto possibile)
  • Ascoltare una sequenza di tre colpi sulle porte 2, 1 e 2010( questo ordine è intenzionale per eliminare gli scanner delle porte fuori traccia).
  • Una volta rilevata la sequenza, 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 appositamente da KnockD e viene sostituita con l'IP dell'origine degli urti).
  • Attendere 20 secondi prima di emettere il "stop_command".
  • Esegue il "stop_command".Dove questo comando "iptables" fa il contrario di quanto sopra e cancella la regola che consente la comunicazione.
Ecco, il tuo servizio VPN dovrebbe essere collegabile solo dopo un "knock" riuscito.

Author 's tips

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 lo desideri, puoi avere le direttive "start / stop" che eseguono 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 è stata attivata una sequenza e da dove.
  • Non dimenticarti che "C'è un'app per questo" e anche se non è menzionato in questo articolo, sei incoraggiato ad afferrare il programma Android knocker di StavFX.
  • Mentre si parla di Android, non dimenticare che esiste un client VPN PPTP solitamente integrato nel sistema operativo dal produttore.
  • Il metodo per bloccare inizialmente qualcosa e quindi continuare a consentire la comunicazione già stabilita, 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.
Nota: per fare ciò, è necessario ottenere la funzionalità di posta elettronica sul router, che attualmente non ce n'è davvero una che funzioni perché l'istantanea SVN dei pacchetti opkg di OpenWRT è in disordine. Questo è il motivo per cui suggerisco di usare knockd direttamente nella casella VPN che ti consente di utilizzare tutte le opzioni di invio di email disponibili in Linux / GNU, come SSMTP e sendEmail per menzionarne alcune.

Chi disturba il mio sonno?