6Aug

Så här knackar du på ditt nätverk, Del 2: Skydda din VPN( DD-WRT)

Vi har visat dig hur du aktiverar WOL på distans genom att "Port Knocking" på din router. I den här artikeln visar vi hur du använder den för att skydda en VPN-tjänst.

Bild av Aviad Raviv &bfick.

Förord ​​

Om du har använt DD-WRTs inbyggda funktionalitet för VPN eller, har en annan VPN-server i ditt nätverk, kan du uppskatta möjligheten att skydda den mot brutala kraftattacker genom att gömma den bakom en knock-sekvens. Genom att göra detta kommer du att filtrera bort skriptkiddierna som försöker få tillgång till ditt nätverk. Med det sagt, enligt vad som anges i föregående artikel, hamnar inte porten på ett bra lösenord och / eller säkerhetspolicy. Kom ihåg att med tillräckligt tålamod kan en angripare upptäcka sekvensen och utföra en återspelningsattack.
Tänk också på att nackdelen med att implementera detta är att när någon VPN-klient / s vill ansluta skulle de behöva utlösa knock-sekvensen i förväg och att om de inte kan slutföra sekvensen av någon anledning,kommer inte att kunna VPN alls.

Översikt

För att skydda * VPN-tjänsten kommer vi först att inaktivera all möjlig kommunikation med den genom att blockera den instabiliserande porten från 1723. För att uppnå detta mål använder vi iptables. Detta beror på att kommunikationen filtreras på de flesta moderna Linux / GNU-distributioner i allmänhet och på DD-WRT i synnerhet. Om du vill ha mer information om iptables checkout är dess wiki-post och titta på vår tidigare artikel om ämnet. När tjänsten är skyddad skapar vi en knocksekvens som tillfälligt öppnar VPN-instabiliserande port och stänger även automatiskt efter en konfigurerad tid samtidigt som den redan etablerade VPN-sessionen är ansluten.

Obs! I den här guiden använder vi PPTP VPN-tjänsten som ett exempel. Med det sagt kan samma metod användas för andra VPN-typer, du behöver bara ändra den blockerade porten och / eller kommunikationstypen.

Förutsättningar, antaganden &Rekommendationer

  • Det antas / krävs att du har en Opkg-aktiverad DD-WRT-router.
  • Det antas / krävs att du redan har utfört stegen i guiden "Så här knyter du till nätverket( DD-WRT)".
  • Vissa nätverkskunskaper antas.

Låter bli sprickbildning.

Standard "Block new VPNs" -regeln på DD-WRT

Medan underrubriken "kod" antagligen skulle fungera på alla självrespektiva, iptables-användningar, Linux / GNU-distribution, eftersom det finns så många varianter där ute kommer vi attVisa bara hur du använder den på DD-WRT.Ingenting hindrar dig från att implementera det direkt på VPN-rutan. Men hur man gör det ligger utanför handbokens räckvidd.

Eftersom vi vill öka routerns brandvägg är det bara logiskt att vi lägger till i "Firewall" -skriptet. Om du gör det skulle det leda till att kommandot iptables exekveras varje gång brandväggen uppdateras och därigenom håller vår förökning på plats för hållbarhet.

Från DD-WRTs webb GUI:

  • Gå till "Administration" - & gt;”Kommandon”.
  • Skriv in nedan "kod" i textrutan:

    inline = "$( iptables -L INPUT -n | grep -n" -tillstånd RELATERADE, STÄLLDA "| awk -F:{ 'print $ 1'})";inline = $( ($ inline-2 + 1));iptables -I INPUT "$ inline" -p tcp - port 1723 -j DROP

  • Klicka på "Spara brandvägg".
  • Klart.

Vad är det här kommandot "Voodoo"?

Kommandot ovan "voodoo magic" gör följande:

  • Finns var är den iptable-linjen som möjliggör att redan etablerad kommunikation passerar igenom. Vi gör det här, eftersom A. På DD-WRT-routrar, om VPN-tjänsten är aktiverad, kommer den att ligga strax nedanför den här linjen och B. Det är viktigt att vårt mål fortsätter att tillåta att redan etablerade VPN-sessioner lever efterknackar händelse.
  • Däverar två( 2) från utgången av noteringskommandot för att ta hänsyn till förskjutningen orsakad av de informativa kolumnrubrikerna. När det är klart lägger du till en( 1) till ovanstående nummer, så att regeln som vi lägger in kommer att komma strax efter den regel som tillåter redan etablerad kommunikation. Jag har lämnat det här väldigt enkla "matematiska problemet" här, bara för att göra logiken om "varför man behöver reducera en från reglens plats istället för att lägga till en för att" rensa.

KnockD-konfiguration

Vi behöver skapa en ny utlösande sekvens som gör det möjligt att skapa nya VPN-anslutningar. För att göra detta, redigera filen knockd.conf genom att utgå i en terminal:

vi /opt/etc/ knockd.conf

Lägg till den befintliga konfigurationen:

[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 --port 1723 -j ACCEPT
cmd_timeout = 20
stop_command = iptables -D INPUT -s% IP% -ptcp - port 1723 -j ACCEPT

Denna konfiguration kommer att:

  • Ställ in fönstret för möjlighet att slutföra sekvensen, till 60 sekunder.(Det rekommenderas att hålla detta så kort som möjligt)
  • Lyssna på en sekvens av tre slag i portarna 2, 1 och 2010( den här beställningen är avsiktlig att kasta portskannrar av spår).
  • När sekvensen har detekterats, kör "start_command".Detta "iptables" -kommando kommer att placera en "acceptera trafik som är avsedd för port 1723 från där knockarna kom från" ovanpå brandväggsreglerna.(% IP% -direktivet behandlas speciellt av KnockD och ersätts med IP-adressen för knocks-ursprunget).
  • Vänta i 20 sekunder innan du utfärdar "stop_command".
  • Utför "stop_command".Där det här kommandot "iptables" gör det omvända av ovanstående och raderar regeln som tillåter kommunikation.
Det är det, din VPN-tjänst bör nu endast anslutas efter en lyckad "knock".

Författare s tips

Medan du ska vara upptagen, finns det några punkter som jag anser behöva nämna.

  • Felsökning. Kom ihåg att om du har problem, måste segmentet "felsökning" i slutet av den första artikeln vara ditt första stopp.
  • Om du vill kan du ha "start / stop" -riktlinjerna genomföra flera kommandon genom att separera dem med en semi-colen( ;) eller till och med ett skript. Om du gör det kan du göra några fina saker. Till exempel har jag knackat skicka mig en * E-post som berättar för mig att en sekvens har utlösts och varifrån.
  • Glöm inte att "Det finns en app för det" och även om det inte nämns i den här artikeln uppmanas du att ta tag i StavFXs Android-knackprogram.
  • Medan det gäller Android, glöm inte att det finns en PPTP VPN-klient som vanligtvis är inbyggd i operativsystemet från tillverkaren.
  • Metoden att blockera någonting initialt och sedan fortsätta att tillåta redan etablerad kommunikation kan användas på praktiskt taget vilken TCP-baserad kommunikation som helst. I själva verket i Knockd på DD-WRT 1 ~ 6 filmer har jag gått tillbaka när jag har använt fjärrskrivbordet protokoll( RDP) som använder port 3389 som ett exempel.
Obs! För att kunna göra detta måste du få E-postfunktionalitet på din router, vilket för närvarande verkligen inte är ett som fungerar, eftersom SVN-ögonblicksbilden av OpenWRTs opkg-paket är oroväckande. Det är därför jag föreslår att du använder knockd direkt på VPN-rutan som gör att du kan använda alla alternativ för att skicka e-post som finns i Linux / GNU, som SSMTP och sendEmail för att nämna några.

Vem stör min Slumber?