Slik knocker du inn i nettverket ditt, del 2 Beskytt din VPN (DD-WRT)
Vi har vist deg hvordan du utløser WOL eksternt ved å "Port Knocking" på ruteren din. I denne artikkelen vil vi vise hvordan du bruker den til å beskytte en VPN-tjeneste.
Bilde av Aviad Raviv & bfick.
Forord
Hvis du har brukt DD-WRTs innebygde funksjonalitet for VPN eller, har en annen VPN-server i nettverket ditt, kan du sette pris på evnen til å beskytte den mot brute force-angrep ved å gjemme den bak en knock-sekvens. Ved å gjøre dette vil du filtrere ut skriptkiddiene som prøver å få tilgang til nettverket ditt. Med det sagt, som angitt i den forrige artikkelen, er portklipping ikke en erstatning for et godt passord og / eller sikkerhetspolicy. Husk at med nok tålmodighet kan en angriper oppdage sekvensen og utføre et replay-angrep.
Vær også oppmerksom på at ulempen med å implementere dette er at når noen VPN-klienter / -personer ønsker å koble til, må de utløse knock-sekvensen forhånd og at hvis de ikke kan fullføre sekvensen av en eller annen grunn, vil de ikke kunne VPN i det hele tatt.
Oversikt
For å beskytte * VPN-tjenesten, vil vi først deaktivere all mulig kommunikasjon med den ved å blokkere den instanserende porten fra 1723. For å oppnå dette målet bruker vi iptables. Dette skyldes at kommunikasjon er filtrert på de fleste moderne Linux / GNU-distribusjoner generelt og spesielt på DD-WRT. Hvis du vil ha mer informasjon om iptables, kan du sjekke ut sin wiki-oppføring, og se på vår tidligere artikkel om emnet. Når tjenesten er beskyttet, vil vi opprette en knock-sekvens som midlertidig åpner VPN-instabiliseringsporten og også automatisk lukker den etter en konfigurert tid, samtidig som den allerede etablerte VPN-økten er koblet til.
Merk: I denne veiledningen bruker vi PPTP VPN-tjenesten som et eksempel. Med det sagt kan samme metode brukes til andre VPN-typer, du må bare endre den blokkerte porten og / eller kommunikasjonstypen.
Forutsetninger, antagelser og anbefalinger
- Det antas / kreves at du har en Opkg-aktivert DD-WRT-ruter.
- Det antas / kreves at du allerede har utført trinnene i "Guide to your network (DD-WRT)" guide.
- Noen nettverkskunnskaper antas.
Lar deg sprekke.
Misligholde "Blokker nye VPNer" -regel på DD-WRT
Mens koden nedenfor vil trolig virke på alle, selvrespektive, iptables-bruk, Linux / GNU-distribusjon, fordi det er så mange varianter der ute, viser vi bare hvordan du bruker det på DD-WRT. Ingenting hindrer deg, hvis du ønsker det, fra å implementere det direkte på VPN-boksen. Men hvordan gjør du det, ligger utenfor denne veiledningens omfang.
Fordi vi ønsker å utvide ruterenes brannmur, er det bare logisk at vi vil legge til i brannmurskriptet. Hvis du gjør det, ville det føre til at kommandoen iptables blir utført hver gang brannmuren er oppdatert og dermed holder vår utvidelse på plass for holder.
Fra DD-WRTs web-GUI:
- Gå til "Administrasjon" -> "Kommandoer".
- Skriv inn under "kode" i tekstboksen:
inline = "$ (iptables -L INPUT -n | grep -n" tilstand RELATED, ESTABLISHED "| awk -F: 'skriv ut $ 1')"; inline = $ (($ inline-2 + 1)); iptables -I INPUT "$ inline" -p tcp - port 1723 -j DROP
- Klikk på "Lagre brannmur".
- Ferdig.
Hva er denne "Voodoo" kommandoen?
Kommandoen ovenfor "voodoo magic" gjør følgende:
- Finnes hvor er iptable-linjen som gjør at allerede etablert kommunikasjon kan passere gjennom. Dette gjør vi fordi A. På DD-WRT-rutere, hvis VPN-tjenesten er aktivert, vil den være plassert like under denne linjen og B. Det er viktig for vårt mål om å fortsette å tillate allerede etablerte VPN-økter å leve videre etter at bankehendelse.
- Tiver to (2) fra utgangen av noteringskommandoen for å regne for kompensasjonen forårsaket av informasjons kolonneoverskriftene. Når det er gjort, legger du til en (1) til nummeret ovenfor, slik at regelen som vi legger inn, kommer like etter regelen som tillater allerede etablert kommunikasjon. Jeg har forlatt dette veldig enkle "matematikkproblemet" her, bare for å gjøre logikken til "hvorfor man trenger å redusere en fra statens sted i stedet for å legge til en til den" klar.
KnockD-konfigurasjon
Vi må opprette en ny utløsende sekvens som gjør det mulig å opprette nye VPN-tilkoblinger. For å gjøre dette, rediger knockd.conf filen ved å utstede i en terminal:
vi /opt/etc/knockd.conf
Legg til den eksisterende konfigurasjonen:
[Mulig-VPN]
sekvens = 02,02,02,01,01,01,2010,2010,2010
seq_timeout = 60
start_command = iptables -I INPUT 1 -s% IP% -p tcp - port 1723 -j ACCEPT
cmd_timeout = 20
stop_command = iptables -D INPUT -s% IP% -p tcp - port 1723 -j ACCEPT
Denne konfigurasjonen vil:
- Sett vinduet med mulighet til å fullføre sekvensen, til 60 sekunder. (Det anbefales å holde dette så kort som mulig)
- Lytt til en sekvens av tre baner på portene 2, 1 og 2010 (denne bestillingen er bevisst å kaste portskannere av spor).
- Når sekvensen er oppdaget, utfør "start_command". Denne kommandoen "iptables" vil plassere en "godta trafikk som er bestemt til port 1723 fra hvor knockene kom fra" på toppen av brannmurreglene. (% IP%-direktivet behandles spesielt av KnockD og erstattes med IP-nummeret til knocks-opprinnelsen).
- Vent i 20 sekunder før du utsteder "stop_command".
- Kjør "stop_command". Hvor denne kommandoen "iptables" gjør omvendt av ovenstående og sletter regelen som tillater kommunikasjon.
Forfatters tips
Mens du bør være ferdig, er det noen poeng som jeg føler trenger å nevne.
- Feilsøking. Husk at hvis du har problemer, må "feilsøking" -segmentet på slutten av den første artikkelen være ditt første stopp.
- Hvis du vil, kan du få "start / stop" -direktene til å utføre flere kommandoer ved å skille dem fra med en semi-colen (;) eller til og med et skript. Å gjøre det vil gjøre det mulig for deg å gjøre noen smarte ting. For eksempel har jeg knockd send meg en * Email som forteller meg at en sekvens har blitt utløst og hvorfra.
- Ikke glem at "Det er en app for det", og selv om det ikke er nevnt i denne artikkelen, oppfordres du til å ta tak i StavFXs Android-knapperprogram.
- Mens du er i temaet Android, ikke glem at det er en PPTP VPN-klient som vanligvis er innebygd i operativsystemet fra produsenten.
- Metoden for å blokkere noe i utgangspunktet og deretter fortsette å tillate allerede etablert kommunikasjon, kan brukes på praktisk talt enhver TCP-basert kommunikasjon. Faktisk i Knockd på DD-WRT 1 ~ 6 filmer, har jeg gjort vei tilbake når jeg har brukt den eksterne desktop-protokollen (RDP) som bruker port 3389 som et eksempel.
Hvem forstyrrer min Slumber?