Úvodná » ako » Sprievodca začiatočníkom pre iptables, Linux Firewall

    Sprievodca začiatočníkom pre iptables, Linux Firewall

    Iptables je mimoriadne flexibilný nástroj brány firewall postavený na operačných systémoch Linux. Či už ste nováčik Linuxový geek alebo systémový administrátor, je pravdepodobne nejaký spôsob, že iptables môže byť pre vás veľmi užitočné. Čítajte ďalej, keď vám ukážeme, ako nakonfigurovať najuniverzálnejšiu bránu firewall systému Linux.

    fotka od ezioman.

    O systéme iptables

    iptables je nástroj firewall príkazového riadka, ktorý používa reťazce pravidiel na povolenie alebo blokovanie prevádzky. Keď sa spojenie pokúsi vytvoriť na vašom systéme, iptables vyhľadá pravidlo vo svojom zozname, aby sa zhodovalo s ním. Ak ju nenájdete, použije predvolenú akciu.

    iptables takmer vždy prichádza predinštalovaný na ľubovoľnej distribúcii Linuxu. Ak chcete aktualizovať / nainštalovať, stačí načítať balík iptables:

    sudo apt-get nainštalovať iptables

    Existujú alternatívy grafického rozhrania k iptables ako Firestarter, ale iptables nie je naozaj tak ťažké, keď budete mať niekoľko príkazov nadol. Pri konfigurácii pravidiel protokolu iptables by ste mali byť veľmi opatrní, najmä ak ste SSH'd na serveri, pretože jeden nesprávny príkaz môže natrvalo zablokovať, kým nie je ručne pevne nainštalovaný na fyzickom počítači.

    Typy reťazcov

    iptables používa tri rôzne reťazce: vstup, dopredu a výstup.

    vstup - Tento reťazec sa používa na riadenie správania prichádzajúcich spojení. Ak sa napríklad používateľ pokúsi o SSH do vášho počítača / servera, iptables sa pokúsi o zhodu s adresou IP a portom s pravidlom vo vstupnom reťazci.

    vpred - Tento reťazec sa používa pre prichádzajúce pripojenia, ktoré sa v skutočnosti neposkytujú lokálne. Premýšľajte o smerovači - dáta sa vždy odosielajú, ale len zriedkavo sú určené pre samotný router; údaje sa práve posielajú do cieľa. Pokiaľ nedosiahnete nejaké smerovanie, NATing alebo niečo iné vo vašom systéme, ktoré vyžaduje presmerovanie, tento reťazec nebudete ani používať.

    Existuje jeden istý spôsob, ako skontrolovať, či váš systém používa / potrebuje reťazec dopredu.

    iptables -L -v

    Záber obrazovky je na serveri, ktorý je spustený niekoľko týždňov a nemá žiadne obmedzenia na prichádzajúce alebo odchádzajúce pripojenia. Ako vidíte, vstupný reťazec spracoval 11 GB paketov a výstupný reťazec spracoval 17 GB. Napredný reťazec na druhej strane nepotreboval spracovať jediný paket. Dôvodom je to, že server neuskutočňuje žiadne presmerovanie ani nepoužíva ako priechodné zariadenie.

    Výkon - Tento reťazec sa používa pre odchádzajúce spojenia. Napríklad, ak sa pokúsite ping howtogeek.com, iptables skontroluje svoj výstupný reťazec, aby zistil, aké sú pravidlá týkajúce sa pingu a howtogeek.com predtým, ako urobí rozhodnutie povoliť alebo odmietnuť pokus o pripojenie.

    Upozornenie

    Napriek tomu, že ping externého hostiteľa sa zdá byť niečo, čo bude musieť prejsť iba výstupným reťazcom, majte na pamäti, že vrátenie dát sa použije aj vstupný reťazec. Ak používate systém iptables na uzamknutie systému, nezabudnite, že veľa protokolov bude vyžadovať obojsmernú komunikáciu, takže je potrebné správne nakonfigurovať vstupné aj výstupné reťazce. SSH je bežný protokol, ktorý ľudia zabúdajú na obe reťaze.

    Štandardné správanie reťazca pravidiel

    Pred vstupom a konfiguráciou konkrétnych pravidiel sa budete chcieť rozhodnúť, aké predpokladáte, aby sa predvolené správanie troch reťazcov stalo. Inými slovami, čo chcete, aby iptables robili, ak spojenie nezodpovedá existujúcim pravidlám?

    Ak chcete zistiť, aké sú vaše reťazce pravidiel v súčasnosti nakonfigurované tak, aby robili neporovnateľnú návštevnosť, spustite program iptables -L príkaz.

    Ako môžete vidieť, použili sme aj príkaz grep, aby sme získali čistší výstup. Na tejto obrazovke sú naše reťazce v súčasnosti pripravené na prijímanie návštevnosti.

    Viac krát než nie, budete chcieť, aby váš systém v predvolenom nastavení prijímal pripojenia. Ak ste predtým nezmenili pravidlá reťazca pravidiel, toto nastavenie by malo byť už nakonfigurované. Či tak alebo onak, tu je príkaz na prijímanie pripojení v predvolenom nastavení:

    iptables - policy INPUT ACCEPT
    iptables - policy ACCEPT VÝSTUP
    iptables - politika FORWARD ACCEPT

    Predvoleným pravidlom prijatia môžete použiť iptables na zablokovanie špecifických adries IP alebo čísiel portov a zároveň naďalej akceptovať všetky ostatné pripojenia. Tieto príkazy sa dostaneme za minútu.

    Ak radšej zamietnete všetky pripojenia a ručne určíte, ktoré z nich chcete povoliť pripojenie, mali by ste zmeniť predvolenú politiku vašich reťazcov. Toto by pravdepodobne bolo užitočné iba pre servery, ktoré obsahujú citlivé informácie a kedykoľvek majú rovnaké IP adresy, ktoré sa k nim pripájajú.

    iptables - policy INPUT DROP
    iptables - politika OUTPUT DROP
    iptables - politika FORWARD DROP

    Odpovede špecifické pre pripojenie

    Pri konfigurácii predvolených pravidiel reťazca môžete začať pridávať pravidlá do protokolu iptables, takže vie, čo má robiť, keď sa stretne s pripojením z alebo k určitej adrese IP alebo portu. V tejto príručke sa pozrieme na tri najzákladnejšie a bežne používané "odpovede".

    súhlasiť - Povoliť pripojenie.

    Pokles - Zrušte spojenie, konajte tak, ako sa nikdy nestalo. Toto je najlepšie, ak nechcete, aby zdroj zistil, že váš systém existuje.

    Odmietnuť - Nedovoľte pripojenie, ale vráťte chybu. Toto je najlepšie, ak nechcete, aby sa k vášmu systému pripojil určitý zdroj, ale chcete, aby vedeli, že váš firewall zablokoval.

    Najlepší spôsob, ako ukázať rozdiel medzi týmito troma pravidlami, je ukázať, ako to vyzerá, keď sa počítač pokúša ping na stroj Linux s iptables nakonfigurovaným pre každé z týchto nastavení.

    Povolenie pripojenia:

    Zrušenie pripojenia:

    Odmietnutie pripojenia:

    Povolenie alebo blokovanie špecifických pripojení

    S nakonfigurovanými reťazcami pravidiel môžete teraz nakonfigurovať protokoly iptables, ktoré umožňujú alebo blokujú konkrétne adresy, rozsahy adries a porty. V týchto príkladoch nastavíme pripojenia POKLES, ale môžete ich prepnúť SÚHLASIŤ alebo ODMIETNUŤ, v závislosti od vašich potrieb a konfigurácie reťazcov pravidiel.

    Poznámka: V týchto príkladoch budeme používať iptables -A pridať pravidlá k existujúcemu reťazcu. iptables začína v hornej časti svojho zoznamu a prechádza každým pravidlom, kým nezistí, že sa zhoduje. Ak potrebujete vložiť pravidlo nad iným, môžete použiť iptables -I [reťazec] [číslo] zadajte číslo, ktoré by malo byť v zozname.

    Pripojenia z jedinej adresy IP

    Tento príklad ukazuje, ako zablokovať všetky pripojenia z IP adresy 10.10.10.10.

    iptables -A INPUT -s 10.10.10.10 -j DROP

    Pripojenia z rozsahu IP adries

    Tento príklad ukazuje, ako zablokovať všetky adresy IP v rozsahu 10.10.10.0/24 siete. Na určenie rozsahu adries IP môžete použiť sieťovú masku alebo štandardný lomítok.

    iptables -A INPUT -s 10.10.10.0/24 -j DROP

    alebo

    iptables -A INPUT -s 10.10.10.0/255.255.255.0 -j DROP

    Pripojenie k určitému portu

    Tento príklad ukazuje, ako blokovať pripojenia SSH od 10.10.10.10.

    iptables -A VSTUP -p tcp --dport ssh -s 10.10.10.10 -j DROP

    Ssh môžete nahradiť akýmkoľvek protokolom alebo číslom portu. -p tcp časť kódu hovorí iptables, aký druh pripojenia používa protokol. Ak ste zablokovali protokol, ktorý používa skôr UDP než TCP -p udp by bolo namiesto toho potrebné.

    Tento príklad ukazuje, ako blokovať pripojenia SSH z ľubovoľnej adresy IP.

    iptables -A INPUT -p tcp -dport ssh -j DROP

    Štáty pripojenia

    Ako sme už spomenuli, veľa protokolov bude vyžadovať obojsmernú komunikáciu. Napríklad, ak chcete povoliť pripojenie SSH do vášho systému, vstupné a výstupné reťazce budú potrebovať pravidlo, ktoré sa k nim pridá. Ale čo, ak len chcete, aby bol SSH do vášho systému povolený? Nebude pridávať žiadne pravidlo do výstupného reťazca, ktoré tiež umožňuje odchádzajúce pokusy SSH?

    To je miesto, kde sa vyskytujú stavy pripojenia, ktoré vám dávajú schopnosť, ktorú budete potrebovať, aby ste umožnili dvojcestnú komunikáciu, ale umožnili len vytvorenie jednosmerného spojenia. Pozrite si tento príklad, kde sú povolené pripojenia SSH OD 10.10.10.10, ale pripojenia SSH DO 10.10.10.10 nie sú. Napriek tomu je systém oprávnený posielať späť informácie cez SSH, pokiaľ je relácia už zriadená, čo umožňuje komunikáciu SSH medzi týmito dvoma hostiteľmi.

    iptables -A INPUT -p tcp -dport ssh -s 10.10.10.10 -m štát - štát NOVÉ, ESTABLISHED -j ACCEPT

    iptables -A OUTPUT -p tcp --sport 22 -d 10.10.10.10 -m štát - štát ESTABLISHED -j ACCEPT

    Ukladanie zmien

    Zmeny, ktoré vykonáte v pravidlách iptables, budú zrušené pri ďalšom spustení reštartu služby iptables, ak nevykonáte príkaz na uloženie zmien. Tento príkaz sa môže líšiť v závislosti od vašej distribúcie:

    ubuntu:

    sudo / sbin / iptables-save

    Red Hat / CentOS:

    / sbin / service iptables uložiť

    alebo

    /etc/init.d/iptables uložiť

    Ďalšie príkazy

    Zoznam aktuálne nakonfigurovaných pravidiel iptables:

    iptables -L

    Pridanie -proti voľba vám poskytne informácie o paketoch a bajtoch a pridá ich -n ukáže všetko číselne. Inými slovami - názvy hostiteľov, protokoly a siete sú uvedené ako čísla.

    Ak chcete vymazať všetky aktuálne nakonfigurované pravidlá, môžete vydať príkaz flush.

    iptables -F