Vi har vist dig hvordan man udløser WOL eksternt ved "Port Knocking" på din router . I denne artikel vil vi vise, hvordan du bruger den til at beskytte en VPN-tjeneste.
Billede af Aviad Raviv & bfick .
Forord
Hvis du har brugt
DD-WRT indbygget funktionalitet
til VPN eller have
en anden VPN-server
i dit netværk vil du muligvis sætte pris på muligheden for at beskytte det mod brutale kraftangreb ved at gemme det bag en banesekvens. Ved at gøre dette filtrerer du de script-kiddies, der prøver at få adgang til dit netværk. Med det sagt, som anført i den foregående artikel, er havnedannelse ikke en erstatning for en god adgangskode og / eller sikkerhedspolitik. Husk, at med tilstrækkelig tålmodighed kan en angriber opdage sekvensen og udføre et gentagelsesangreb.
Husk også, at ulempen ved at implementere dette er, at når en VPN-klient / VPN ønsker at oprette forbindelse, bliver de nødt til at udløse knock-sekvensen
på forhånd
og at hvis de af en eller anden grund ikke kan fuldføre sekvensen, vil de slet ikke være i stand til at VPN.
Oversigt
For at beskytte * VPN-tjenesten vil vi først deaktivere al mulig kommunikation med den ved at blokere den instantiserende port fra 1723. For at nå dette mål bruger vi iptables. Dette skyldes, at sådan filtreres kommunikation på de fleste moderne Linux / GNU-distributioner generelt og på DD-WRT i særdeleshed. Hvis du vil have flere oplysninger om iptables, kan du tjekke det wiki-indgang , og se på vores tidligere artikel på emnet. Når tjenesten er beskyttet, opretter vi en banesekvens, der midlertidigt åbner VPN-instantieringsporten og også automatisk lukker den efter et konfigureret tidsrum, samtidig med at den allerede etablerede VPN-session er forbundet.
Bemærk: I denne vejledning bruger vi PPTP VPN-tjenesten som et eksempel. Når det er sagt, kan den samme metode bruges til andre VPN-typer, du bliver bare nødt til at ændre den blokerede port og / eller kommunikationstype.
Forudsætninger, antagelser og anbefalinger
- Det antages / kræves, at du har en Opkg-aktiveret DD-WRT-router .
- Det antages / kræves, at du allerede har udført trinnene i “ Sådan banker du ind i dit netværk (DD-WRT) ”Guide.
- Der antages en vis netværksviden.
Lad os revne.
Standard "Bloker nye VPN'er" -regel på DD-WRT
Mens nedenstående uddrag af "kode" sandsynligvis fungerer på alle, selvrespekterende, iptables, der bruger Linux / GNU-distribution, fordi der er så mange varianter derude, viser vi kun, hvordan man bruger det på DD-WRT. Intet forhindrer dig i at implementere det direkte på VPN-boksen, hvis du ønsker det. Men hvordan man gør det, ligger uden for denne vejlednings anvendelsesområde.
Fordi vi ønsker at udvide routerens Firewall, er det kun logisk, at vi tilføjer til "Firewall" -skriptet. Hvis du gør det, vil kommandoen iptables blive udført hver gang firewallen opdateres og dermed holde vores udvidelse på plads til at holde.
Fra DD-WRT Web-GUI:
-
Gå til "Administration" -> "Kommandoer".
-
Indtast nedenstående "kode" i tekstboksen:
inline = "$ (iptables -L INPUT -n | grep -n" state RELATED, ESTABLISHED "| awk -F: {'print $1'})"; inline = $ (($ inline-2 + 1)); iptables -Jeg indtaster "$ inline" -p tcp --dport 1723 -j DROP - Klik på "Gem firewall".
- Færdig.
Hvad er denne "Voodoo" -kommando?
Ovenstående “voodoo magic” -kommando gør følgende:
- Finder hvor er den iptable linje, der gør det muligt for allerede etableret kommunikation at passere. Vi gør dette, fordi A. Hvis VPN-tjenesten er aktiveret på DD-WRT-routere, vil den være placeret lige under denne linje og B. Det er vigtigt for vores mål at fortsætte med at tillade allerede etablerede VPN-sessioner at leve videre efter banke begivenhed.
- Trækker to (2) fra output fra listekommandoen for at tage højde for forskydningen forårsaget af de oplysende kolonneoverskrifter. Når dette er gjort, tilføjer du en (1) til ovenstående nummer, så den regel, vi indsætter, kommer lige efter den regel, der tillader allerede etableret kommunikation. Jeg har efterladt dette meget enkle "matematiske problem" herinde, bare for at gøre logikken "hvorfor man skal reducere en fra regelens sted i stedet for at tilføje en til den" klar.
KnockD-konfiguration
Vi er nødt til at oprette en ny udløsende sekvens, der gør det muligt at oprette nye VPN-forbindelser. For at gøre dette skal du redigere filen knockd.conf ved at udstede i en terminal:
vi /opt/etc/knockd.conf
Føj til den eksisterende konfiguration:
[enable-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 --dport 1723 -j ACCEPT
Denne konfiguration vil:
- Indstil vinduet til mulighed for at fuldføre sekvensen til 60 sekunder. (Det anbefales at holde dette så kort som muligt)
- Lyt til en sekvens på tre baner på porte 2, 1 og 2010 (denne ordre er bevidst at smide havnescannere ud af sporet).
- Når sekvensen er detekteret, skal du udføre "start_kommando". Denne "iptables" -kommando placerer en "accept trafik bestemt til port 1723, hvorfra bankene kom fra" øverst i firewallreglerne. (% IP% -direktivet behandles specielt af KnockD og erstattes med IP for knocks oprindelse).
- Vent i 20 sekunder, før du udsteder "stop_command".
- Udfør “stop_command”. Hvor denne "iptables" -kommando gør det modsatte af ovenstående og sletter den regel, der tillader kommunikation.
Forfatter Tip
Mens du skal være klar, er der et par punkter, som jeg føler har brug for at nævne.
- Fejlfinding. Husk, at "fejlfinding" -segmentet i slutningen af, hvis du har problemer den første artikel skulle være dit første stop.
- Hvis du vil, kan du få "start / stop" -direktiverne til at udføre flere kommandoer ved at adskille dem med en semi-colen (;) eller endda et script. Hvis du gør det, kan du gøre nogle smarte ting. For eksempel har jeg sendt mig en * E-mail, der fortæller mig, at en sekvens er udløst og hvorfra.
- Glem ikke at “ Der er en app til det ”Og selvom det ikke er nævnt i denne artikel, opfordres du til at gribe fat StavFX Er Android knocker-program .
- Mens du handler om Android, skal du ikke glemme, at der normalt er en PPTP VPN-klient, der er indbygget i operativsystemet fra producenten.
- Metoden til at blokere noget oprindeligt og derefter fortsætte med at tillade allerede etableret kommunikation kan bruges på praktisk talt enhver TCP-baseret kommunikation. Faktisk i Banket på DD-WRT 1 ~ 6 film, har jeg gjort langt tilbage, da jeg har brugt Remote Desktop Protocol (RDP), der bruger port 3389 som et eksempel.