Android

Jak nakonfigurovat a spravovat firewall na centech 8

Introduction to Amazon Web Services by Leo Zhadanovsky

Introduction to Amazon Web Services by Leo Zhadanovsky

Obsah:

Anonim

Firewall je metoda pro monitorování a filtrování příchozího a odchozího síťového provozu. Funguje tak, že definuje sadu bezpečnostních pravidel, která určují, zda povolit nebo blokovat konkrétní přenos. Správně nakonfigurovaný firewall je jedním z nejdůležitějších aspektů celkového zabezpečení systému.

CentOS 8 je dodáván s démonem firewall s názvem firewalld. Jedná se o kompletní řešení s rozhraním D-Bus, které vám umožňuje dynamicky spravovat bránu firewall systému.

V tomto tutoriálu si povíme o tom, jak nakonfigurovat a spravovat firewall na CentOS 8. Vysvětlíme také základní koncepty Firewallu.

Předpoklady

Chcete-li nakonfigurovat službu firewall, musíte být přihlášeni jako root nebo uživatel s právy sudo.

Základní koncepty Firewallu

firewalld používá koncepty zón a služeb. Na základě zón a služeb, které konfigurujete, můžete určit, jaký provoz je povolen nebo blokován do a ze systému.

Firewalld lze konfigurovat a spravovat pomocí obslužného programu příkazového řádku firewall-cmd .

V CentOS 8 je iptables nahrazen nftables jako výchozí backend firewallu pro démona firewalld.

Zóny firewallu

Zóny jsou předdefinované sady pravidel, která určují úroveň důvěryhodnosti sítí, ke kterým je počítač připojen. K zóně můžete přiřadit síťová rozhraní a zdroje.

Níže jsou uvedeny zóny poskytované bránou FirewallD seřazené podle úrovně důvěryhodnosti zóny od nedůvěryhodných k důvěryhodným:

  • drop: Všechna příchozí připojení jsou zrušena bez upozornění. Povoleny jsou pouze odchozí spojení. blok: Všechna příchozí připojení jsou odmítnuta icmp-host-prohibited pro IPv4 a icmp6-adm-prohibited pro IPv6n. Povoleny jsou pouze odchozí spojení. public: Pro použití ve nedůvěryhodných veřejných prostorách. Nevěříte ostatním počítačům v síti, ale můžete povolit vybraná příchozí připojení. externí: Pro použití v externích sítích s povoleným maskováním NAT, když váš systém funguje jako brána nebo router. Povoleny jsou pouze vybrané příchozí připojení. interní: Pro použití v interních sítích, když váš systém funguje jako brána nebo router. Ostatní systémy v síti jsou obecně důvěryhodné. Povoleny jsou pouze vybrané příchozí připojení. dmz: Používá se pro počítače umístěné ve vaší demilitarizované zóně, které mají omezený přístup ke zbytku vaší sítě. Povoleny jsou pouze vybrané příchozí připojení. práce: Používá se pro pracovní stroje. Ostatní počítače v síti jsou obecně důvěryhodné. Povoleny jsou pouze vybrané příchozí připojení. home: Používá se pro domácí stroje. Ostatní počítače v síti jsou obecně důvěryhodné. Povoleny jsou pouze vybrané příchozí připojení. důvěryhodné: Všechna síťová připojení jsou přijata. Důvěřujte všem počítačům v síti.

Firewallové služby

Firewalld služby jsou předdefinovaná pravidla, která platí v rámci zóny a definují nezbytná nastavení umožňující příchozí provoz pro konkrétní službu. Služby vám umožňují snadno provádět několik úkolů v jednom kroku.

Služba může například obsahovat definice o otevírání portů, předávání provozu a další.

Firewalld Runtime a trvalé nastavení

Firewalld používá dvě oddělené konfigurační sady, runtime a permanentní konfiguraci.

Konfigurace runtime je skutečná spuštěná konfigurace a při restartu netrvá. Po spuštění démona firewallu načte trvalou konfiguraci, která se stane runtime konfigurací.

Ve výchozím nastavení jsou při provádění změn v konfiguraci brány Firewalld pomocí nástroje firewall-cmd použity změny v konfiguraci runtime. Aby změny byly trvalé, připojte k --permanent volbu --permanent .

Chcete-li použít změny v obou konfiguračních sadách, můžete použít jednu z následujících dvou metod:

  1. Změňte konfiguraci běhového modulu a nastavte ho jako trvalý:

    sudo firewall-cmd sudo firewall-cmd --runtime-to-permanent

    Změňte trvalou konfiguraci a znovu načtěte démona firewallu:

    sudo firewall-cmd --permanent sudo firewall-cmd --reload

Povolení brány firewall

Na CentOS 8 je firewalld standardně nainstalován a povolen. Pokud z nějakého důvodu není nainstalován ve vašem systému, můžete démona nainstalovat a spustit zadáním:

sudo dnf install firewalld sudo systemctl enable firewalld --now

Stav brány firewall můžete zkontrolovat pomocí:

sudo firewall-cmd --state

Pokud je firewall povolen, příkaz by měl být running . Jinak uvidíte, že not running .

Zóny firewallu

Výchozí zóna je ta, která se používá pro vše, co není explicitně přiřazeno k jiné zóně.

Výchozí zónu můžete zobrazit zadáním:

sudo firewall-cmd --get-default-zone

public

Chcete-li získat seznam všech dostupných zón, zadejte:

sudo firewall-cmd --get-zones

block dmz drop external home internal public trusted work

Zobrazení aktivních zón a síťových rozhraní, která jsou jim přiřazena:

sudo firewall-cmd --get-active-zones

Následující výstup ukazuje, že rozhraní eth0 a eth1 jsou přiřazena do public zóny:

public interfaces: eth0 eth1

Nastavení konfigurace zóny můžete vytisknout pomocí:

sudo firewall-cmd --zone=public --list-all

public (active) target: default icmp-block-inversion: no interfaces: eth0 eth1 sources: services: ssh dhcpv6-client ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

Z výše uvedeného výstupu vidíme, že veřejná zóna je aktivní a používá výchozí cíl, kterým je REJECT . Výstup také ukazuje, že zóna je používána rozhraními eth0 a eth1 a umožňuje provoz DHCP klienta a SSH.

sudo firewall-cmd --list-all-zones

Příkaz vytiskne obrovský seznam s nastavením všech dostupných zón.

Změna cíle zóny

Cíl definuje výchozí chování zóny pro příchozí provoz, který není specifikován. Lze ji nastavit na jednu z následujících možností: default , ACCEPT , REJECT a DROP .

Chcete-li nastavit cíl zóny, zadejte zónu s volbou --zone a cíl s volbou --zone --set-target .

Chcete-li například změnit cíl public zóny na DROP měli byste spustit:

sudo firewall-cmd --zone=public --set-target=DROP

Přiřazení rozhraní jiné zóně

Můžete vytvořit specifické sady pravidel pro různé zóny a přiřadit jim různá rozhraní. To je užitečné zejména v případě, že na svém počítači máte více rozhraní.

Chcete-li přiřadit rozhraní jiné zóně, zadejte zónu s volbou --zone a rozhraní s volbou --change-interface .

Například následující příkaz přiřadí rozhraní eth1 work zóně:

sudo firewall-cmd --zone=work --change-interface=eth1

Změny ověřte zadáním:

sudo firewall-cmd --get-active-zones

work interfaces: eth1 public interfaces: eth0

Změna výchozí zóny

Chcete-li změnit výchozí zónu, použijte volbu --set-default-zone následovanou názvem zóny, kterou chcete nastavit jako výchozí.

Chcete-li například změnit výchozí zónu na home , spustíte následující příkaz:

sudo firewall-cmd --set-default-zone=home

Ověřte změny pomocí:

sudo firewall-cmd --get-default-zone

home

Vytváření nových zón

Firewalld vám také umožňuje vytvořit si vlastní zóny. Toto je užitečné, pokud chcete vytvořit pravidla pro jednotlivé aplikace.

V následujícím příkladu vytvoříme novou zónu s názvem memcached , otevřete port 11211 a povolíme přístup pouze z IP adresy 192.168.100.30 :

  1. Vytvořte zónu:

    sudo firewall-cmd --new-zone=memcached --permanent

    Přidejte pravidla do zóny:

    sudo firewall-cmd --zone=memcached --add-port=11211/udp --permanent sudo firewall-cmd --zone=memcached --add-port=11211/tcp --permanent sudo firewall-cmd --zone=memcached --add-source=192.168.100.30/32 --permanent

    Znovu načtěte démona firewallu a aktivujte změny:

    sudo firewall-cmd --reload

Firewalld Services

S firewallem můžete povolit provoz pro konkrétní porty nebo zdroje na základě předdefinovaných pravidel nazývaných služby.

Chcete-li získat seznam všech výchozích dostupných typů služeb:

sudo firewall-cmd --get-services

Další informace o každé službě najdete otevřením přidruženého souboru.xml v adresáři /usr/lib/firewalld/services . Například služba HTTP je definována takto:

/usr/lib/firewalld/services/http.xml

WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages. WWW (HTTP) HTTP is the protocol used to serve Web pages. If you plan to make your Web server publicly available, enable this option. This option is not required for viewing pages locally or developing Web pages.

Chcete-li povolit příchozí provoz HTTP (port 80) pro rozhraní ve veřejné zóně, pouze pro aktuální typ relace (runtime konfigurace):

sudo firewall-cmd --zone=public --add-service=http Pokud upravujete výchozí zónu, můžete vynechat volbu --zone .

Chcete-li ověřit, že služba byla úspěšně přidána, použijte volbu --list-services :

sudo firewall-cmd --zone=public --list-services

ssh dhcpv6-client

Chcete-li zachovat port 80 otevřený i po restartu, spusťte znovu stejný příkaz pomocí volby --permanent nebo proveďte:

sudo firewall-cmd --runtime-to-permanent

K ověření změn použijte volbu --list-services spolu s --permanent :

sudo firewall-cmd --permanent --zone=public --list-services

ssh dhcpv6-client

Syntaxe pro odebrání služby je stejná jako při přidávání služby. Stačí použít --remove-service místo --add-service :

sudo firewall-cmd --zone=public --remove-service=http --permanent

Výše uvedený příkaz odebere službu http z trvalé konfigurace veřejné zóny.

Vytvoření nové služby FirewallD

Jak jsme již zmínili, výchozí služby jsou uloženy v adresáři /usr/lib/firewalld/services . Nejjednodušší způsob, jak vytvořit novou službu, je zkopírovat existující soubor služeb do adresáře /etc/firewalld/services , což je umístění pro služby vytvořené uživatelem a upravit nastavení souboru.

Chcete-li například vytvořit definici služby pro server Plex Media Server, můžete použít servisní soubor SSH:

sudo cp /usr/lib/firewalld/services/ssh.xml /etc/firewalld/services/plexmediaserver.xml

Otevřete nově vytvořený soubor plexmediaserver.xml a změňte zkrácený název a popis služby v rámci a značky. Nejdůležitější značka, kterou musíte změnit, je značka port , která definuje číslo portu a protokol, který chcete otevřít.

V následujícím příkladu otevíráme porty 1900 UDP a 32400 TCP.

/etc/firewalld/services/plexmediaserver.xml

plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere. plexmediaserver Plex is a streaming media server that brings all your video, music and photo collections together and stream them to your devices at anytime and from anywhere.

Uložte soubor a znovu načtěte službu FirewallD:

sudo firewall-cmd --reload

Nyní můžete ve svých zónách používat službu plexmediaserver stejně jako jakoukoli jinou službu.

Otevření portů a zdrojových IP

Firewalld také umožňuje rychle povolit veškerý provoz z důvěryhodné adresy IP nebo z určitého portu bez vytvoření definice služby.

Otevření zdrojové IP

Chcete-li povolit veškerý příchozí provoz z konkrétní adresy IP (nebo rozsahu), zadejte zónu s volbou --zone a zdrojovou IP s --add-source .

Chcete-li například povolit veškerý příchozí provoz z 192.168.1.10 ve public zóně, spusťte:

sudo firewall-cmd --zone=public --add-source=192.168.1.10

Nastavit trvalé pravidlo:

sudo firewall-cmd --runtime-to-permanent

Ověřte změny pomocí následujícího příkazu:

sudo firewall-cmd --zone=public --list-sources

192.168.1.10

Syntaxe pro odebrání zdrojové IP je stejná jako při přidávání. Stačí použít --remove-source místo volby --add-source :

sudo firewall-cmd --zone=public --remove-source=192.168.1.10

Otevření zdrojového portu

Chcete-li povolit veškerý příchozí provoz na daném portu, zadejte zónu s volbou --zone a port a protokol s --add-port .

Například pro otevření portu 8080 ve veřejné zóně pro aktuální relaci, kterou jste spustili:

sudo firewall-cmd --zone=public --add-port=8080/tcp

Protokol může být buď tcp , udp , sctp nebo dccp .

Ověřte změny:

sudo firewall-cmd --zone=public --list-ports

8080

Chcete-li zachovat port otevřený i po restartu, přidejte pravidlo do trvalého nastavení spuštěním stejného příkazu pomocí příznaku --permanent nebo provedením:

sudo firewall-cmd --runtime-to-permanent

Syntaxe pro odebrání portu je stejná jako při přidávání portu. Stačí použít --remove-port místo volby --add-port .

sudo firewall-cmd --zone=public --remove-port=8080/tcp

Předávání portů

Chcete-li přesměrovat provoz z jednoho portu na druhý, nejprve povolte maškarádu do požadované zóny pomocí volby --add-masquerade . Chcete-li například povolit maskování pro external zónu, zadejte:

sudo firewall-cmd --zone=external --add-masquerade

Přesměrovat přenos z jednoho portu na druhý na IP adrese

V následujícím příkladu předáváme provoz z portu 80 na port 8080 na stejném serveru:

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080

Přeposlat přenos na jinou IP adresu

V následujícím příkladu předáváme provoz z portu 80 na port 80 na serveru s IP 10.10.10.2 :

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toaddr=10.10.10.2

Přeposlat přenos na jiný server na jiném portu

V následujícím příkladu předáváme provoz z portu 80 na port 8080 na serveru s IP 10.10.10.2 :

sudo firewall-cmd --zone=external --add-forward-port=port=80:proto=tcp:toport=8080:toaddr=10.10.10.2

Chcete-li, aby pravidlo pro předávání bylo trvalé, použijte:

sudo firewall-cmd --runtime-to-permanent

Závěr

Naučili jste se, jak konfigurovat a spravovat službu firewall ve vašem systému CentOS 8.

Nezapomeňte povolit všechna příchozí připojení, která jsou nezbytná pro správné fungování systému, a zároveň omezte všechna zbytečná připojení.

firewall centos zabezpečení centra