Sådan knockes du på dit netværk, del 2 Beskyt din VPN (DD-WRT)
Vi har vist dig, hvordan du aktiverer WOL eksternt ved at "Portknocking" på din router. I denne artikel vil vi vise, hvordan du bruger det til at beskytte en VPN-tjeneste.
Billede af Aviad Raviv & bfick.
Forord
Hvis du har brugt DD-WRTs indbyggede funktionalitet til VPN eller har en anden VPN-server i dit netværk, kan du måske sætte pris på evnen til at beskytte den mod brute force-angreb ved at gemme den bag en knock-sekvens. Ved at gøre dette vil du filtrere ud de scriptkiddies, der forsøger at få adgang til dit netværk. Med det sagt, som nævnt i den forrige artikel, er portknocking 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 replay angreb.
Husk også, at ulempen ved at implementere dette er, at når en VPN-klient / s ønsker at forbinde, skal de udløse knock-sekvensen forhånd og at hvis de ikke kan fuldføre sekvensen af nogen grund, vil de slet ikke være i stand til at overføre VPN.
Oversigt
For at beskytte * VPN-tjenesten vil vi først deaktivere al mulig kommunikation med den ved at blokere den instabiliserende port i 1723. For at nå dette mål bruger vi iptables. Det skyldes, at kommunikationen filtreres på de fleste moderne Linux / GNU-distributioner generelt og især på DD-WRT. Hvis du vil have mere information om iptables checkout, er dens wiki-indgang, og se vores tidligere artikel om emnet. Når tjenesten er beskyttet, vil vi oprette en knock-sekvens, der midlertidigt åbner VPN-instabiliseringsporten og også automatisk lukker den efter en konfigureret tid, samtidig med at den allerede etablerede VPN-session forbinder.
Bemærk: I denne vejledning bruger vi PPTP VPN-tjenesten som et eksempel. Med det samme kan den samme metode bruges til andre VPN typer, du skal bare ændre den blokerede port og / eller kommunikationstype.
Forudsætninger, forudsætninger og anbefalinger
- Det antages / kræves, at du har en Opkg-aktiveret DD-WRT-router.
- Det forudsættes / kræves, at du allerede har udført trinene i vejledningen "Sådan knockes i dit netværk (DD-WRT)".
- Nogle netværkskendskab antages.
Lad os få revner.
Standard "Bloker nye VPN'er" -regel på DD-WRT
Selvom nedenstående kodestykke for "kode" sandsynligvis ville fungere på hver selvrespektive, iptables-brug, Linux / GNU-distribution, fordi der er så mange varianter derude, viser vi kun, hvordan du bruger det på DD-WRT. Intet stopper dig, hvis du ønsker det, fra at implementere det direkte på VPN-boksen. Men hvordan man gør det ligger uden for denne vejledning.
Fordi vi vil øge routerens Firewall, er det kun logisk, at vi vil tilføje til "Firewall" scriptet. Hvis du gør det, ville det føre til, at kommandoen iptables udføres hver gang brandwallen opdateres og dermed holder vores forøgelse på plads.
Fra DD-WRTs web-GUI:
- Gå til "Administration" -> "Commands".
- Indtast nedenstående "kode" i tekstfeltet:
inline = "$ (iptables -L INPUT -n | grep -n" tilstand RELATERET, OPSTILLET "| awk -F: 'print $ 1')"; inline = $ (($ inline-2 + 1)); iptables -I INPUT "$ inline" -p tcp - port 1723 -j DROP
- Klik på "Gem firewall".
- Færdig.
Hvad er denne "Voodoo" kommando?
Ovennævnte "voodoo magic" kommando gør følgende:
- Findes, hvor er den iptable linje, der muliggør allerede etableret kommunikation til at passere igennem. Det gør vi, fordi A. På DD-WRT-routere, hvis VPN-tjenesten er aktiveret, vil den være placeret lige under denne linje og B. Det er afgørende for vores mål om fortsat at tillade allerede etablerede VPN-sessioner at fortsætte efter bankehændelse.
- Træk to (2) fra udgangen af noteringskommandoen for at tage højde for forskydningen forårsaget af de informative kolonneoverskrifter. Når det er gjort, tilføjer en (1) til ovenstående nummer, så den regel, vi indsætter vil komme lige efter reglen, der tillader allerede etableret kommunikation. Jeg har forladt dette meget enkle "matematiske problem" her, bare for at lave logikken om "hvorfor man skal reducere en fra reglens sted i stedet for at tilføje en til den" klar.
KnockD-konfiguration
Vi skal oprette en ny udløsende sekvens, der gør det muligt at oprette nye VPN-forbindelser. For at gøre dette skal du redigere knockd.conf filen ved at udstede i en terminal:
vi /opt/etc/knockd.conf
Tilfø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 - port 1723 -j ACCEPT
Denne konfiguration vil:
- Indstil vinduet med mulighed for at fuldføre sekvensen, i 60 sekunder. (Det anbefales at holde dette så kort som muligt)
- Lyt til en sekvens af tre slag i porte 2, 1 og 2010 (denne ordre er bevidst at kaste portscannere fra spor).
- Når sekvensen er blevet detekteret, udfør "start_command". Denne "iptables" -kommando vil placere en "acceptere trafik bestemt til port 1723, hvor knockene kom fra" oven på brandvandsreglerne. (% IP%-direktivet behandles specielt af KnockD og erstattes med IP-nummeret fra knocks-oprindelsen).
- Vent i 20 sekunder før udstedelsen af "stop_command".
- Udfør "stop_command". Hvor denne "iptables" kommando gør det omvendte af ovenstående og sletter den regel, der tillader kommunikation.
Forfatters tips
Mens du skal være helt indstillet, er der et par punkter, som jeg føler har brug for at nævne.
- Fejlfinding. Husk, at hvis du har problemer, skal "fejlfinding" segmentet i slutningen af den første artikel være dit første stop.
- Hvis du vil, kan du have "start / stop" -direktiverne 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 nifty ting. For eksempel har jeg sendt mig en * Email, der fortæller mig, at en sekvens er blevet 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 StavFXs Android-knockerprogram.
- Mens du er genstand for Android, skal du ikke glemme, at der er en PPTP VPN-klient, der normalt 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 Knockd på DD-WRT 1 ~ 6 film, har jeg gået langt tilbage, når jeg har brugt fjernbetjeningsprotokollen (RDP), der bruger port 3389 som et eksempel.
Hvem forstyrrer mit slummer?