Cum să vă bateți în rețea, Partea 2 Protejați-vă VPN-ul (DD-WRT)
V-am arătat cum să activaț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 folosit funcționalitatea DD-WRT încorporată pentru VPN sau 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, ciocnirea 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 implementării 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 bat dinainte și că dacă nu pot finaliza 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țe din 1723. Pentru a atinge acest obiectiv, vom folosi iptables. Acest lucru se datorează faptului că modul în care comunicarea este filtrat 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 sa în wiki și aruncați o privire la 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țiere 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 comunicație.
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ă bat în rețea (DD-WRT)".
- Unele cunoștințe în 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, deoarece 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ă mărim firewall-ul routerului, este logic să adăugăm script-ul "Firewall". Procedând astfel, comanda iptables va fi executată de fiecare dată când firewall-ul este reîmprospătat și astfel păstrând augmentarea noastră în loc pentru a păstra.
De la 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 RELATED, ESTABLISHED "| 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 amplasat chiar sub această linie și B. Este esențial ca obiectivul nostru să continuăm să permitem existența sesiunilor VPN deja existente pentru a trăi după eveniment de batere.
- Deduce două (2) de la ieșirea comenzii de listare pentru a explica decalajul cauzat de antetele 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ă "problemă matematică" foarte simplă, doar pentru a face logica "de ce trebuie să reducem una de la locul regulii în loc să adăugăm 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 aceasta, 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ță = 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 porturilor off track).
- 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.
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 prin separarea lor cu un semi-colen (;) sau chiar 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 lui StavFX Android knocker.
- În timp ce cu privire la Android, nu uitați că există un client VPN PPTP, de obicei, încorporat în sistemul de operare de la producător.
- Metoda de a bloca ceva inițial și apoi a continua să permită comunicarea deja stabilită poate fi folosită în practic orice comunicare bazată pe TCP. De fapt, în filmul Knockd on DD-WRT 1 ~ 6, am făcut o cale înapoi atunci când am folosit protocolul desktop la distanță (RDP) care folosește portul 3389 ca exemplu.
Cine îmi tulbura somnul?