How to configure Firewall on Linux Mint (Ubuntu)
Obsah:
- Předpoklady
- Základní koncepty Firewallu
- Zóny firewallu
- Firewallové služby
- Firewalld Runtime a trvalé nastavení
- Instalace a povolení FirewalluD
- Práce s firewallovými zónami
- Změna zóny rozhraní
- Změna výchozí zóny
- Otevření přístavu nebo služby
- Vytvoření nové služby FirewallD
- Přeposílání port s Firewalld
- Vytvoření sady pravidel s FirewallD
- Závěr
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
proIPv4
aicmp6-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
-
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
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:
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
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.
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
-
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íJak nastavit nebo změnit časové pásmo na centech 7

Na CentOS je časové pásmo systému nastaveno během instalace, ale později jej lze snadno změnit. Tento tutoriál vysvětluje, jak nastavit nebo změnit časové pásmo na CentOS 7.
Jak nastavit virtuální počítače apache na centech 7

V tomto tutoriálu vám krok za krokem poskytneme pokyny, jak nastavit virtuální servery Apache na serveru CentOS 7. Virtuální hostitelé Apache umožňují provozovat více webů na jednom webovém serveru.
Jak nastavit serverové bloky nginx na centech 7

Bloky serveru Nginx vám umožňují provozovat více než jeden web na jednom počítači. V tomto tutoriálu vysvětlíme, jak nastavit serverové bloky Nginx na CentOS 7.