Slik knocker du inn i nettverket ditt, Del 2: Beskytt VPN (DD-WRT)

Innholdsfortegnelse:

Slik knocker du inn i nettverket ditt, Del 2: Beskytt VPN (DD-WRT)
Slik knocker du inn i nettverket ditt, Del 2: Beskytt VPN (DD-WRT)

Video: Slik knocker du inn i nettverket ditt, Del 2: Beskytt VPN (DD-WRT)

Video: Slik knocker du inn i nettverket ditt, Del 2: Beskytt VPN (DD-WRT)
Video: Eggcrate to Honeycomb, and a Stack? New Knitting Podcast 128 - YouTube 2024, April
Anonim
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.
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 det 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 nevnt 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 ønsker å koble til, må de utløse knock-sekvensenforhå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 instabiliserende porten fra 1723. For å oppnå dette målet bruker vi iptables. Dette er fordi det er slik at kommunikasjon filtreres 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)" -veiledningen.
  • 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. Å gjøre det, ville føre til at iptables-kommandoen blir utført hver gang brannmuren blir oppdatert og dermed holder vår forøgelse på plass for holder.

Fra DD-WRTs web-GUI:

  • Gå til "Administrasjon" -> "Kommandoer".

    Image
    Image
  • Skriv inn under "kode" i tekstboksen:

    inline='$( iptables -L INPUT -n | grep -n 'state RELATED,ESTABLISHED' | awk -F: {'print $1'} )'; inline=$(($inline-2+1)); iptables -I INPUT '$inline' -p tcp --dport 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. Vi gjør dette 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 over, 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 for 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 du knockd.conf filen ved å utstede i en terminal:

vi /opt/etc/knockd.conf

Legg til den eksisterende konfigurasjonen:

[enable-VPN] sequence = 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

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 "aksepter trafikk 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".
  • Utfør "stop_command". Hvor denne kommandoen "iptables" gjør omvendt av ovenstående og sletter regelen som tillater kommunikasjon.

Det er det, VPN-tjenesten din bør nå kun koble til etter en vellykket "banke".

Forfatter S tips

Mens du bør være ferdig, er det et par 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-knockerprogram.
  • 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 veien tilbake når jeg har brukt den eksterne desktop-protokollen (RDP) som bruker port 3389 som et eksempel.

Merk: For å gjøre dette må du ha E-postfunksjonalitet på ruteren din, som for øyeblikket egentlig ikke er en som fungerer fordi SVN-stillbildet av OpenWRTs opkg-pakker er i disarray. Derfor foreslår jeg at du bruker knockd direkte på VPN-boksen, slik at du kan bruke alle mulighetene for å sende e-post som er tilgjengelige i Linux / GNU, som SSMTP og sendEmail for å nevne noen.

Hvem forstyrrer min slummer?

Anbefalt: