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.