Weboldal keresés

Shorewall – Magas szintű tűzfal Linux szerverekhez


A tűzfal beállítása Linuxon nagyon ijesztő lehet egy kezdő vagy az iptables-t nem nagyon ismerő számára. Szerencsére van egy nagyon könnyen használható megoldás a Shorewallban.

Ebben a több részből álló oktatóanyagban bemutatom a Shorewall használatának megkezdését, és végigvezetek néhány fejlettebb témakörön ezzel a fantasztikus tűzfalrendszerrel.

Mi az a Shorewall?

A Shorewall alapvetően az iptables kezelőfelülete, de ez egy parancssori környezeti kezelőfelület, amely számos szöveges fájlt használ a konfigurációhoz. Míg a Shorewall egy robusztus tűzfalrendszer, amely számos gépet kiszolgáló, nagyon nagy hálózatokon átméretezhető, egy alapvető kétfelületes konfigurációval kezdjük, és leszögezzük az alapokat.

A két interfészes konfiguráció egy gépből áll, két Ethernet-porttal, amelyek közül az egyik bejön, a másik pedig kimegy a helyi hálózatra.

Telepítse a Shorewall tűzfalat Linuxra

A Shorewall az apt és a yum csomagkezelő eszközökkel telepíthető.

sudo apt install shorewall    [On Debian-based Sysems]
sudo yum install shorewall    [On RHEL-based Sysems]

A telepítés után egy mintakonfigurációt kell másolnunk a „/usr/share/doc/shorewall” könyvtárból a Shorewall alapértelmezett „/etc/shorewall” könyvtárába.

sudo cp /usr/share/doc/shorewall/example/two-interfaces/* /etc/shorewall
cd /etc/shorewall

Ha megnézzük ezt a könyvtárat, egy csomó fájlt és shorewall.conf fájlt látunk.

A Shorewall a hálózatot különböző zónák csoportjaként tekinti, ezért az első fájl, amelyet meg akarunk nézni, a „/etc/shorewall/zones” fájl.

sudo nano /etc/shorewall/zones

Itt azt látjuk, hogy alapértelmezés szerint három zóna van megadva: fw, net és loc. Fontos megjegyezni, hogy a Shorewall magát a tűzfalgépet saját zónaként kezeli, és egy $fw nevű változóban tárolja.

A „/etc/shorewall/zones” fájl eléggé magától értetődő. Megvan a net zone (internetre néző interfész), a loc zone (LAN-ra néző interfész) és az fw., ami minden.

Ez a beállítás a következőket adja fel:

  • Lehetővé teszi az összes csatlakozási kérelmet a loc zónától (LAN) a net zónáig (Internet).
  • Eldobja az összes csatlakozási kérelmet (figyelmen kívül hagyja) a hálózati zónából a tűzfalba és a LANba.
  • Elutasítja és naplózza az összes többi kérést.

A LOG LEVEL bitet mindenkinek ismernie kell, aki végzett az Apache, a MySQL vagy bármilyen más FOSS program adminisztrációjával. Ebben az esetben azt mondjuk a Shorewallnak, hogy használja a naplózás információs szintjét.

Most, hogy a zónáink és a házirend be van állítva, konfigurálnunk kell az interfészeinket. Ezt a „/etc/shorewall/interfaces” fájl szerkesztésével teheti meg.

sudo nano /etc/shorewall/interfaces

Itt az internetre néző felületünket eth0 néven a net zónára állítottuk be. A LAN oldalunkon a másik interfészt, az eth1t a loc zone-ra állítottuk. Kérjük, állítsa be ezt a fájlt, hogy megfelelően illeszkedjen a konfigurációjához.

Az egyes interfészekhez elhelyezhető különféle lehetőségek széleskörűek, és a legrészletesebben a man oldalon találhatók.

man shorewall-interfaces

Néhányuk rövid összefoglalója a következő:

  • nosmurfs – olyan csomagok szűrése, amelyek forrásként szórási címet tartalmaznak.
  • logmartiánusok – naplózási csomagok a lehetetlen forráscímmel.
  • routefilter – kernel útvonalszűrése a hamisítás elleni küzdelemhez.

Természetesen most, hogy a rendszerünk tűzfallal van védve, bizonyos kapcsolatokat át kell engednünk ahhoz, hogy elvégezhessük, amit tennünk kell. Ezeket a „/etc/shorewall/rules” címen található szabályfájlban határozhatja meg.

sudo nano /etc/shorewall/rules

Ez a fájl elsőre zavarónak tűnik, főleg azért, mert az oszlopok átfedik egymást, de a fejlécek eléggé magától értetődőek. Először is megvan a ACTION oszlop, amely leírja, hogy mit szeretne végrehajtani.

Ezután van egy SOURCE fejléc, ahol meghatározhatja azt a zónát, ahonnan a csomag származik. Ezután megvan a DEST vagy célhelye, amely a cél zónája vagy IP-címe. Használjunk egy példát.

Tegyük fel, hogy egy SSH-kiszolgálót szeretne futtatni a tűzfala mögött a gépen 192.168.1.25 IP-címmel. Nemcsak meg kell nyitnia egy portot a tűzfalában, hanem közölnie kell a tűzfallal, hogy a 22-es porton érkező forgalomnak a gépre kell irányítania a következő címen: 192.168.1.25.

Ez a Port Forwarding néven ismert. Ez a legtöbb tűzfal/router általános funkciója. A „/etc/shorewall/rules” fájlban ezt egy ehhez hasonló sor hozzáadásával érheti el:

SSH(DNAT)	net		loc:192.168.1.25

Fentebb meghatároztuk, hogy a net zónából a tűzfalba érkező SSH-célú csomagokat irányítani kell (DNAT) a 22 porthoz egy 192.168.1.25 címû gépen.

Ezt nevezik Hálózati cím fordításnak vagy NATnak. A „D” egyszerűen jelzi a Shorewallnak, hogy ez egy NAT egy célcímhez.

Ahhoz, hogy ez működjön, engedélyeznie kell a NAT támogatást a kernelben. Ha szüksége van NAT-ra, és nincs meg, kérjük, tekintse meg a Debian kernel újrafordításáról szóló oktatóanyagomat.

A következő cikkben a Shorewall különféle konfigurációit és lehetőségeit vizsgáljuk meg. Itt azonban elegendő információnak kell lennie, hogy segítsen az indulásban. Mint mindig, kérjük, tekintse meg a kézikönyv oldalait a mélyebb megértéshez.