Android

Jak nastavit firewall s firewallem na centech 7

How to configure Firewall on Linux Mint (Ubuntu)

How to configure Firewall on Linux Mint (Ubuntu)

Obsah:

Anonim

Správně nakonfigurovaný firewall je jedním z nejdůležitějších aspektů celkového zabezpečení systému.

FirewallD je kompletní řešení brány firewall, které řídí pravidla systému iptables a poskytuje rozhraní D-Bus pro jejich provozování. Počínaje CentOS 7, FirewallD nahrazuje iptables jako výchozí nástroj pro správu brány firewall.

V tomto tutoriálu vám ukážeme, jak nastavit firewall s FirewallD v systému CentOS 7 a vysvětlit vám základní koncepty FirewallD.

Předpoklady

Než začnete s tímto tutoriálem, ujistěte se, že jste přihlášeni k serveru pomocí uživatelského účtu s právy sudo nebo root. Nejlepší praxí je spouštět administrativní příkazy jako uživatel sudo místo root. Pokud ve vašem systému CentOS nemáte uživatele sudo, můžete si jej vytvořit podle těchto pokynů.

Základní koncepty Firewallu

FirewallD používá koncepty zón a služeb namísto řetězce iptables a pravidel. Na základě zón a služeb, které konfigurujete, můžete určit, jaký provoz je povolen nebo zakázán do a ze systému.

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

Zóny firewallu

Zóny jsou předdefinované sady pravidel určující, jaký přenos by měl být povolen na základě úrovně důvěryhodnosti v sítích, 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.

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 není perzistentní. Po spuštění služby Firewalld načte permanentní 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. Chcete-li, aby byly změny trvalé, musíte použít volbu --permanent .

Instalace a povolení FirewalluD

  1. Firewalld je ve výchozím nastavení nainstalován na CentOS 7, ale pokud není nainstalován ve vašem systému, můžete balíček nainstalovat zadáním:

    sudo yum install firewalld

    Ve výchozím nastavení je služba Firewalld zakázána. Stav brány firewall můžete zkontrolovat pomocí:

    sudo firewall-cmd --state

    Chcete-li spustit službu FirewallD a povolit ji při spouštěcím typu:

    sudo systemctl start firewalld sudo systemctl enable firewalld

Práce s firewallovými zónami

Po prvním zapnutí služby FirewallD je public zóna nastavena jako výchozí zóna. 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

Výchozí zóna je ve výchozím nastavení přiřazena všem síťovým rozhraním. Chcete-li zkontrolovat, jaké zóny jsou používány vaším typem síťových rozhraní:

sudo firewall-cmd --get-active-zones

public interfaces: eth0 eth1

Výše uvedený výstup nám říká, že obě rozhraní eth0 a eth1 jsou přiřazena do veřejné zóny.

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 nastavená jako výchozí, používaná rozhraními eth0 i eth1 . Povolena jsou také připojení týkající se klienta DHCP a SSH.

sudo firewall-cmd --list-all-zones

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

Změna zóny rozhraní

Zónu rozhraní můžete snadno změnit pomocí volby --zone v kombinaci s možností --change-interface . Následující příkaz přiřadí rozhraní eth1 pracovní 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 domovskou, měli byste spustit následující příkaz:

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

Ověřte změny pomocí:

sudo firewall-cmd --get-default-zone

home

Otevření přístavu nebo služby

S FirewallD můžete povolit provoz pro konkrétní porty 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

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

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 volby --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.

Co když provozujete aplikaci, jako je Plex Media Server, pro kterou není k dispozici žádná odpovídající služba?

V takových situacích máte dvě možnosti. Můžete buď otevřít příslušné porty, nebo definovat novou službu FirewallD.

Například server Plex naslouchá na portu 32400 a používá TCP, k otevření portu ve veřejné zóně pro aktuální relaci použijte volbu --add-port= :

sudo firewall-cmd --zone=public --add-port=32400/tcp Protokoly mohou být tcp nebo udp .

Chcete-li ověřit, že byl port úspěšně přidán, použijte volbu --list-ports :

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

32400/tcp

Chcete-li zachovat port 32400 otevřený i po restartu, přidejte pravidlo do trvalého nastavení spuštěním stejného příkazu pomocí volby --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=32400/tcp

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.

Například pro vytvoření definice služby pro server Plex Media můžeme použít soubor služeb 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 službu plexmediaserver používat ve svých zónách stejně jako jakékoli jiné služby.

Přeposílání port s Firewalld

Chcete-li přesměrovat provoz z jednoho portu na druhý port nebo adresu, nejprve povolte maškarádu do požadované zóny pomocí přepínače --add-masquerade . Například pro povolení maskování pro external typ zóny:

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

  • Přeposílání provozu z jednoho portu na druhý na stejném serveru

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 jiný server

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

Vytvoření sady pravidel s FirewallD

V následujícím příkladu si ukážeme, jak nakonfigurovat bránu firewall, pokud používáte webový server. Předpokládáme, že váš server má pouze jedno rozhraní eth0 a chcete povolit příchozí provoz pouze na portech SSH, HTTP a

  1. Změňte výchozí zónu na dmz

    Použijeme dmz (demilitarizovanou) zónu, protože ve výchozím nastavení umožňuje pouze přenos SSH. Chcete-li změnit výchozí zónu na dmz a přiřadit ji rozhraní eth0 , spusťte následující příkazy:

    sudo firewall-cmd --set-default-zone=dmz sudo firewall-cmd --zone=dmz --add-interface=eth0

    Otevřít porty HTTP a

    Chcete-li otevřít porty HTTP a HTTPS, přidejte do zóny dmz trvalá servisní pravidla:

    sudo firewall-cmd --permanent --zone=dmz --add-service=http sudo firewall-cmd --permanent --zone=dmz --add-service=https

    Proveďte změny okamžitě pomocí načtení brány firewall:

    sudo firewall-cmd --reload

    Ověřte změny

    Chcete-li zkontrolovat typ nastavení konfigurace dmz zóny:

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

    dmz (active) target: default icmp-block-inversion: no interfaces: eth0 sources: services: ssh http https ports: protocols: masquerade: no forward-ports: source-ports: icmp-blocks: rich rules:

    Výše uvedený výstup nám říká, že dmz je výchozí zóna, aplikuje se na rozhraní eth0 a jsou otevřeny porty ssh (22) http (80) a https (443).

Závěr

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

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

firewalld firewall iptables centos zabezpečení