Úvod
Vypnutí brány firewall v CentOS je někdy nutné pro účely testování. Z bezpečnostních důvodů je provoz brány firewall na produkčním serveru nutností. Nemůžeme dostatečně zdůraznit důležitost správně nakonfigurovaného nástroje pro správu brány firewall.
V tomto kurzu se dozvíte, jak povolit a používat firewall na CentOS 7.
Předpoklady
- Uživatel s právy sudo
- Přístup k příkazovému řádku (Ctrl-Alt-T)
- Počítač CentOS 7
Jak zkontrolovat stav brány firewall
Začněte tím, že spustíte svůj server CentOS 7 a zkontrolujete, zda je spuštěn firewall. Chcete-li tak učinit, otevřete terminál (CTRL-ALT-T) a spusťte následující příkaz:
sudo systemctl status firewalld
Můžete obdržet několik výstupů.
Aktivní:aktivní (běžící)
Pokud je na výstupu uvedeno Active: active (running)
, firewall je aktivní. Pokud si nejste jisti, zda se správce brány firewall spustil po restartu systému, zvažte zadání následujícího příkazu:
sudo systemctl enable firewalld
Tento příkaz nakonfiguruje systém tak, aby spustil firewall po každém restartu serveru.
Aktivní:neaktivní (mrtvý)
Pokud je na výstupu nápis Active: inactive (dead)
, firewall neběží. Pokračujte částí Jak povolit a spustit firewall části článku.
Načteno:maskované (/dev/null; špatné)
Výstup může naznačovat, že služba je neaktivní a maskovaná. Další podrobnosti naleznete na obrázku níže.
Služba firewalld je zde maskována symbolickým odkazem. Správci mohou službu maskovat, aby ji jiné softwarové balíčky neaktivovaly automaticky. MUSÍTE před povolením službu odmaskujte.
Chcete-li odmaskovat službu firewalld, spusťte následující příkaz:
sudo systemctl unmask --now firewalld
Výstup by měl indikovat, že symbolický odkaz byl odstraněn.
Nyní můžete přejít na Jak povolit a spustit firewalld části článku.
Jak povolit a spustit firewall
Chcete-li povolit bránu firewall na CentOS 7, spusťte následující příkaz jako sudo:
sudo systemctl enable firewalld
Po povolení brány firewall spusťte službu brány firewall:
sudo systemctl start firewalld
Když systém provede příkaz, není k dispozici žádný výstup. Proto je rozumné ověřit, zda byl firewall úspěšně aktivován.
Zkontrolujte stav brány firewall pomocí:
sudo systemctl status firewalld
Výstup by měl indikovat, že firewalld je aktivní a běží.
Zóny brány firewall
Firewalld vytváří „zóny“ a kategorizuje veškerý příchozí provoz do uvedených zón. Každá síťová zóna má vlastní sadu pravidel, na základě kterých přijímá nebo odmítá příchozí provoz.
Jinými slovy, zóny řídí, který paket je povolen a který je odmítnut. Tento přístup poskytuje větší flexibilitu ve srovnání s iptables, protože můžete nastavit různé zóny pro konkrétní sítě, ke kterým je vaše zařízení připojeno.
Chcete-li zobrazit úplný seznam všech dostupných zón, zadejte:
sudo firewall-cmd --get-zones
Pro novou instalaci s největší pravděpodobností získáte následující výstup:
Output
block dmz drop external home internal public trusted work
To jsou předem nakonfigurované zóny. Chcete-li ověřit, která zóna je nastavena jako výchozí, spusťte následující příkaz:
sudo firewall-cmd --get-default-zone
Firewalld poskytl seznam všech předem nakonfigurovaných zón a popis zón. Níže uvedený seznam je seřazen podle úrovně důvěryhodnosti, od nejméně důvěryhodné po nejdůvěryhodnější.
drop
:Nejnižší úroveň důvěry. Všechna příchozí připojení jsou přerušena bez odpovědi a jsou možná pouze odchozí připojení.
block
:Podobné jako výše, ale místo pouhého zrušení připojení jsou příchozí požadavky odmítnuty zprávou icmp-host-prohibited nebo icmp6-adm-prohibited.
public
:Představuje veřejné, nedůvěryhodné sítě. Ostatním počítačům nedůvěřujete, ale případ od případu můžete povolit vybraná příchozí připojení.
external
:Externí sítě v případě, že jako bránu používáte firewall. Je nakonfigurován pro maskování NAT, takže vaše interní síť zůstane soukromá, ale dosažitelná.
internal
:Druhá strana vnější zóny, která se používá pro vnitřní část brány. Počítače jsou poměrně důvěryhodné a jsou k dispozici některé doplňkové služby.
dmz
:Používá se pro počítače umístěné v DMZ (izolované počítače, které nebudou mít přístup ke zbytku vaší sítě). Jsou povolena pouze určitá příchozí připojení.
work
:Používá se pro pracovní stroje. Důvěřuje většině počítačů v síti. Může být povoleno několik dalších služeb.
home
:Domácí prostředí. Obecně to znamená, že důvěřujete většině ostatních počítačů a že bude přijato několik dalších služeb.
trusted
:Důvěřujte všem strojům v síti. Nejotevřenější z dostupných možností a měla by být používána střídmě.
Ověřte aktivní zónu brány firewall
Chcete-li ověřit, která zóna je aktivní, zadejte:
sudo firewall-cmd --get-active-zones
Výstup indikuje aktivní zónu a jí řízená síťová rozhraní. Pokud to nenakonfigurujete jinak, je výchozí zóna jedinou aktivní zónou.
Pravidla zóny brány firewall
Chcete-li zjistit, která pravidla jsou přidružena k výchozí zóně, spusťte následující příkaz:
sudo firewall-cmd --list-all
Zvažme všechny uvedené prvky a definujme je:
target:
Výchozí označuje, že zóna je výchozí zónou. Může také indikovat, že zóna je aktivní. Ve výše uvedeném příkladu není veřejná zóna aktivní, protože s ní není spojeno žádné síťové rozhraní.
icmp-block-inversion:
Toto je volitelný prvek, který invertuje manipulaci s bloky icmp.
interfaces
:Všechna síťová rozhraní spravovaná touto zónou.
sources
:Zdroje pro tuto zónu (IP adresy).
services
:Zobrazí povolené služby. Ve výše uvedeném příkladu je to ssh dhcpv6-client. Chcete-li získat úplný seznam služeb dostupných prostřednictvím brány firewall, spusťte firewall-cmd --get-services
příkaz.
ports
:Seznam portů povolených přes bránu firewall. Je to velmi užitečné pro povolení služeb, které nejsou definovány ve firewallu.
masquerade
:Pokud žádný, pak je maskování IP zakázáno. Je-li povoleno, umožňuje přesměrování IP. To v podstatě znamená, že váš server bude fungovat jako router.
forward-ports
:Zobrazí seznam všech předávaných portů.
source-ports
:Uvádí všechny zdrojové porty a protokoly související s touto zónou.
icmp-blocks
:Zobrazuje blokovaný provoz icmp.
rich rules
:Seznam všech pokročilých pravidel přidružených k zóně.
Chcete-li získat seznam pravidel přidružených ke konkrétní zóně, přidejte --zone=
parametr do --list-all
příkaz. Například,
sudo firewall-cmd --zone=work --list-all
Výše uvedený příkaz vygeneruje seznam pravidel přidružených k práci zóna.
Jak změnit zónu rozhraní
Je snadné znovu přiřadit jinou zónu k síťovému rozhraní. Použijte --zone
příznak určete zónu a poté přidejte --change-interface
příznak k určení síťového rozhraní.
sudo firewall-cmd --zone=home --change-interface=eth1
Ověřte, zda se změny projevily:
firewall-cmd --get-active-zones
Firewalld měl použít domovskou zónu na veškerý provoz přicházející přes eth1
síťové rozhraní.
Upozornění :Při změně zóny rozhraní můžete ovlivnit stav aktivních služeb. Pokud například pracujete přes SSH a přesunete síťové rozhraní do zóny, která nepodporuje službu SSH, vaše připojení může přestat. Navíc se nebudete moci přihlásit.
Změňte výchozí zónu brány firewall
Výchozí zónu můžete snadno změnit. Použijte --set-default-zone
příznak označující, kterou zónu chcete nastavit jako výchozí. V níže uvedeném příkladu nastavíme pracovní zónu jako výchozí.
sudo firewall-cmd --set-default-zone=work
Po změně výchozí zóny byste měli obdržet výstup oznamující, že změna byla úspěšná. Další podrobnosti naleznete na obrázku výše.
Úpravu můžete také ověřit spuštěním tohoto příkazu:
sudo firewall-cmd --get-default-zone
Výstup by měl zobrazovat, že pracovní zóna je skutečně výchozí.