Jak nastavit bránu firewall na serveru Ubuntu
Vydáno: 15. února 2025 v 21:32:43 UTC
Poslední aktualizace: 12. ledna 2026 v 8:36:46 UTC
Tento článek vysvětluje a uvádí několik příkladů, jak nastavit firewall v systému GNU/Linux pomocí příkazu ufw, což je zkratka pro Uncomplicated FireWall (Nekomplikovaný firewall) – a název je příhodný, je to opravdu velmi snadný způsob, jak se ujistit, že nemáte otevřeno více portů, než potřebujete.
How to Set Up a Firewall on Ubuntu Server
Informace v tomto příspěvku jsou založeny na Ubuntu Serveru 14.04 x64. Pro jiné verze mohou, ale nemusí být platné. (Aktualizace: Mohu potvrdit, že informace v tomto příspěvku jsou v podstatě stále platné a funkční i pro Ubuntu Server 24.04, nicméně za posledních 10 let se ufw stal poněkud „chytřejším“ tím, že má profily pro běžné serverové aplikace (například můžete povolit „Nginx full“ místo samostatných portů 80 a 443) a zakázání/povolení celého firewallu pro použití nových pravidel již není nutné).
Když jsem začínal se servery GNU/Linux (Ubuntu), nastavení firewallu zahrnovalo ruční vytváření a údržbu potenciálně složitého konfiguračního souboru pro iptables. Nedávno jsem ale objevil ufw, což je zkratka pro Uncomplicated Firewall – a skutečně jím je :-)
Moje instalace Ubuntu Serveru 14.04 již měla ufw nainstalovaný, ale pokud ho vaše nemá, jednoduše ho nainstalujte z repozitářů:
UFW je ve skutečnosti jen nástroj, který zjednodušuje konfiguraci iptables – v zákulisí filtrování stále provádí iptables a firewall jádra Linuxu, takže ufw není ani méně, ani bezpečnější než tyto nástroje. Protože však ufw výrazně usnadňuje správnou konfiguraci firewallu, může snížit riziko lidské chyby, a proto je pravděpodobně bezpečnější pro nezkušené administrátory.
Pokud je váš server nakonfigurován s IPv6 i IPv4, ujistěte se, že je tato možnost povolena i pro UFW. Upravte soubor /etc/default/ufw a hledejte řádek s textem IPV6=yes. V mé instalaci tam již byl, ale pokud ne, nebo pokud je zobrazeno „ne“, měli byste jej upravit.
Pak jednoduše použijte příkazový řádek k povolení portů, které chcete otevřít. Pokud jste k serveru připojeni přes ssh, ujistěte se, že jste povolili i toto, jinak by to mohlo přerušit vaše připojení a případně vás po aktivaci serveru zablokovat – v závislosti na tom, zda máte k serveru fyzický přístup, či nikoli, to může být poněkud nepraktické ;-)
Například pokud používáte ssh na standardním portu 22 a konfigurujete webový server, který podporuje jak nešifrované (HTTP na portu 80), tak šifrované (HTTPS na portu 443) připojení, měli byste pro konfiguraci ufw zadat následující příkazy:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Pokud potřebujete další pravidla, jednoduše je přidejte, jak je uvedeno výše.
Pokud máte statickou IP adresu a potřebujete se připojit pouze přes ssh z jednoho místa, můžete také omezit ssh připojení na jednu zdrojovou adresu takto:
Samozřejmě zadejte místo toho svou vlastní IP adresu.
Po dokončení povolte ufw zadáním:
A máte hotovo! Firewall běží a automaticky se spustí po restartu serveru :-)
Pokud provedete změny v konfiguraci ufw, může být nutné jej nejprve zakázat a znovu povolit, aby se projevily, například takto:
sudo ufw enable
Chcete-li zobrazit aktuální konfiguraci, jednoduše zadejte:
Pokud není povoleno ufw, zobrazí se pouze zpráva „neaktivní“, jinak se zobrazí seznam aktuálně definovaných pravidel.
