If-Koubou

Cum să vă bați în rețea, Partea 2: Protejați-vă VPN-ul (DD-WRT)

Cum să vă bați în rețea, Partea 2: Protejați-vă VPN-ul (DD-WRT) (Cum să)

V-am arătat cum să declanșați WOL de la distanță prin "Port Knocking" pe router. În acest articol, vom arăta cum să îl folosim pentru a proteja un serviciu VPN.

Imagine de Aviad Raviv & bfick.

Prefaţă

Dacă ați utilizat funcționalitatea DD-WRT pentru VPN sau dacă aveți un alt server VPN în rețeaua dvs., ați putea aprecia capacitatea de ao proteja de atacurile de forță brute, ascunzându-l în spatele unei secvențe de bat. Făcând acest lucru, veți filtra infantile script care încearcă să obțină acces la rețeaua dvs. Cu acest lucru a spus, așa cum este menționat în articolul precedent, baterea portului nu reprezintă un înlocuitor pentru o bună parolă și / sau politică de securitate. Amintiți-vă că, cu suficientă răbdare, un atacator poate descoperi secvența și poate efectua un atac de replay.
De asemenea, rețineți că dezavantajul punerii în aplicare a acestui lucru este că atunci când orice client VPN / e doriți să vă conectați, aceștia ar trebui să declanșeze secvența de batdinainte și că, dacă nu pot completa secvența din orice motiv, nu vor putea să facă VPN deloc.

Prezentare generală

Pentru a proteja * serviciul VPN, vom dezactiva mai întâi toate comunicările posibile prin blocarea portului de instanță din 1723. Pentru a atinge acest obiectiv, vom folosi iptables. Acest lucru se datorează faptului că comunicarea se filtrează pe cele mai moderne distribuții Linux / GNU în general și pe DD-WRT în special. Dacă doriți mai multe informații despre iptables, verificați intrarea wiki și consultați articolul nostru anterior despre acest subiect. Odată ce serviciul este protejat, vom crea o secvență de răsturnare care ar deschide temporar portul de instanță VPN și, de asemenea, va închide automat după o perioadă de timp configurată, păstrând în același timp conexiunea VPN deja stabilită.

Notă: În acest ghid, folosim serviciul PPTP VPN ca exemplu. Cu aceasta, aceeași metodă poate fi utilizată pentru alte tipuri de VPN, va trebui doar să modificați portul blocat și / sau tipul de comunicare.

Condiții prealabile, presupuneri și recomandări

  • Se presupune / este necesar să aveți un router DD-WRT cu Opkg activat.
  • Se presupune / este necesar ca ați efectuat deja pașii din ghidul "Cum să introduceți în rețea (DD-WRT)".
  • Unele cunoștințe de rețea sunt asumate.

Permiteți-vă să crăpați.

Mod implicit "Blocați noua rețea VPN" pe DD-WRT

În timp ce fragmentul de cod "de mai jos" ar funcționa probabil pe fiecare distribuție Linux / GNU, care respectă iptables, pentru că există atât de multe variante, vom arăta cum să îl folosim pe DD-WRT. Nimic nu vă oprește, dacă doriți, să îl implementați direct pe caseta VPN. Cu toate acestea, cum să faceți acest lucru, depășește domeniul de aplicare al acestui ghid.

Pentru că vrem să augmentăm Firewall-ul routerului, este logic să adăugăm script-ul "Firewall". Dacă procedăm astfel, comanda iptables va fi executată de fiecare dată când firewall-ul este reîmprospătat și, astfel, menținerea augmentării noastre în loc să fie păstrată.

Din Web-GUI al DD-WRT:

  • Accesați "Administrare" -> "Comenzi".
  • Introduceți codul de mai jos în caseta text:

    inline = "$ (iptables -L INPUT -n | grep -n" Stare relaționată, stabilită "| awk -F: 'print $ 1')"; inline = $ (($ inline-2 + 1)); iptables -I INPUT "$ inline" -p tcp -dport 1723 -j DROP

  • Dați clic pe "Salvați paravanul de protecție".
  • Terminat.

Ce este această comandă "Voodoo"?

Comanda de mai sus "magie voodoo" face următoarele:

  • Găsește unde este linia iptable care permite comunicarea deja stabilită să treacă. Facem acest lucru, deoarece A. În cazul routerelor DD-WRT, dacă serviciul VPN este activat, acesta va fi situat chiar sub această linie și B. Este esențial ca obiectivul nostru să continuăm să permitem existența sesiunilor VPN deja înființate să trăiască după bataie eveniment.
  • Deduce două (2) de la ieșirea comenzii de listare pentru a explica decalajul cauzat de anteturile coloanelor informaționale. După ce sa terminat, se adaugă unul (1) la numărul de mai sus, astfel că regula pe care o inserăm va veni imediat după regula care permite comunicarea deja stabilită. Am lăsat aici această simplă "problemă de matematică", doar pentru a face logica "de ce trebuie să reduci una de la locul regulii în loc să adaugi una la ea" clar.

Configurație KnockD

Trebuie să creați o nouă secvență de declanșare care să permită crearea conexiunilor VPN noi. Pentru a face acest lucru, editați fișierul knockd.conf emise într-un terminal:

vi /opt/etc/knockd.conf

Adăugați la configurația existentă:

[Activați-VPN]
secvența = 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

Această configurație va:

  • Setați fereastra de oportunitate pentru a finaliza secvența, până la 60 de secunde. (Este recomandat să păstrați acest lucru cât mai scurt posibil)
  • Ascultați o secvență de trei lovituri pe porturile 2, 1 și 2010 (această comandă este deliberată pentru a arunca scanerele de pe port).
  • Odată ce secvența a fost detectată, executați comanda "start_command". Această comandă "iptables" va plasa un "acceptă trafic destinat portului 1723 de unde au venit bătăile" din partea superioară a regulilor de firewall. (Directiva% IP% este tratată special de KnockD și este înlocuită cu IP de origine knocks).
  • Așteptați 20 de secunde înainte de a emite "stop_command".
  • Executați "stop_command".Unde această comandă "iptables" face inversa celei de mai sus și șterge regula care permite comunicarea.
Asta este, serviciul dvs. VPN ar trebui să poată fi conectat acum numai după un "knock" de succes.

Autorsfaturi

În timp ce ar trebui să fiți pregătiți, există câteva puncte pe care trebuie să le menționăm.

  • Depanare. Rețineți că, dacă aveți probleme, segmentul de "depanare" de la sfârșitul primului articol ar trebui să fie prima oprire.
  • Dacă doriți, puteți avea directivele "start / stop" să execute mai multe comenzi separând-le cu un semi-colen (;) sau chiar cu un script. Făcând acest lucru vă va permite să faceți niște lucruri minunate. De exemplu, am bătut trimite-mi un e-mail * mi-a spus că o secvență a fost declanșat și de unde.
  • Nu uitați că "există o aplicație pentru asta" și chiar dacă nu este menționată în acest articol, sunteți încurajați să luați programul de la Knocker de la StavFX.
  • În timp ce cu privire la Android, nu uitați că există un client VPN PPTP, de obicei, construit în sistem de operare de la producător.
  • Metoda de a bloca ceva inițial și apoi a continua să permită comunicarea deja stabilită poate fi utilizată în practic orice comunicare bazată pe TCP. De fapt, în filmul Knockd on DD-WRT 1 ~ 6, am făcut ceva înapoi atunci când am folosit protocolul desktop la distanță (RDP) care utilizează portul 3389 ca exemplu.
Notă: Pentru a face acest lucru, va trebui să obțineți funcționalitatea de e-mail pe router-ul dvs., care în prezent într-adevăr nu funcționează deoarece snapshot-ul SVN al pachetelor opkg OpenWRT este în dezordine. De aceea vă sugerez să utilizați un knockd direct pe caseta VPN care vă permite să utilizați toate opțiunile de trimitere a e-mailurilor disponibile în Linux / GNU, cum ar fi SSMTP și sendEmail, pentru a menționa câteva.

Cine îmi tulbura somnul?