ipchains

Z Wikipedie, otevřené encyklopedie
Skočit na: Navigace, Hledání

ipchains je v informatice označení pro součást zastaralého jádra Linuxu verze 2.2, která implementuje stavový firewall. Nahrazuje starší ipfwadm, avšak od jádra verze 2.4 je nahrazeno novějšími iptables.

Teorie[editovat | editovat zdroj]

Je důležité pochopit, co paketový filtr může a nemůže dělat. Ipchains je jednoduchý (statický) paketový filtr a zabývá se pouze hlavičkou paketu. Je možné přijmout nebo odmítnout pakety na základě jejich zdrojové a cílové IP adresy a čísla portu, ale není možné zkoumat data uvnitř paketu. Rozhodnutí platí na každý paket zvlášť, bez závislosti na ostatních. Pravidla jsou statická, nelze je ovlivnit rozhodnutím, které bylo uplatněno na dříve přijatý paket.

Pravidla ipchains mohou být rozdělena do 4 různých kategorií: vstupní IP řetězce, výstupní IP řetězce, řetězce pro směrování IP a uživatelsky definované řetězce. Pro každou z těchto kategorií, je zachována samostatná tabulka pravidel, přitom se kterákoliv může odkazovat na některý z uživatelsky definovaných řetězců.

Příprava[editovat | editovat zdroj]

Pokud má být ochrana firewallem účinná, neměl by uživatel opomenout zabezpečit přístupy do systému, které firewall ohlídat nedokáže. Nejprve zkontrolovat soubor hesel (/etc/passwd a /etc/shadow), zda má každý účet heslo. Dále zkontrolovat /etc/inetd.conf a zakomentovat služby, které nejsou potřeba. Konečně zajistit, aby byli spuštěni jen ti síťoví démoni (sendmail, lpd, nfsd, atd.), kteří jsou potřeba.

Nastavení[editovat | editovat zdroj]

V tabulce je uveden souhrn přepínačů pro příkaz ipchains (příkazu man ipchains poskytne detailnější vysvětlení):

-N  vytvoření řetězce
-X  odstranění řetěz
-P  nastavení výchozí politiky
-L  seznam pravidel v řetězci
-A  připojení pravidla do řetězce
-D  odstranění pravidla z řetězce
-p  typ protokolu (tcp, udp, icmp)         -f  packet fragment
-s  zdrojová IP adresa a číslo portu            -y  syn packet (tcp)
-d  cílová IP adresa a číslo portu              --sport  zdrojový port
-i  rozhraní (lo, ppp0, eth0)                   --dport  cílový. port
-j  výsledek (ACCEPT, DENY, REJECT, MASQ)       --icmp-typ
-l  logování paketu

Pravidlo se vztahuje na paket v případě, že paket odpovídá všem kritériím. Například, toto pravidlo přijme paket, který vstupuje z prvního ethernetovského zařízení (eth0) a má zdrojovou adresu 192.168.1.*:

ipchains -A input -i eth0 -s 192.168.1.0/24 -j ACCEPT

Pro každý paket jádro uplatňuje pravidla v pořadí, v jakém jsou přidány. Jakmile je vyhodnoceno pravidlo, kterému paketu vyhovuje, provede se výkonná část pravidla, která určuje, jak s paketem naložit (ACCEPT, DENY). Další pravidla pak již vyhodnocována nejsou. Jádro aplikuje pravidla pro příchozí i odchozí pakety, přičemž pro oba směry udržuje oddělené seznamy pravidel. Posledním pravidel je implicitní pravidlo, které může uživatel sám nastavit.

Akce při zpracování paketu (vyhoví-li paket všem podmínkám obsaženým v aktuálním pravidle):

ACCEPT   přijetí paketu
DENY     odmítnutí paketu
REJECT   odmítnutí a zároveň odeslání ICMP zprávy
MASQ     použití tzv. "maškarády"
REDIRECT použití proxy směrování na lokální soket
RETURN   návrat na předchozí řetězec nebo uplatnění výchozí politiky

Diagnostika[editovat | editovat zdroj]

Chybové zprávy ipchains jsou zapisovány na chybový výstup. Návratové kódy jsou 0 pro korektní provedení funkce, 2 pro chyby způsobené chybným parametrem na příkazové řádce a 1 pro ostatní chyby.

Literatura[editovat | editovat zdroj]