Znalostní báze Jednoduchý návod pro práci se službou Profitserver
Hlavní Znalostní báze Konfigurace brány firewall v systému Linux

Konfigurace brány firewall v systému Linux


Firewall na Linuxu hraje zásadní roli v zabezpečení počítačového systému. Funguje jako bariéra, řídí a filtruje síťový provoz, aby chránil systém před neoprávněným přístupem, útoky a dalšími hrozbami. Bez správně nakonfigurované brány firewall by mohl být server zranitelný vůči různým typům kybernetických útoků, což by mělo vážné důsledky pro bezpečnost a důvěrnost dat.

V tomto článku se podíváme na dva hlavní nástroje pro konfiguraci Linuxového firewallu: firewalld a iptables. Provedeme srovnávací analýzu jejich vlastností, funkčnosti a výhod. Dále poskytneme podrobné pokyny k nastavení a používání každého z těchto nástrojů a také probereme osvědčené postupy pro zabezpečení systému pomocí firewallu na platformě Linux. Všechny akce budou demonstrovány na virtuálním serveru s root přístupem.

Konfigurace firewallu v systému Linux

Firewalld (Firewall Daemon) je program pro správu firewallu v operačních systémech Linux. Poskytuje uživatelské rozhraní pro konfiguraci pravidel firewallu, povolování nebo blokování připojení síťových aplikací. Ve většině serverových distribucí je standardně předinstalován. Pokud Firewalld není předinstalován, lze jej nainstalovat nezávisle z oficiálních repozitářů distribuce.

U systémů Red Hat (jako RHEL, CentOS, Fedora) se instalace provádí příkazem:

yum install firewalld

Pro Debian/Ubuntu:

apt-get install firewalld

Po instalaci jej lze spustit a ihned aktivovat příkazem:

systemctl start firewalld

Dále musíte službu přidat do spuštění:

systemctl enable firewalld
Přidání brány firewall v automatickém načítání systému Linux

V tomto okamžiku doporučujeme deaktivovat ufw, protože současné použití tohoto nástroje s firewalld nebo iptables se nedoporučuje. Zkontrolujte stav:

systemctl status ufw
Kontrola ufw linux

Chcete-li to zastavit, zadejte příkaz:

systemctl stop ufw

Pro úplnou deaktivaci:

ufw disable

Po těchto akcích můžete pokračovat v konfiguraci brány firewall.

Nejprve je nutné definovat zóny důvěryhodnosti. Firewalld používá koncept zón k určení úrovně důvěryhodnosti síťových rozhraní. Každému rozhraní je přiřazena jedna zóna a pravidla brány firewall jsou aplikována na základě zóny. Seznam všech dostupných zón se otevře příkazem:

firewall-cmd --get-zones

Obvykle se používají 4 hlavní zóny:

  1. Veřejné: Tato zóna je určena pro sítě, které považujete za nebezpečné;
  2. soukromý: Platí pro domácí sítě nebo jiná důvěryhodná síťová připojení;
  3. Interní: Používá se pro interní sítě, jako jsou sítě v rámci organizace nebo podnikové sítě;
  4. DMZ: V této zóně jsou obvykle umístěny servery, které by měly být přístupné z internetu.

To je však jen jeden příklad. Vlastní zónu můžete přidat pomocí příkazu:

firewall-cmd --permanent --new-zone=nameyourzone

Po přidání je nutné znovu načíst:

firewall-cmd --reload

K odstranění zóny se používá podobná metoda

firewall-cmd --permanent --delete-zone=nameyourzone

Po definování zón je nutné povolit provoz pro potřebné služby a porty. Chcete-li povolit určitou službu, použijte příkaz:

firewall-cmd --zone=public --add-service=name

Kde název je název služby. Například pro povolení provozu pro Apache:

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

Chcete-li definovat povolené porty, použijte příkaz:

firewall-cmd --zone=public --add-port=number/protocol

Například standardní port 22 pro SSH by vypadal takto:

firewall-cmd --zone=public --add-port=22/tcp

V této fázi jsou již vytvořena hlavní pravidla. Dále určete, jak bude provoz zpracováván v závislosti na zdroji, cíli, portu a dalších kritériích. Přidání pravidla (na příkladu veřejné zóny):

firewall-cmd --zone=public rule

Chcete-li například povolit příchozí provoz z libovolného zdroje na port 80 (HTTP):

firewall-cmd --zone=public --add-port=80/tcp --permanent

Postup odstranění pravidla:

firewall-cmd --permanent --remove-rule=rule_specification

Kde pravidlo je typ pravidla (např. port, služba, rich-rule atd.) a specifikace_pravidla je specifikace samotného pravidla.

Po provedení změn v konfiguraci Firewallu je nutné je uložit a použít. Chcete-li uložit změny, použijte příkaz:

firewall-cmd --runtime-to-permanent

Chcete-li použít změny:

firewall-cmd --reload

Po dokončení nastavení můžete vybrané parametry ověřit otevřením seznamu všech pravidel:

firewall-cmd --list-all
pravidla firewallu pro Linux

Pokud se vyskytnou nějaké problémy, zkontrolujte protokoly brány firewall pomocí příkazu:

journalctl -u firewalld

Poznámka: Popsali jsme pouze obecný algoritmus pro nastavení připojení. Nástroj má rozsáhlou funkcionalitu. Úplné informace o všech dostupných možnostech naleznete v oficiální dokumentaci nebo v nápovědě:

firewall-cmd --help

Konfigurace iptables na Linuxu

Na rozdíl od Firewalldu je iptables starší, ale stále hojně používaný nástroj v Linuxu pro správu firewallu. Poskytuje přímější a flexibilnější přístup k pravidlům filtrování paketů na úrovni jádra Linuxu. Ve srovnání s Firewallem však iptables vyžaduje pokročilejší znalosti a zkušenosti, takže je pro začátečníky méně dostupný. Zkontrolujte předinstalovanou verzi nástroje pomocí příkazu:

iptables -V

Pokud nástroj není nainstalován, bude nutné jej nainstalovat. Příkaz pro instalaci na Ubuntu, Debian:

apt install iptables

Pro systémy Red Hat (např. CentOS, Fedora):

yum install iptables

Příkaz pro aktivaci po instalaci:

systemctl start iptables

Chcete-li přidat do spuštění, spusťte:

systemctl enable iptables

Před zahájením konfigurace iptables je důležité pochopit, jak funguje. Tomu napomáhá syntaxe programu. Vypadá to následovně:

iptables -t table action chain additional_parameters

Pojďme se ponořit hlouběji do každé položky.

Iptables má čtyři hlavní tabulky: filter, nat, mangle a raw . Každá z nich je určena pro zpracování určitých typů paketů a má své vlastní řetězce pravidel:

  1. filtr: Toto je nejčastěji používaná tabulka obsahující pravidla filtrování paketů. Používá se pro rozhodování, zda povolit nebo zakázat pakety.
  2. Nat: Tato tabulka se používá pro úpravu síťových adres a portů v paketech. Často se používá pro nastavení maskování (NAT).
  3. mandl: V této tabulce můžete upravit hlavičky paketů. Používá se pro specializované paketové operace, jako je označování.
  4. syrový: Tato tabulka se používá pro konfiguraci pravidel, která platí před tím, než projdou systémem sledování připojení. Obvykle se používá pro nastavení pravidel, která by systém sledování neměl měnit, jako je zahazování paketů z určitých adres.

Každý stůl obsahuje sadu řetězů. Řetězce jsou posloupností pravidel, která se kontrolují postupně. Existují tři předdefinované řetězce:

  1. INPUT (příchozí). Pravidla v tomto řetězci určují, co dělat s příchozími pakety.
  2. VÝSTUP (odchozí). Tento řetězec se vztahuje na všechny pakety, které váš počítač odesílá do jiných zařízení nebo počítačů v síti.
  3. FORWARD (předávání). Pravidla v tomto řetězci určují, co dělat s předávanými pakety.

Konečně, každý řetězec má nějakou akci (cíl). V praxi se používá 5 hlavních akcí:

  1. AKCEPTOVAT: Umožněte paketu projít bránou firewall.
  2. DROP: Odmítněte paket a zahoďte jej bez jakékoli odpovědi.
  3. ODMÍTNOUT: Odmítněte paket a odešlete odesílateli chybovou zprávu ICMP.
  4. LOG: Zapište paket do systémového protokolu a proveďte jinou akci (např. ACCEPT nebo DROP).
  5. VRÁTIT SE: Přestaňte kontrolovat pravidla v aktuálním řetězci a vraťte se do volajícího řetězce (pokud je to možné).

Chcete-li zahájit nastavení, otevřete seznam existujících pravidel příkazem:

iptables -L
Konfigurace brány firewall v systému Linux

Jako vodítko pro konfiguraci Iptables se podívejme na praktické příklady nejčastěji používaných příkazů. Pro usnadnění rozdělíme příklady do 3 skupin v závislosti na konkrétním řetězci.

VSTUP řetězce :

  1. Povolit příchozí provoz přes protokol TCP na portu 80:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT

2. Povolte příchozí provoz přes protokol UDP na portu 22:

iptables -A INPUT -p udp --dport 22 -j ACCEPT

3. Blokujte příchozí provoz z konkrétní IP adresy:

iptables -A INPUT -s 192.168.1.100 -j DROP

VÝSTUP řetězce :

  1. Povolit odchozí provoz přes protokol TCP na portu 443:
iptables -A OUTPUT -p tcp --dport 443 -j ACCEPT

2. Povolte odchozí provoz přes protokol UDP na portu 80:

iptables -A OUTPUT -p udp --dport 80 -j ACCEPT

3. Blokujte odchozí provoz na konkrétní port (například 21):

iptables -A OUTPUT -p tcp --dport 21 -j DROP

Řetěz VPŘED :

  1. Blokovat přesměrovaný provoz z určitého rozsahu IP adres:
iptables -A FORWARD -s 172.16.0.0/24 -j DROP

2. Blokujte předávání paketů z konkrétního síťového rozhraní:

iptables -A FORWARD -i eth1 -j DROP

3. Omezte počet současných připojení pro konkrétní port (v tomto příkladu 10 připojení za minutu na portu 80):

iptables -A INPUT -p tcp --dport 80 -m limit --limit 10/minute -j ACCEPT

Jak vidíte, v každém samostatném případě se používá další argument (příkaz). Chcete-li získat úplný seznam možných argumentů a celkovou podporu funkcí nástroje, zadejte:

iptables -h
seznam příkazů iptables linux setup

Chcete-li zajistit správnost nastavení, zadejte příkaz znovu a zobrazte seznam pravidel:

iptables -L
Kontrola pravidel iptables linux

Chcete-li odstranit konkrétní pravidlo, použijte příkaz:

iptables -D chain rule_number

Pokud například chcete odstranit pravidlo číslo 1 z řetězce INPUT, příkaz bude vypadat takto:

iptables -D INPUT 1

Chcete-li odstranit všechna pravidla jedním příkazem:

iptables -F

Důležitá poznámka : pravidla iptables se po restartu systému nebo služby automaticky neukládají. Chcete-li pravidla uložit, je třeba je přidat do konfiguračního souboru a po restartu obnovit. S tím vám mohou pomoci utility iptables-save a iptables-restore . Chcete-li pravidla uložit, zadejte příkaz:

iptables-save > /etc/iptables/rules.v4

Tím se uloží aktuální pravidla iptables do souboru rules.v4. Pro obnovení po restartu zadejte:

iptables-restore < /etc/iptables/rules.v4

Tento příkaz obnoví pravidla ze souboru rules.v4.

Závěr

Konfigurace brány firewall v systému Linux pomocí brány firewalld nebo iptables je důležitým aspektem zajištění bezpečnosti serveru. Oba nástroje nabízejí spolehlivé prostředky pro řízení síťového provozu a ochranu systému před neoprávněným přístupem a kybernetickými útoky. Volba mezi firewallem a iptables závisí na konkrétních potřebách a preferencích uživatele s ohledem na jejich různé funkce a silné stránky.

❮ Předchozí článek Diagnostika zatížení serveru
Další článek ❯ Uživatelé Linuxu: Správa a oprávnění

Zeptejte se nás na VPS

Jsme vždy připraveni zodpovědět vaše dotazy v kteroukoli denní i noční dobu.