Ukázali jsme vám to jak vzdáleně spustit WOL pomocí „Knocking portu“ na vašem routeru . V tomto článku si ukážeme, jak jej použít k ochraně služby VPN.
Obrázek od Aviad Raviv & bfick .
Předmluva
Pokud jste použili
Integrovaná funkce DD-WRT
pro VPN nebo
jiný server VPN
ve vaší síti můžete ocenit schopnost chránit jej před útoky hrubou silou tím, že jej skryjete za sekvenci klepání. Tímto způsobem odfiltrujete děti skriptu, které se snaží získat přístup k vaší síti. Jak již bylo řečeno v předchozím článku, klepání portů nenahrazuje dobré heslo ani bezpečnostní politiku. Pamatujte, že s dostatečnou trpělivostí může útočník objevit sekvenci a provést opakovaný útok.
Mějte také na paměti, že nevýhodou implementace je to, že když se chce připojit jakýkoli klient VPN, bude muset spustit sekvenci klepání
předem
a že pokud z nějakého důvodu nemohou sekvenci dokončit, nebudou moci VPN vůbec používat.
Přehled
Z důvodu ochrany * služby VPN nejprve deaktivujeme veškerou možnou komunikaci s ní blokováním portu pro vytváření instancí 1723. K dosažení tohoto cíle použijeme iptables. Důvodem je, že tak je filtrována komunikace na většině moderních distribucí Linux / GNU obecně a zejména na DD-WRT. Pokud byste chtěli získat více informací o pokladně iptables wiki vstup , a podívejte se na náš předchozí článek na téma. Jakmile je služba chráněna, vytvoříme sekvenci klepání, která by dočasně otevřela instanční port VPN a také ji po nakonfigurovaném čase automaticky zavřela, přičemž zachovala připojenou již vytvořenou relaci VPN.
Poznámka: V této příručce používáme jako příklad službu PPTP VPN. Díky tomu lze stejnou metodu použít i pro jiné typy VPN, stačí změnit blokovaný port nebo typ komunikace.
Předpoklady, předpoklady a doporučení
- Předpokládá se / vyžaduje, abyste měli Router DD-WRT s povoleným OPKG .
- Předpokládá se / vyžaduje, abyste již provedli kroky v části „ Jak se připojit k síti (DD-WRT) Průvodce.
- Předpokládají se určité síťové znalosti.
Pojďme praskat.
Výchozí Pravidlo „Blokovat nové VPN“ na DD-WRT
Zatímco níže uvedený úryvek „kódu“ by pravděpodobně fungoval na každé, respektující iptable používající distribuci Linux / GNU, protože existuje tolik variant, ukážeme pouze, jak jej použít na DD-WRT. Pokud chcete, nic vám nebrání v implementaci přímo do pole VPN. Jak to však udělat, je nad rámec této příručky.
Protože chceme rozšířit bránu firewall routeru, je logické, že bychom přidali skript „Firewall“. Pokud to uděláte, způsobí to, že příkaz iptables bude proveden pokaždé, když se obnoví brána firewall, a tak zůstane naše augmentace na místě pro uchování.
Z DD-WRT Web-GUI:
-
Přejděte na „Správa“ -> „Příkazy“.
-
Do textového pole zadejte níže uvedený „kód“:
inline = "$ (iptables -L INPUT -n | grep -n" stát SOUVISEJÍCÍ, ZAVEDENO "| awk -F: {'print $1'})"; inline = $ (($ inline-2 + 1)); iptables -I VSTUP "$ inline" -p tcp --dport 1723 -j DROP - Klikněte na „Uložit bránu firewall“.
- Hotovo.
Co je to příkaz „Voodoo“?
Výše uvedený příkaz „voodoo magic“ provádí následující:
- Zjistí, kde je iptable linka, která umožňuje projít již navázanou komunikaci. Děláme to, protože A. Na směrovačích DD-WRT, pokud je služba VPN povolena, bude umístěna těsně pod tímto řádkem a B. Je zásadní pro náš cíl, kterým je pokračování v povolení, aby již zavedené relace VPN mohly po klepací událost.
- Odpočítá dva (2) od výstupu příkazu výpisu, aby zohlednil posun způsobený záhlavími informačního sloupce. Jakmile to bude hotové, přidejte k výše uvedenému číslu jeden (1), takže pravidlo, které vkládáme, přijde hned za pravidlem, které umožňuje již navázanou komunikaci. Ponechal jsem zde tento velmi jednoduchý „matematický problém“, jen aby byla jasná logika „proč je třeba jednoho zredukovat z místa pravidla místo toho, aby k němu jeden přidal“.
Konfigurace KnockD
Musíme vytvořit novou spouštěcí sekvenci, která umožní vytvoření nových připojení VPN. Chcete-li to provést, upravte soubor knockd.conf vydáním v terminálu:
vi /opt/etc/knockd.conf
Připojit k existující konfiguraci:
[enable-VPN]
posloupnost = 02,02,02,01,01,01,2010,2010,2010
seq_timeout = 60
start_command = iptables -I VSTUP 1 -s% IP% -p tcp --dport 1723 -j PŘIJMOUT
cmd_timeout = 20
stop_command = iptables -D INPUT -s% IP% -p tcp --dport 1723 -j PŘIJMOUT
Tato konfigurace:
- Nastavte okno příležitosti k dokončení sekvence na 60 sekund. (Doporučuje se, aby to bylo co nejkratší)
- Poslechněte si sekvenci tří klepání na porty 2, 1 a 2010 (tato objednávka je záměrná, aby se skenery portů shodily).
- Jakmile je sekvence detekována, proveďte příkaz „start_command“. Tento příkaz „iptables“ umístí v horní části pravidel brány firewall „přijmout provoz určený na port 1723, odkud přišla klepání“. (Směrnice% IP% je zpracována speciálně KnockD a je nahrazena IP původu klepání).
- Před vydáním příkazu „stop_command“ počkejte 20 sekund.
- Proveďte příkaz „stop_command“. V případě, že tento příkaz „iptables“ provede opačný postup než výše a odstraní pravidlo umožňující komunikaci.
Autor Tipy
I když byste měli být připraveni, existuje několik bodů, o kterých se domnívám, že je třeba je zmínit.
- Odstraňování problémů. Nezapomeňte, že pokud máte problémy, segment „odstraňování problémů“ na konci roku první článek by měla být vaše první zastávka.
- Pokud chcete, můžete nechat příkazy „start / stop“ spustit více příkazů tak, že je oddělíte semi-colenem (;) nebo dokonce skriptem. Pokud tak učiníte, budete moci dělat nějaké šikovné věci. Například jsem klepnul a poslal mi * e-mail s informací, že byla spuštěna sekvence a odkud.
- Nezapomeňte, že „ K tomu existuje aplikace „A přestože to není v tomto článku zmíněno, doporučujeme vám chytit se StavFX Android klepací program .
- Pokud jde o Android, nezapomeňte, že do operačního systému je od výrobce obvykle zabudován klient PPTP VPN.
- Metodu spočívající v blokování něčeho a následném pokračování v umožnění již navázané komunikace lze použít prakticky u jakékoli komunikace založené na protokolu TCP. Ve skutečnosti v Zaklepat na DD-WRT 1 ~ 6 filmy, udělal jsem cestu zpět, když jsem použil protokol vzdálené plochy (RDP), který jako příklad používá port 3389.