Csomagszűrés I.
2004/03/15 18:06
2754 megtekintés
A cikk már legalább egy éve nem frissült, az akkor még aktuális információk lehet, hogy mára elavultak.
Sokszor hallunk mostanában a tűzfalakről, a csomagszűrésről, meg sok egyéb olyan kifejezésről, amely első hallásra ijesztőnek tűnik. Jelen cikkünkkel megpróbálunk eligazítást adni az említett témakörök labirintusaiban tévelygőknek.

A tűzfalakról röviden

Hálózatban dolgozó rendszeradminisztrátorok számára nem kell bemutatnunk a csomagkapcsolt hálózatok működését, annak előnyeit és hátrányait. Sokan találkoznak viszont azzal a szomorú jelenséggel, amikor nem kívánt látogatók teszik "tiszteletüket" a szerveren, vagy ellenkezőleg: valamely belső hálózaton dolgozó vesz igénybe olyan külső erőforrásokat, melyek nem megengedettek számára.
A fenti jelenség (és még sok tucat egyéb) kiküszöbölésére szolgálnak a tűzfalak, melyek természetesen Linux alatt is megvalósíthatóak.
A tűzfalak alapvetően két csoportba sorolhatóak: léteznek csomagszűrő (packet filter) és applikációs (proxy) tűzfalak, illetve léteznek e kettő kombinált megoldásai is. A csomagszűrő tűzfalak működése "egyszerű": a tűzfalon áthaladó hálózati forgalom csomagjait ellenőrzik, és bizonyos kritériumoknak megfelelően továbbítják azokat vagy tiltják továbbhaladásukat. Az applikációs tűzfalak bonyolultabb munkát végeznek: összeállítják a csomagokat és azok tartalmát elemzik, és ennek megfelelően szűrnek. Igazán hatékony védelmet csak a két módszer együttes alkalmazásával érhetünk el, ennek ellenére nagyon sok helyen használunk csak csomagszűrő megoldást, hiszen gyorsan, egyszerűen megvalósítható.

A Linux csomagszűrése

Iptables a kernelben

A Linux kernel már régóta tartalmaz csomagszűrési lehetőséget: a korábbi 2.0-s és 2.2-es sorozatokban az ipfwadm és az ipchains foglalt helyet, a 2.4-es sorozatoktól kezdve azonban megjelent a Netfilter (ismertebb nevén: iptables), mely már ún. stateful csomagszűrést is ismer (az egy kapcsolathoz tartozó csomagok sorozatát is felismeri és analizálja). Cikksorozatunkban az iptables kinfigurálásával fogunk foglalkozni, hiszen az iptables nem csak védelmek megvalósítására alkalmas: segítségével hálózati címfordítást (NAT - Network Address Translation), maszkolást is végezhetünk, transzparens proxy-kat emelhetünk, sőt, akár sávszélesség-elosztást is szabályozhatunk.
Az iptables használata a kernel konfigurálásával kezdődik. Az iptables-t modulként vagy kernelbe fordítva is használhatjuk. A "Networking options" szekció "Network packet filtering (replaces ipchains)" opciójának bekapcsolása utánn megjelenik az "IP: Netfilter Configuration" menüpont. Ebben aktivizálhatunk rengeteg iptables modult. Ha végeztünk a kernellel, telepíthatjük az iptables binárisokat (pl. apt-get install iptables).

Láncok

Az iptables a csomagokat láncokon keresztül szűri. A három alaplánc elnevezései: INPUT, OUTPUT és FORWARD. A bejövő csomagok továbbításának irányát elsőként a routolás határozza meg. Ha egy csomag célcíme megegyezik a tűzfal címével, akkor az INPUT láncba kerül, ha nem, akkor a FORWARD láncba továbbítódik. Ha az INPUT lánc szabályai megengedik, akkor a csomag továbbkerül a belső processzhez. Ha egy belső processznek van joga csomagot küldeni, akkor az bekerül az OUTPUT láncba, majd amennyiben az engedi, kijut a külvilágba. Egy csomagon alapvetően háromféle műveletet tudunk végezni: elfogadjuk (ACCEPT), eldobjuk (DROP) vagy visszaküldjük (REJECT). Utóbbi kettő fő különbsége, hogy REJECT esetén a küldőt ICMP-üzenettel értesítjük arról, hogy a csomagot elutasítottuk, így hamarabb "érteni fog a szóból".

A csomagszűrés során fő feladatunk, hogy meghatározzuk, milyen szempontok alapján szűrjön a tűzfalunk. Szűrhetünk forráscím, célcím, port, protokoll és még sok más egyéb szempont szerint, de ügyeljünk a csomagszűrés legfontosabb szabályára: alapesetben mindent tiltunk és csak a szükséges csomagokat engedélyezzük.

Béres László
beres@szag.hu

Csatlakozz hozzánk!

Ajánljuk

European Schoolnet Academy Ingyenes online tanfolyamok tanároknak
School Education Gateway Ingyenes tanfolyamok és sok más tanárok számára
ENABLE program Program iskoláknak a bullying ellen
Jövő osztályterme Modern tanulási környezetekről a Sulineten