Tűzfal beállítása Linux szerveren az IPtables segítségével, 2. rész

Az első részben a következőket végeztük el:

  • Töröltük a már létező szabályokat, láncokat
  • Engedélyeztük a loopback interfészen a forgalmat (azaz a számítógépünk belüli forgalmat).
  • Beállítottuk az alapértelmezett szabályt tiltásra.

Ezek után nézzük meg hogyan tudunk adott szolgáltatást ( webszervert, ssh-t) engedélyezni a tűzfalon.

Először engedélyezzük a már felépített kapcsolatokat a szabály listánk elején, a már említett szabály értelmezési sorrend miatt kell ezt  itt megtennünk:
iptables -A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state –state ESTABLISHED,RELATED -j ACCEPT

-m kapcsoló: Megmondja a tűzfalnak, hogy most kapcsolat típus szerint szeretnék szűrni.

–state: Itt tudjuk felsorolni milyen kapcsolat állapotokra legyen érvényes a szabály.

ESTABLISHED : A már felépített kapcsolatot jelenti, tehát már egy élő kapcsolat van a szerverünk és egy kliens gép között. Így ezt már engedélyezünk kellet, hogy a kapcsolat feltudjon épülni.

RELATED: Hasonló a fentihez, annyi eltéréssel, hogy ennek a kapcsolatnak a felépítését egy másik már felépített kapcsolat kezdeményezte. ( Ilyen például az FTP kapcsolat)

SSH engedélyezése:
iptables -A INPUT -p tcp -d  192.168.1.10–dport 22 -m state –state NEW -j ACCEPT

Ebben az esetben a  bejövő lánchoz fűzzük hozzá a szabályt.

-p (– proto): A protokol típusát adhatjuk meg, lehet tcp vagy udp

-d (–destination): Itt a cél ip címet adhatjuk meg, bejövő kapcsolatnál értelem szerűen a szerverünk ip címét kell ide írni. Nem kötelező megadni, leginkább akkor van jelentősége ha a szerverünknek több ip címe van, és csak egy adott ip címhez szeretnénk ezt a szabályt alkalmazni.

–dport: A cél portot kell itt megadnunk, azzal bejövő forgalomnál, hogy melyik porton figyel a szolgáltatásunk.

Ismét találkozunk az –m és a – state kapcsolóval, ebben az esetben megadjuk hogy az új kapcsolatokra legyen érvényes a szabály, a script elején a már felépítettekre megírtuk a szabályt.
Igazából itt ennek különösebb jelentősége nincs, elhagyható.

Ezek után már egy webszerver engedélyezése nem okozhat gondot:
iptables -A INPUT -p tcp  –dport 80 -m state –state NEW -j ACCEPT

A porton kívül teljesen megegyezik az ssh engedélyezésével.

Most már a szerverünket el tudjuk érni SSH –n és weben keresztül.

Viszont a gépünk még nem tud DNS feloldást csinálni, mert nem engedélyeztük még a kifelé menő DNS kéréseket.

Ezt az alábbi sorral tudjuk megtenni:
iptables -A OUTPUT -p udp –dport 53 -j ACCEPT

Látható hogy ez a szabály a kimenő (OUTPUT) lánchoz fog tartozni.
UDP protokolon engedélyezi az 53-as portot.
A DNS szerverek legtöbbje az 53-as porton udp kapcsolaton keresztül fogadja a kéréseket.

Mivel ez most kimenő forgalom a –dport a cél szerver portját jelenti, és nem a mi szerverünk portját.

Ha szeretnénk ha a gépünk válaszolna a pingre, illetve hogy mi is tudjunk pingelni más gépeket, szintén fel kell  vennünk az erre vonatkozó szabályokat.

iptables -A OUTPUT -p icmp -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT

Amennyiben a szerverünk az időt egy külső időszervertől (NTP szerver)  kéri re, akkor ezeket a kéréseket is át kell engednünk a tűzfalunkon.
iptables -A OUTPUT -p udp –dport 123 -j ACCEPT
iptables -A INPUT -p udp –dport 123 -j ACCEPT

FTP kapcsolat engedélyezése:
Ahhoz hogy az ftp kapcsolatunk gond nélkül menjen, és a passzív kapcsolatokat is fogadni tudja a szerverünk, be kell szúrnunk az alábbi két sort, a script ELEJÉRE, de a #!/bin/bash sor UTÁN

modprobe ip_conntrack_ftp
modprobe nf_conntrack_ftp

Ez a két parancs betölt két kernel modult, amely lehetővé teszi a passzív FTP kapcsolatokat is.

Az ftp szerver alapértelmezettként a 21-es portot használja.
A szabály megalkotása házi feladat :)

A következő részben folytatjuk.

Hozzászólások

  1. Awk szerint:

    A modporobe-os részek nem kellenek, mivel a kernel betölti ezeket, ha szükség van rájuk.

Hozzászólás beküldése

| Download Free Ringtones for Verizon Online. | Thanks to Highest CD Rates, Ally Bank Rates and Binaural & Isochronic Beats