Ako zaklopať do siete, časť 2 Chráňte svoj VPN (DD-WRT)
Ukázali sme vás, ako spustiť WOL vzdialene pomocou "Port Knocking" na vašom routeri. V tomto článku ukážeme, ako ho použiť na ochranu služby VPN.
Obrázok od Aviad Raviv & bfick.
Predslov
Ak ste použili integrovanú funkčnosť DD-WRT pre VPN alebo máte iný server VPN vo vašej sieti, oceníte ju schopnosť chrániť ju pred útokmi hrubej silou tým, že ju skryjete za sekvenciou klepania. Vykonáte to tak, že odfiltrovate skriptové deti, ktoré sa pokúšajú získať prístup do vašej siete. S tým povedal, ako je uvedené v predchádzajúcom článku, klepanie na port nie je náhradou za dobré heslo a / alebo bezpečnostnú politiku. Pamätajte si, že s dostatočnou trpezlivosťou môže útočník objaviť sekvenciu a vykonať replay útok.
Majte tiež na pamäti, že nevýhodou implementácie tohto je, že ak sa chce ktorýkoľvek klient VPN pripojiť, museli spustiť sekvenciu zaklopania vopred a ak nemôžu dokončiť sekvenciu z akéhokoľvek dôvodu, nebudú môcť VPN vôbec.
Prehľad
V záujme ochrany * služby VPN najskôr zablokujeme všetku možnú komunikáciu s tým, že zablokujeme inštančný port z roku 1723. Na dosiahnutie tohto cieľa budeme používať iptables. Je to preto, že komunikácia je filtrovaná na väčšine moderných distribúcií Linuxu / GNU vo všeobecnosti a najmä na DD-WRT. Ak by ste chceli získať viac informácií o iptables, skontrolujte si jeho wiki položku a pozrite sa na náš predchádzajúci článok o tejto téme. Akonáhle je služba chránená, vytvoríme sekvenciu zaklopania, ktorá by dočasne otvorila port pre inštanciu VPN a tiež ju automaticky uzavrie po nakonfigurovanom množstve času, pričom súčasne zostane pripojenie VPN.
Poznámka: V tejto príručke používame ako príklad službu PPTP VPN. Vďaka tomu môže byť rovnaká metóda použitá pre iné typy VPN, stačí zmeniť blokovaný port a / alebo typ komunikácie.
Predpoklady, predpoklady a odporúčania
- Predpokladá sa, že máte router DD-WRT s podporou Opkg.
- Predpokladá sa, že ste už vykonali kroky v príručke "Ako načrtnúť do siete (DD-WRT)".
- Predpokladajú sa určité znalosti v oblasti vytvárania sietí.
Umožní to prasknúť.
štandardné Pravidlo "Blokovať nové VPN" na DD-WRT
Zatiaľ čo nasledujúci úryvok kódu by pravdepodobne fungoval na každom užívateľovi iptables používajúcom Linux / GNU distribúciu, pretože tam je toľko variantov, ukážeme, ako ho použiť na DD-WRT. Nič vás nezastaví, ak chcete, aby ste ho priamo implementovali do okna VPN. Avšak, ako to urobiť, je mimo rozsah tejto príručky.
Pretože chceme rozšíriť bránu firewallu smerovača, je logické, že by sme pridali skript "Firewall". V takom prípade by príkaz iptables mohol byť vykonaný pri každom obnovení firewallu a tým udržiavať naše rozšírenie na mieste.
Z Web-GUI DD-WRT:
- Prejdite na položku "Administrácia" -> "Príkazy".
- Do textového poľa zadajte nižšie uvedený kód:
inline = "$ (iptables -L INPUT -n | grep -n" stav PRISPÔSOBENÝ, ESTABLISHED "| awk -F: 'print $ 1')"; inline = $ (($ inline-2 + 1)); iptables -I VSTUP "$ inline" -p tcp -dport 1723 -j DROP
- Kliknite na "Uložiť bránu firewall".
- hotový.
Čo je to príkaz "Voodoo"??
Vyššie uvedený príkaz "voodoo magic" urobí nasledovné:
- Zistí, kde je iptable linka, ktorá umožňuje prepojenie už vytvorenej komunikácie. Robíme to preto, lebo A. Na smerovačoch DD-WRT, ak je služba VPN povolená, bude umiestnená tesne pod týmto riadkom a B. Je nevyhnutné, aby sme naďalej umožňovali, aby už existujúce VPN relácie žili po klepanie udalosť.
- Odpočítava dva (2) z výstupu príkazu na výpis, aby zodpovedal za offset spôsobený hlavičkami informačného stĺpca. Akonáhle sa to stane, pridá sa k vyššie uvedenému číslu jedno (1), takže pravidlo, ktoré vkladáme, príde hneď po pravidle, ktoré umožňuje už zriadenú komunikáciu. Zanechal som tu veľmi jednoduchý "matematický problém" len preto, aby som urobil logiku "prečo je potrebné znížiť miesto z pravidla, namiesto toho, aby sa k nemu pridal jeden" jasné.
Konfigurácia KnockD
Musíme vytvoriť novú spúšťaciu sekvenciu, ktorá umožní vytvorenie nových pripojení VPN. Ak chcete urobiť, upravte súbor knockd.conf vydaním v termináli:
vi /opt/etc/knockd.conf
Pripojiť k existujúcej konfigurácii:
[Enable-VPN]
sekvencia = 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 ACCEPT
cmd_timeout = 20
stop_command = iptables -D VSTUP -s% IP% -p tcp -dport 1723 -j ACCEPT
Táto konfigurácia:
- Nastavte okno príležitosti na dokončenie sekvencie na 60 sekúnd. (Odporúča sa, aby to bolo čo najkratšie)
- Počúvajte sekvenciu troch knockov na portoch 2, 1 a 2010 (táto objednávka je úmyselne hodiť porty skenery mimo dráhu).
- Po zistení sekvencie spustite "start_command". Tento príkaz "iptables" umiestni v hornej časti pravidiel brány firewall "akceptujú návštevnosť určenú portu 1723, odkiaľ prišli knocky". (Direktíva% IP% je spracovaná špeciálne KnockD a je nahradená IP pôvodu zaklepania).
- Počkajte 20 sekúnd pred vydaním príkazu stop_command.
- Vykonajte "stop_command". Kde tento príkaz "iptables" urobí opačnú verziu a vymaže pravidlo, ktoré umožňuje komunikáciu.
autortipy
Zatiaľ čo by ste mali byť všetci nastavený, existuje niekoľko bodov, ktoré podľa mňa potrebujú spomenúť.
- Riešenie problémov. Nezabudnite, že ak máte problémy, segment "odstraňovanie problémov" na konci prvého článku by mal byť vašou prvou zastávkou.
- Ak chcete, môžete mať smernice "štart / stop" vykonať viaceré príkazy tým, že ich oddelíte pomocou semi-colen (;) alebo dokonca skriptu. Toto vám umožní urobiť nejaké šikovné veci. Napríklad, mám knockd pošlite mi * E-mail mi povedať, že sekvencia bola spustená a odkiaľ.
- Nezabudnite, že je tu aplikácia a aj keď to nie je uvedené v tomto článku, odporúčame vám chytiť program klepača Android od firmy StavFX.
- Pokiaľ ide o Android, nezabudnite, že od výrobcu je zabudovaný klient PPTP VPN, ktorý je zvyčajne zabudovaný do operačného systému.
- Metóda, čo najskôr blokovať a potom pokračovať v umožňovaní už zavedenej komunikácie, sa môže použiť na prakticky akejkoľvek komunikácii založenej na TCP. V skutočnosti som vo filme Knockd on DD-WRT 1 ~ 6 urobil cestu späť, keď som použil protokol vzdialenej pracovnej plochy (RDP), ktorý používa príklad 3389 ako príklad.
Kto narúša môj spánok?