Hjemmeside » hvordan » Slik knocker du inn i nettverket ditt, del 2 Beskytt din VPN (DD-WRT)

    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.
    Det er det, VPN-tjenesten din bør nå kun tilkobles etter en vellykket "banke".

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

    Hvem forstyrrer min Slumber?