Hemsida » hur » Hur man knackar på ditt nätverk, del 2 Skydda din VPN (DD-WRT)

    Hur man knackar på ditt nätverk, del 2 Skydda din VPN (DD-WRT)

    Vi har visat dig hur du aktiverar WOL på distans genom att "Portknocking" 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 nämnts i föregående artikel, är portknocking inte en ersättning för 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 de 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. Det 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 knock-sekvens 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 måste bara ändra den blockerade porten och / eller kommunikationstypen.

    Förutsättningar, antaganden och 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 "Guide to your network (DD-WRT)" -guiden.
    • Vissa nätverkskunskaper antas.

    Kan få sprickbildning.

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

    Medan underkoden "kod" antagligen skulle fungera på alla, självrespektiva, iptables-användning, Linux / GNU-distribution, eftersom det finns så många varianter där ute kommer vi bara visa 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 att hålla.

    Från DD-WRTs webb GUI:

    • Gå till "Administration" -> "Kommandon".
    • Ange nedan "kod" i textrutan:

      inline = "$ (iptables -L INPUT -n | grep -n" tillstånd RELATED, ESTABLISHED "| awk -F: 'skriv ut $ 1')"; inline = $ (($ inline-2 + 1)); iptables -I INPUT "$ inline" -p tcp - port 1723 -j DROP

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

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

    Ovanstående "voodoo magic" -kommando gör följande:

    • Finns var är den iptable-linjen som möjliggör redan etablerad kommunikation att passera igenom. Detta gör vi, 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 efter knackar händelse.
    • Däverar två (2) från utgången av noteringskommandot för att redovisa förskjutningen som orsakas 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 precis 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 minska en från reglens plats istället för att lägga till en till den" tydlig.

    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 utfärda i en terminal:

    vi /opt/etc/knockd.conf

    Lägg till den befintliga konfigurationen:

    [Aktivera-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

    Den här konfigurationen 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 var 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".
    • Kö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 så, din VPN-tjänst bör nu endast anslutas efter en framgångsrik "knock".

    Författares tips

    Medan du borde 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 script. Om du gör det kan du göra några smutsiga saker. Till exempel har jag knockt skicka mig en * Email 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 en som fungerar eftersom SVN-ögonblicksbilden av OpenWRTs opkg-paket är oskadlig. 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 My Slumber?