Zpět na blog

Nastavení firewallu pomocí FirewallD na CentOS 7

Nastavení firewallu pomocí FirewallD na CentOS 7

Úvod

Firewalld je řešení pro správu firewallu, které je k dispozici pro mnoho distribucí Linuxu. Slouží jako rozhraní k systému filtrování paketů iptables, který poskytuje jádro Linuxu. V této příručce se dozvíte, jak nakonfigurovat firewall pro váš server. Ukážeme vám také základy správy firewallu pomocí administračního nástroje firewall-cmd.

Základy Firewalld

FirewallD využívá koncepty zón a služeb namísto řetězců a pravidel iptables. V závislosti na nakonfigurovaných zónách a službách můžete řídit, jaký provoz je povolen nebo zakázán směrem do systému a ze systému. FirewallD lze konfigurovat a spravovat pomocí nástroje příkazového řádku firewall-cmd.

Instalace a povolení spuštění firewallu při startu

Na většině linuxových distribucí je již firewallD nainstalován. Pokud jej však potřebujete nainstalovat sami, zadejte níže uvedenou syntaxi:

Po instalaci firewalld můžete službu povolit a restartovat server:

Poté restartujte server. Váš firewall bude povolen po úspěšném restartování serveru. Poté pomocí níže uvedeného příkazu ověřte, zda byla služba aktivována:

check firewall state FirewallD

Výstup ukazuje, že výchozí nastavení firewallu funguje.

Kontrola výchozích nastavení

Zónu vybranou serverem můžete zkontrolovat pomocí tohoto příkazu:

check firewall default zone

Aktivní zónu ověříte zadáním:

firewall active zones

Vytiskněte konfiguraci výchozí zóny, abyste zjistili pravidla připojená k veřejné oblasti pomocí této syntaxe:

list all rules FirewallD

Výstup indikuje, že tato zóna je jak výchozí, tak aktivní zónou. Ukazuje také, že k této zóně jsou přiřazena rozhraní eth0 a eth1.

Kontrola alternativních zón

Kromě výchozích a aktivních zón existují další zóny, které můžete prozkoumat. Zadáním tohoto příkazu zobrazíte všechny dostupné zóny:

firewall check other zones

Zkontrolujte konkrétní konfiguraci přiřazenou k zóně přidáním parametru –zone= do příkazu –list-all:

check zone configuration FirewallD

 Změna zóny rozhraní

Zónu rozhraní můžete snadno změnit pomocí volby –change-interface v kombinaci s volbou –change-interface. Následující příkaz přiřadí rozhraní eth1 k pracovnímu prostoru:

Změny můžete ověřit zadáním:

changing firewall interface zones FirewallD

Změna výchozí zóny

Chcete-li změnit výchozí zónu, použijte parametr –set-default-zone následovaný názvem zóny, kterou chcete nastavit jako výchozí. Chcete-li například změnit výchozí zónu pro začátek, měli byste spustit následující příkaz:

Dále můžete změny ověřit pomocí:

firewall change default zone

Nastavení pravidel pro vaše aplikace

Projděme si základy potřebné k definování výjimek firewallu pro služby:

Přidání služby do vašich zón

Nejjednodušším způsobem je přidání potřebných portů nebo služeb do zón, které používáte. Stejně tak můžete použít volbu –get-services k zobrazení všech dostupných služeb:

firewall get services FirewallD

Službu pro zónu můžete aktivovat pomocí parametru –add-service =. Akce cílí na výchozí zónu nebo na jakoukoli zónu definovanou parametrem –zone =. Ve výchozím nastavení je nakonfigurována pouze aktuální relace firewallu. Trvalou konfiguraci firewallu můžete nastavit aktivací příznaku –permanent. Pokud například provozujete webový server, který poskytuje běžný provoz HTTP, můžete tento provoz pro rozhraní v naší zóně “public” pro tuto relaci povolit zadáním:

Pokud chcete změnit výchozí zónu, můžete –zone = vynechat. Úspěšnost operace můžete zkontrolovat pomocí operací –list-all nebo –list-services:

add service to zone

Jakmile ověříte, že vše funguje podle očekávání, s největší pravděpodobností budete chtít změnit trvalá pravidla firewallu, aby byla vaše služba dostupná i po restartu. Změnu v naší zóně “public” můžeme provést trvale zadáním syntaxe:

Zda to bylo úspěšné, můžete zkontrolovat přidáním příznaku –permanent k operaci –list-services. Pro –všechny trvalé operace musíte použít sudo:

Vaše zóna “public” nyní povoluje provoz HTTP na portu 80. To můžete přidat do aktuální relace a sady trvalých pravidel pomocí níže uvedeného příkazu:

Pokud neexistují žádné služby, které by vyhovovaly vašim požadavkům, máte dvě skvělé možnosti, jak tuto situaci vyřešit:

  1. Otevření portu pro vaše zóny

Nejpřímějším způsobem, jak přidat podporu pro vaši konkrétní aplikaci, je otevřít porty používané v jednotlivých zónách. Je to tak jednoduché, jako určit port nebo rozsah portů a odpovídající protokol pro porty, které potřebujete otevřít. Pokud například vaše aplikace běží na portu 5000 a používá TCP, můžete ji pro tuto relaci přidat do zóny “public” pomocí parametru –add-port =. Protokoly mohou být TCP nebo UDP:

Chcete-li zkontrolovat, zda byla operace úspěšná, použijte operaci –list-ports:

Můžete také určit rozsah pro sériové rozhraní oddělením počátečního a koncového portu v rozsahu spojovníkem. Pokud například vaše aplikace používá porty UDP 4990 až 4999, můžete je v zóně “public” otevřít zápisem:

Po otestování je pravděpodobně budeme chtít přidat do trvalého firewallu. Můžete to provést zadáním následujícího:

adding ports to permanent firewall

  1. Definování služby

Služba je kolekce portů s přidruženým názvem a popisem. Služby se spravují snadněji než porty, ale vyžaduje to trochu počáteční práce. Nejjednodušší způsob, jak začít, je zkopírovat existující skript (v / usr / lib / firewalld / services) do adresáře /etc/firewalld/services. Můžete například zkopírovat definici služby SSH pro použití v definici služby “example” následovně. Název souboru bez přípony XML určuje název služby v seznamu služeb firewallu:

V tomto okamžiku můžete upravit definici v zkopírovaném souboru:

Nejprve soubor obsahuje definici SSH, kterou jste zkopírovali:

Většina této definice se skládá z metadat. Musíte změnit krátký název služby v tagách <short>. Toto je čitelný název služby. Představte si, že pro naši službu “example” musíme otevřít port 7777 pro TCP a 8888 pro UDP. Stávající definici můžete změnit vstupem do režimu INSERT stisknutím klávesy i:

Poté stiskněte klávesu ESC a napište :x pro uložení a zavření souboru. Poté zadejte níže uvedený příkaz pro restartování firewallu, abyste měli přístup k nové službě;

Poté použijte níže uvedený příkaz k zobrazení seznamu dostupných služeb:

get services

Tato služba je nyní k dispozici ve vaší zóně.

Vytváření vlastních zón

Ačkoli předdefinované zóny budou pravděpodobně většině uživatelů stačit, může být užitečné definovat vlastní zóny, které lépe popisují jejich funkci.

Při přidávání zóny ji přidejte do trvalého nastavení firewallu. Poté můžete provést reload, abyste nastavení přenesli do své relace. Například můžete vytvořit dvě dříve diskutované zóny zadáním:

Pomocí tohoto příkazu můžete potvrdit, že jsou přítomny ve vaší trvalé konfiguraci:

firewall zones

Znovu načtěte (reload) firewall, abyste tyto nové zóny uvedli do aktivní konfigurace:

Nyní můžete ke svým zónám přiřadit příslušné služby a porty. Například pro zónu “publicweb” byste mohli chtít přidat služby SSH, HTTP a HTTPS:

list public web zone

 

Pomocí tohoto příkazu můžete také přidat službu DNS do své zóny „privateDNS“:

list privateDNS zone FirewallD

Dále můžete změnit svá rozhraní na tyto nové zóny a otestovat je:

Otestujte konfiguraci, abyste zjistili, zda funguje. Pokud vám tyto hodnoty vyhovují, musíte stejná pravidla přidat do trvalé konfigurace. To provedete opětovným použitím pravidel s parametrem —permanent:

 

Po trvalém použití těchto pravidel můžete restartovat síť a znovu načíst službu firewallu:

Zkontrolujte, zda byly zóny správně přiřazeny:

check active zones FirewallD

Dále se ujistěte, že obě zóny mají správnou službu:

Pokud chcete nastavit jednu ze svých zón jako výchozí pro ostatní rozhraní, musíte toto chování nakonfigurovat pomocí parametru –set-default-zone= pomocí tohoto příkazu:

Závěr

V tomto okamžiku jste úspěšně vytvořili své vlastní zóny. Měli byste mít základní znalosti o správě služby firewalld na vašem systému CentOS pro každodenní použití. Dobré porozumění službě firewalld vám umožní plně využít její výkon a flexibilitu.

Příjemnou práci s počítačem!

 

author

Akshay Nagpal

Autor · CloudSigma

Preslav Dobrev je kreativní designér ve společnosti CloudSigma, který se zaměřuje na konzistentní firemní identitu prostřednictvím tradičních i inovativních marketingových kanálů. Je zdatný v propojování umělecké vize se strategickým marketingem za účelem vytváření působivých příběhů značky.

Komentáře

Zatím žádné komentáře. Buďte první.