Príručka pre začiatočníkov pre iptables, Linux Firewall

Obsah:

Príručka pre začiatočníkov pre iptables, Linux Firewall
Príručka pre začiatočníkov pre iptables, Linux Firewall

Video: Príručka pre začiatočníkov pre iptables, Linux Firewall

Video: Príručka pre začiatočníkov pre iptables, Linux Firewall
Video: RJCLIP, the easy way to fix a broken RJ45 ETHERNET Plug Clip Tab 8P8C - YouTube 2024, Apríl
Anonim
Iptables je mimoriadne flexibilný nástroj brány firewall postavený na operačných systémoch Linux. Bez ohľadu na to, či ste nováčik Linux alebo systémový administrátor, je pravdepodobné, že iptables vám môžu byť veľmi užitočné. Čítajte ďalej, pretože vám ukážeme, ako nakonfigurovať najuniverzálnejší firewall systému Linux.
Iptables je mimoriadne flexibilný nástroj brány firewall postavený na operačných systémoch Linux. Bez ohľadu na to, či ste nováčik Linux alebo systémový administrátor, je pravdepodobné, že iptables vám môžu byť veľmi užitočné. Čítajte ďalej, pretože vám ukážeme, ako nakonfigurovať najuniverzálnejší 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 návštevnosti. Keď sa pripojenie 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 install iptables

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

Druhy 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 pri prichádzajúcich pripojeniach. Napríklad, ak sa používateľ pokúsi o SSH do vášho počítača / servera, iptables sa pokúsi porovnať IP adresu a port s pravidlom vo vstupnom reťazci.

vpred - Tento reťazec sa používa na prichádzajúce pripojenia, ktoré sa v skutočnosti neposkytujú lokálne. Premýšľajte o smerovači - dáta sa vždy odosielajú, ale zriedkavo sú určené pre samotný router; údaje sa presmerujú do cieľa. Pokiaľ nedosiahnete nejaký spôsob smerovania, 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 dopredný reťazec.

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 neposkytuje žiadny druh presmerovania ani nepoužíva ako priechodné zariadenie.
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 neposkytuje žiadny druh presmerovania 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 skontrolovať výstupný reťazec a zistiť, 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ť prechádzať iba výstupným reťazcom, majte na pamäti, že na 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 týchto troch reťazcov stalo. Inými slovami, čo chcete robiť, ak sa pripojenie nezhoduje s existujúcimi pravidlami?

Ak chcete zistiť, aké sú vaše reťazce pravidiel v súčasnosti nakonfigurované tak, aby vám pomohli s neprekonateľnou návštevnosťou, spustite program

iptables -L

Príkaz.

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

Viac ako 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 OUTPUT ACCEPT

iptables --policy 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 odmietnete všetky pripojenia a ručne zadá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 sa k nim pripojili rovnaké IP adresy.

iptables --policy INPUT DROP

iptables --policy OUTPUT DROP

iptables --policy FORWARD DROP

Odpovede špecifické pre pripojenie

Pri konfigurácii predvolených pravidiel reťazca môžete začať pridávať pravidlá do iptables, takže vie, čo má robiť, keď narazí na spojenie z alebo na konkrétnu IP adresu alebo port. V tejto príručke sa budeme zaoberať tromi najzákladnejšími a bežne používanými "odpoveďami".

súhlasiť - Povoliť pripojenie.

Pokles - Odpojte spojenie, konajte tak, ako sa nikdy nestalo. To je najlepšie, ak nechcete, aby zdroj realizoval váš systém.

Odmietnuť - Nedovoľte pripojenie, ale vráťte chybu. To 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ším spôsobom, ako zobraziť rozdiel medzi týmito troma pravidlami, je ukázať, ako to vyzerá, keď sa počítač pokúša ping na Linuxovom počítači s iptables nakonfigurovaným pre každé z týchto nastavení.

Povolenie pripojenia:

Odmietnutie pripojenia:
Odmietnutie pripojenia:
Image
Image

Povolenie alebo blokovanie špecifických pripojení

S vašimi reťazcami pravidiel nakonfigurovanými, 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

DROP

ale môžete ich prepnúť

ACCEPT

alebo

REJECT

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 ho použiť

iptables -I [chain] [number]

zadajte číslo, ktoré by malo byť v zozname.

Pripojenia z jedinej adresy IP

Tento príklad ukazuje, ako zablokovať všetky pripojenia z adresy IP 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 INPUT -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 pridané k nim. Ale čo, ak len chcete, aby bol SSH do vášho systému povolený? Nebude pridávať pravidlo do výstupného reťazca tiež umožňujú odchádzajúce pokusy SSH?

To je miesto, kde sa vyskytujú stavy pripojenia, ktoré vám dávajú schopnosť, ktorú by ste potrebovali na umožnenie dvojcestnej komunikácie, ale umožnili len vytvorenie jednosmerného spojenia. Pozrite sa na 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, ak už bola relácia už vytvorená, č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 state --state NEW,ESTABLISHED -j ACCEPT

iptables -A OUTPUT -p tcp --sport 22 -d 10.10.10.10 -m state --state ESTABLISHED -j ACCEPT

Ukladanie zmien

Zmeny, ktoré vykonávate v pravidlách iptables, budú zlikvidované 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 save

alebo

/etc/init.d/iptables save

Ďalšie príkazy

Zoznam aktuálne nakonfigurovaných pravidiel iptables:

iptables -L

Pridanie

-v

voľba vám poskytne informácie o paketoch a bajtoch a pridáte 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

Odporúča: