Tűzfal létrehozása betárcsázós kapcsolatokhoz FreeBSD-vel
Előző |  | Következő

# 5. A tűzfal szabályai

Most fogjuk megadni a rendszerünk tűzfalának szabályait. Az itt ismertetésre kerülő szabályok egy olyan általános sablont kívánnak bemutatni, amely a legtöbb betárcsázós felhasználó számára megfelelnek. Habár kétségtelen, hogy nem fogja mindenki igényeit tökéletesen kielégíteni, azonban segít megmutatni az IPFW működésének alapelveit és könnyedén tovább is fejleszthető.

Elsőként kezdjük a "zárt tűzfal" alapjaival. A zárt tűzfal lényegében azon a feltevésen alapszik, hogy alapvetően mindent kizárunk a rendszerből. Ezt követően a rendszergazda egyesével megadhatja azokat szabályokat, amelyeket engedélyezni kíván valamit. A szabályok közül elöszőr mindig azokat adjuk meg, amikkel engedélyezünk, majd azokat, amikkel tiltunk. Az alapfeltételezés szerint tehát a szabályokkal megadunk mindent, amit engedélyezünk a tűzfalon, és minden más pedig automatikusan tiltásra kerül.

Ezt követően hozzunk létre egy könyvtárat, ahol majd tárolni a fogjuk a tűzfalunk beállításait. Ebben a példában a `/etc/firewall/` könyvtárat fogjuk használni erre a célra. Lépjünk be ebbe a könyvtárba és hozzunk létre egy `fwrules` nevű állományt, ahogy azt az `rc.conf`-ban is megadtuk. Természetesen ez az elnevezés sem kötött, nyugodtan megváltoztathatjuk bármire. A leírás pusztán csak egy példát ad erre.

Most pedig nézzünk egy megjegyzésekkel tűzdelt szabályokat tartalmazó állományt:

    # Definiálunk egy parancsot a tűzfalat összeállító program elérésére
    # (ld. /etc/rc.firewall). Remélhetőleg így könnyebb is lesz olvasni.
    fwcmd="/sbin/ipfw"

    # Megadjuk a külső hálózati csatolót. Ha felhasználói ppp-t használunk,
    # akkor ez valószínűleg a tun0 lesz.
    oif="tun0"

    # Megadjuk a belső hálózati csatolót. Ez többnyire (a helyi hálózaton
    # is elerhető) hálózati kártyánk lesz. Mindenképpen ellenőrizzük, hogy
    # jól adtuk-e meg!
    iif="fxp0"

    # Töröltessünk a rendszerben jelenleg érvényben levő össze szabályt,
    # még mielőtt betöltenénk a sajátjainkat.
    $fwcmd -f flush

    # Ellenőrizzük az összes csomag állapotát.
    $fwcmdl add check-state

    # Tiltsuk le az elrejtést a külső csatolón.
    $fwcmd add deny ip from any to any in via $oif not verrevpath

    # Engedélyezzünk minden általunk kezdeményezett kapcsolatot és
    # tartsuk is meg az állapotukat. Ellenben tiltsunk minden olyat,
    # amihez nincs semmilyen dinamikus szabály.
    $fwcmd add allow ip from me to any out via $oif keep-state
    $fwcmd add deny tcp from any to any established in via $oif

    # Engedélyezzünk minden kapcsolatot a helyi hálózaton.
    $fwcmd add allow ip from any to any via $iif

    # Engedélyezzük a helyi (gépen belüli) forgalmat.
    $fwcmd add allow all from any to any via lo0
    $fwcmd add deny all from any to 127.0.0.0/8
    $fwcmd add deny ip from 127.0.0.0/8 to any

    # Engedélyezzük az Internetről hozzánk látogatóknak, hogy elérhessék
    # a 22-es ill. a 80-as portokat. Így ez a példa kifejezetten az SSH
    # (sshd) es HTTP (webszerver) típusú kapcsolatokat engedélyezi.
    $fwcmd add allow tcp from any to me dst-port 22,80 in via $oif setup keep-state

    # Engedélyezzük az ICMP csomagokat: vegyük ki a 8-as típust, ha nem
    # szeretnénk a gépünket pingek által elérhetővé tenni.
    $fwcmd add allow icmp from any to any via $oif icmptypes 0,3,8,11,12

    # Tiltsunk és naplózzunk minden mást.
    $fwcmd add deny log ip from any to any

Most már van egy teljesen működőképes tűzfalunk, amely csak és kizárólag a 22-es, 80-es portokon enged kapcsolatot létesíteni, és minden egyéb próbálkozást naplóz. Így már nyugodtan újraindíthatjuk a rendszerünket, és ezt követően a tűzfalunk magától elindul és a hozzá tartozó szabályrendszer betöltődik. Ha bármilyen hibát találna benne vagy problémába ütközne a használata során, esetleg valamilyen építő jellegű javaslata van, kérem, keressen meg e-mailben!

Előző | Tartalom | Következő
A PPP-ben levő címfordítás bekapcsolása |  | Kérdések

Ha kérdése van a FreeBSD-vel kapcsolatban, a következő címre írhat (angolul): <freebsd-questions@FreeBSD.org>.
Ha ezzel a dokumentummal kapcsolatban van kérdése, kérjük erre a címre írjon: <gabor@FreeBSD.org>.