6Aug
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
podľa Aviad Raviv &bfick.
Predslov
Ak ste použili vstavanú 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, že s dostatočnou trpezlivosťou môže útočník objaviť sekvenciu a vykonať replay útok.
Taktiež majte na pamäti, že nevýhodou implementácie je to, že ak sa chce ktorýkoľvek klient VPN pripojiť, museli spustiť sekvenciu zakódovania predtým a ak nemôžu dokončiť sekvenciu z akéhokoľvek dôvodu,nebude mať VPN vôbec.
Prehľad
Aby sme chránili * službu VPN, najskôr zablokujeme všetku možnú komunikáciu s tým, že zablokujeme inštančný port 1723. Aby sme dosiahli tento cieľ, použijeme iptables. Je to preto, že komunikácia je filtrovaná na väčšine distribucií 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á dočasne otvorí port pre inštaláciu VPN a automaticky ju uzavrie aj po nakonfigurovanom množstve času, pričom zachová už pripojenú pripojenie VPN.
Poznámka: V tejto príručke používame ako príklad službu PPTP VPN.S tým, že rovnaká metóda môže byť použitá pre iné typy VPN, stačí zmeniť blokovaný port a / alebo typ komunikácie.
Predpoklady, predpoklady &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 niektoré znalosti o sieti.
Umožňuje praskanie.
Predvolené Pravidlo "Blokovať nové VPN" na DD-WRT
Zatiaľ čo nasledujúci úryvok "kódu" by pravdepodobne fungoval na každom, rešpektovaní iptables pomocou distribúcie Linux / GNU, pretože tam je toľko variantov tamukážte len ako ho používať na DD-WRT.Nič vás nezastaví, ak chcete, aby ste ho priamo implementovali do poľa VPN.Avšak, ako to urobiť, je mimo rozsah tejto príručky.
Pretože chceme rozšíriť firewall brány 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 by sa naše rozšírenie udržalo na mieste.
Z Web-GUI DD-WRT:
- Prejsť na "Administrácia" - & gt;"Príkazy".
- Do textového poľa zadajte nižšie uvedený kód:
inline = "$( iptables -L INPUT -n | grep -n" stav SOUVISLOSTI, ESTABLISHED "| awk -F:{ 'print $ 1'})";inline = $( ($ inline-2 + 1));iptables -I INPUT "$ inline" -p tcp -dport 1723 -j DROP
- Kliknite na "Uložiť bránu firewall".
- Hotovo.
Čo je to príkaz "Voodoo"?
Vyššie uvedený príkaz "voodoo magic" urobí nasledovné:
- Zistí, kde je iptable riadok, ktorý umožňuje prepojenie už vytvorenej komunikácie. Robíme to preto, lebo A. Na smerovačoch DD-WRT, ak je služba VPN zapnutá, bude umiestnená tesne pod touto čiarou a B. Je nevyhnutné, aby sme naďalej umožňovali pokračovať v už existujúcich reláciách VPN.klepanie udalosť.
- Odpočítava dva( 2) z výstupu príkazu na zoznam, aby sa zohľadnil posun spôsobený hlavičkami informačných stĺpcov. Akonáhle sa tak 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ž zavedenú komunikáciu. Zanechal som tu veľmi jednoduchý "matematický problém", 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.Na tento účel upravte súbor knockd.conf vydaním v termináli:
vi /opt/etc/ knockd.conf
Pripojte k existujúcej konfigurácii:
[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 -dport 1723 -j ACCEPT
cmd_timeout = 20
stop_command = iptables -D INPUT -s% IP% -ptcp --dport 1723 -j ACCEPT
Táto konfigurácia bude:
- 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 klepnutí na portoch 2, 1 a 2010( táto objednávka je úmyselná, aby sa porty skenovali z cesty).
- Po zistení sekvencie spustite "start_command".Tento príkaz "iptables" umiestni v hornej časti pravidiel brány firewall "akceptovať návštevnosť určenú portu 1723, odkiaľ pochádza klepanie".(Direktíva% IP% sa spracováva špeciálne KnockD a nahrádza sa IP pôvodu zaklopení).
- Počkajte 20 sekúnd pred vydaním príkazu stop_command.
- Vykonajte "stop_command".Kde tento príkaz "iptables" urobí opačnú stranu a vymaže pravidlo, ktoré umožňuje komunikáciu.
Autor tipy
Aj keď by ste mali byť všetci nastaviť, existuje niekoľko bodov, ktoré si myslím 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ť viacero príkazov tým, že ich oddelíte pomocou semi-colen( ;) alebo dokonca skriptu. To vám umožní urobiť nejaké šikovné veci. Napríklad, som knockd poslať mi * E-mail mi povedať, že sekvencia bola spustená a odkiaľ.
- Nezabudnite, že na to je "Aplikácia" a aj keď to nie je uvedené v tomto článku, odporúčame vám chytiť program klepača Android od spoločnosti StavFX.
- Zatiaľ čo v oblasti Android, nezabudnite, že existuje PPTP VPN klient zvyčajne vstavaný do operačného systému od výrobcu.
- Metóda, čo najskôr blokovať a potom pokračovať v umožňovaní už zavedenej komunikácie, sa dá použiť prakticky pre každú komunikáciu založenú na TCP.V skutočnosti som vo filme Knockd on DD-WRT 1 ~ 6 som sa vrátil, keď som použil protokol vzdialenej pracovnej plochy( RDP), ktorý používa port 3389 ako príklad.
Kto narúša moje spánok?