ipchains
ipchains je v informatice označení pro součást zastaralého jádra Linuxu verze 2.2, která implementuje bezestavový firewall. Nahrazuje starší ipfwadm, avšak od jádra verze 2.4 je nahrazeno novějšími iptables.
Vývojář | Rusty Russell |
---|---|
Operační systém | Linux |
Vyvíjeno v | C |
Typ softwaru | svobodný software a firewall |
Licence | GNU General Public License |
Web | people |
Některá data mohou pocházet z datové položky. |
Teorie
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
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í
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
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
- http://www.syrlug.org/contrib/ipchains.html – Mark W. Krentel, May 2000
- https://web.archive.org/web/20130331035851/http://www.linuxcommand.org/man_pages/ipchains8.html – manuálová stránka příkazu
ipchains