Vyhledávání na webu

Shorewall – Firewall na vysoké úrovni pro linuxové servery


Nastavení firewallu v Linuxu může být pro nováčka nebo někoho, kdo není příliš obeznámen s iptables, velmi náročné. Naštěstí existuje v Shorewall velmi snadno použitelné řešení.

V tomto vícedílném tutoriálu vám ukážu, jak začít s Shorewall a provedu vás některými pokročilejšími tématy s tímto úžasným systémem brány firewall.

Co je Shorewall?

Shorewall je v podstatě front-end k iptables, ale je to front-end prostředí příkazového řádku, které ke své konfiguraci využívá několik textových souborů. Zatímco Shorewall je robustní firewallový systém, který lze škálovat ve velmi rozsáhlých sítích obsluhujících mnoho počítačů, začneme se základní konfigurací dvou rozhraní a základy dokončíme.

Konfigurace se dvěma rozhraními se skládá ze stroje se dvěma ethernetovými porty, z nichž jeden přichází a druhý odchází do místní sítě.

Nainstalujte Shorewall Firewall v Linuxu

Shorewall lze nainstalovat pomocí nástrojů správce balíčků apt a yum.

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

Po instalaci musíme zkopírovat ukázkovou konfiguraci z adresáře „/usr/share/doc/shorewall“ do výchozího adresáře Shorewallu „/etc/shorewall“.

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

Pokud se podíváme do tohoto adresáře, vidíme spoustu souborů a soubor shorewall.conf.

Shorewall vidí síť jako skupinu různých zón, takže první soubor, na který se chceme podívat, je soubor „/etc/shorewall/zones“.

sudo nano /etc/shorewall/zones

Zde vidíme, že ve výchozím nastavení jsou definovány tři zóny: fw, net a loc. Je důležité si uvědomit, že Shorewall zachází se samotným firewallem jako se svou vlastní zónou a ukládá jej do proměnné nazvané $fw.

Soubor „/etc/shorewall/zones“ je docela samozřejmý. Máte net zónu (internetové rozhraní), loc zónu (rozhraní pro LAN) a fw, což je všechno.

Toto nastavení poskytuje následující:

  • Umožňuje všechny požadavky na připojení z loc zóny (LAN) do net zóny (Internet).
  • Zahodí všechny požadavky na připojení (ignoruje) ze síťové zóny na firewall a LAN.
  • Odmítne a zaznamená všechny ostatní požadavky.

Bit LOG LEVEL by měl znát každý, kdo prováděl administraci s Apache, MySQL nebo jakýmkoli jiným množstvím dalších programů FOSS. V tomto případě říkáme Shorewall, aby používal informační úroveň protokolování.

Nyní, když jsou naše zóny a zásady nastaveny, musíme nakonfigurovat naše rozhraní. To provedete úpravou souboru „/etc/shorewall/interfaces“.

sudo nano /etc/shorewall/interfaces

Zde jsme nastavili naše internetové rozhraní jako eth0 do net zóny. Na naší straně LAN jsme nastavili druhé rozhraní, eth1, na loc zone. Upravte tento soubor tak, aby správně odpovídal vaší konfiguraci.

Různé možnosti, které můžete použít pro kterékoli z těchto rozhraní, jsou rozsáhlé a nejlépe je podrobně vysvětlíte na stránce manuálu.

man shorewall-interfaces

Rychlý přehled některých z nich je následující:

  • nosmurfs – filtrování paketů s adresou vysílání jako zdrojem.
  • logmarťané – protokolují pakety s nemožnými zdrojovými adresami.
  • routefilter – filtrování tras jádra pro ochranu proti falšování.

Samozřejmě, teď, když je náš systém zablokován firewallem, budeme potřebovat, aby byla povolena určitá připojení, abychom mohli udělat to, co potřebujeme udělat. Ty definujete v souboru pravidel na „/etc/shorewall/rules“.

sudo nano /etc/shorewall/rules

Tento soubor vypadá zpočátku zmateně, hlavně proto, že se sloupce překrývají, ale záhlaví jsou docela samozřejmá. Nejprve máte sloupec AKCE, který popisuje, co chcete provést.

Dále máte hlavičku SOURCE, kde definujete zónu, odkud paket pochází. Poté máte svůj DEST nebo cíl, což je zóna nebo IP adresa cíle. Použijme příklad.

Předpokládejme, že na počítači s adresou IP 192.168.1.25 chcete za firewallem spustit server SSH. Nejen, že budete muset otevřít port ve svém firewallu, ale budete muset firewallu sdělit, že veškerý provoz přicházející na port 22 musí být směrován do počítače na 192.168.1.25.

Toto je známé jako Přesměrování portů. Je to běžná funkce většiny firewallů/routerů. V „/etc/shorewall/rules“ toho dosáhnete přidáním řádku jako je tento:

SSH(DNAT)	net		loc:192.168.1.25

Výše jsme definovali všechny pakety směrované přes SSH přicházející z net zóny do firewallu, které musí být směrovány (DNAT) na port 22 na počítači s adresou 192.168.1.25.

Toto se nazývá Překlad síťových adres nebo NAT. „D “ jednoduše říká Shorewall, že se jedná o NAT pro cílovou adresu.

Aby to fungovalo, musíte mít v jádře povolenou podporu NAT. Pokud potřebujete NAT a nemáte jej, podívejte se prosím na můj tutoriál o překompilování jádra Debianu.

V příštím článku prozkoumáme různé konfigurace a možnosti Shorewallu. Zde by však mělo být dostatek informací, které vám prozatím pomohou začít. Jako vždy se prosím podívejte na manuálové stránky pro podrobnější pochopení.