Správně nakonfigurovaný firewall je jedním z nejdůležitějších aspektů celkového zabezpečení systému.
UFW (Uncomplicated Firewall) je uživatelsky přívětivý front-end pro správu pravidel brány firewall iptables. Jeho hlavním cílem je usnadnit správu iptables nebo, jak název napovídá, nekomplikovat.
Tento článek popisuje, jak nastavit firewall s UFW na Debianu 10.
Předpoklady #
Systémový firewall může spravovat pouze uživatel root nebo uživatel s právy sudo.
Instalace UFW #
Chcete-li nainstalovat ufw
, zadejte následující příkaz balíček:
sudo apt update
sudo apt install ufw
Kontrola stavu UFW #
Instalace neaktivuje firewall automaticky, aby se zabránilo uzamčení ze serveru. Stav UFW můžete zkontrolovat zadáním:
sudo ufw status verbose
Výstup bude vypadat takto:
Status: inactive
Pokud je aktivován UFW, výstup bude vypadat podobně jako následující:
Výchozí zásady UFW #
Ve výchozím nastavení UFW blokuje všechna příchozí připojení a povoluje všechna odchozí připojení. To znamená, že kdokoli, kdo se pokusí získat přístup k vašemu serveru, se nebude moci připojit, pokud konkrétně neotevřete port. Aplikace a služby běžící na serveru budou mít přístup k vnějšímu světu.
Výchozí zásady jsou definovány v /etc/default/ufw
soubor a lze jej změnit pomocí sudo ufw default <policy> <chain>
příkaz.
Zásady brány firewall jsou základem pro vytváření podrobnějších a uživatelem definovaných pravidel. Obecně jsou výchozí zásady UFW dobrým výchozím bodem.
Profily aplikací #
Většina aplikací se dodává s profilem aplikace, který popisuje službu a obsahuje nastavení UFW. Profil je automaticky vytvořen v /etc/ufw/applications.d
adresář během instalace balíčku.
Seznam všech aplikačních profilů dostupných na vašem typu systému:
sudo ufw utf --help
V závislosti na balíčcích nainstalovaných ve vašem systému bude výstup vypadat podobně jako následující:
Available applications:
DNS
IMAP
IMAPS
OpenSSH
POP3
POP3S
Postfix
Postfix SMTPS
Postfix Submission
...
Chcete-li najít další informace o konkrétním profilu a zahrnutých pravidlech, použijte app info
za ním následuje název profilu. Chcete-li například získat informace o profilu OpenSSH, který byste použili:
sudo ufw app info OpenSSH
Profile: OpenSSH
Title: Secure shell server, an rshd replacement
Description: OpenSSH is a free implementation of the Secure Shell protocol.
Port:
22/tcp
Výstup obsahuje název profilu, název, popis a pravidla brány firewall.
Povolit připojení SSH #
Před povolením brány firewall UFW musíte povolit příchozí připojení SSH.
Pokud se připojujete ke svému serveru ze vzdáleného umístění a povolíte UFW firewall předtím, než explicitně povolíte příchozí SSH připojení, nebudete se již moci připojit k vašemu serveru Debian.
Chcete-li nakonfigurovat bránu firewall UFW tak, aby přijímala připojení SSH, spusťte následující příkaz:
sudo ufw allow OpenSSH
Rules updated
Rules updated (v6)
Pokud SSH server naslouchá na jiném portu, než je výchozí port 22, budete muset tento port otevřít.
Například váš ssh server naslouchá na portu 7722
, provedli byste:
sudo ufw allow 7722/tcp
Povolit UFW #
Nyní, když je firewall UFW nakonfigurován tak, aby umožňoval příchozí připojení SSH, povolte jej spuštěním:
sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
Budete upozorněni, že povolení brány firewall může narušit stávající připojení ssh. Napište „y“ a stiskněte „Enter“.
Otevření portů #
V závislosti na aplikacích, které běží na vašem serveru, budete muset otevřít porty, na kterých služby běží.
Níže je uvedeno několik příkladů, jak povolit příchozí připojení k některým z nejběžnějších služeb:
Otevřený port 80 – HTTP #
Povolit připojení HTTP:
sudo ufw allow http
Místo http
profilu, můžete použít číslo portu 80
:
sudo ufw allow 80/tcp
Otevřený port 443 – HTTPS #
Povolit připojení HTTPS:
sudo ufw allow https
Můžete také použít číslo portu 443
:
sudo ufw allow 443/tcp
Otevřít port 8080 #
Pokud spustíte Tomcator jakoukoli jinou aplikaci, která naslouchá na portu 8080
otevřete port pomocí:
sudo ufw allow 8080/tcp
Otevření rozsahů portů #
Pomocí UFW můžete také povolit přístup k rozsahům portů. Při otevírání rozsahu musíte zadat protokol portu.
Chcete-li například povolit porty z 7100
na 7200
na obou tcp
a udp
, spusťte následující příkaz:
sudo ufw allow 7100:7200/tcp
sudo ufw allow 7100:7200/udp
Povolení konkrétních IP adres #
Chcete-li povolit přístup na všechny porty z konkrétní IP adresy, použijte ufw allow from
příkaz následovaný IP adresou:
sudo ufw allow from 64.63.62.61
Povolení konkrétních IP adres na konkrétním portu #
Chcete-li povolit přístup na konkrétním portu, řekněme port 22
z vašeho pracovního stroje s IP adresou 64.63.62.61 použijte následující příkaz:
sudo ufw allow from 64.63.62.61 to any port 22
Povolení podsítí #
Příkaz pro povolení připojení z podsítě IP adres je stejný jako při použití jedné IP adresy. Jediný rozdíl je v tom, že musíte zadat masku sítě. Pokud například chcete povolit přístup pro IP adresy v rozsahu od 192.168.1.1 do 192.168.1.254 až po port 3360 (MySQL), můžete použít tento příkaz:
sudo ufw allow from 192.168.1.0/24 to any port 3306
Povolit připojení ke konkrétnímu síťovému rozhraní #
Chcete-li povolit přístup na konkrétním portu, řekněme portu 3360 pouze ke konkrétnímu síťovému rozhraní eth2
, použijte allow in on
a název síťového rozhraní:
sudo ufw allow in on eth2 to any port 3306
Odmítnout připojení #
Výchozí zásada pro všechna příchozí připojení je nastavena na deny
, což znamená, že UFW zablokuje všechna příchozí připojení, pokud připojení výslovně neotevřete.
Řekněme, že jste otevřeli porty 80
a 443
a váš server je napaden z 23.24.25.0/24
síť. Chcete-li odmítnout všechna připojení z 23.24.25.0/24
, použijte následující příkaz:
sudo ufw deny from 23.24.25.0/24
Pokud chcete pouze odepřít přístup k portům 80
a 443
od 23.24.25.0/24
použití:
sudo ufw deny from 23.24.25.0/24 to any port 80
sudo ufw deny from 23.24.25.0/24 to any port 443
Psaní pravidel odmítnutí je stejné jako psaní pravidel povolení. Musíte pouze nahradit allow
s deny
.
Smazat pravidla UFW #
Existují dva různé způsoby, jak odstranit pravidla UFW. Podle čísla pravidla a zadáním skutečného pravidla.
Smazání pravidel UFW podle čísla pravidla je snazší, zvláště pokud jste v UFW nováčkem.
Chcete-li pravidlo odstranit nejprve podle čísla, musíte najít číslo pravidla, které chcete odstranit. Chcete-li to provést, spusťte následující příkaz:
sudo ufw status numbered
Status: active
To Action From
-- ------ ----
[ 1] 22/tcp ALLOW IN Anywhere
[ 2] 80/tcp ALLOW IN Anywhere
[ 3] 8080/tcp ALLOW IN Anywhere
Chcete-li odstranit pravidlo číslo 3, pravidlo povolující připojení k portu 8080, můžete použít následující příkaz:
sudo ufw delete 3
Druhou metodou je odstranit pravidlo zadáním skutečného pravidla. Pokud jste například přidali pravidlo pro otevření portu 8069
můžete jej smazat pomocí:
sudo ufw delete allow 8069
Zakázat UFW #
Pokud z jakéhokoli důvodu chcete zastavit UFW a deaktivovat všechna pravidla, spusťte:
sudo ufw disable
Pokud později budete chtít znovu povolit UTF a aktivovat všechna pravidla, napište:
sudo ufw enable
Resetovat UFW #
Resetování UFW deaktivuje UFW a odstraní všechna aktivní pravidla. To je užitečné, pokud chcete vrátit všechny změny a začít znovu.
Chcete-li resetovat UFW, jednoduše zadejte následující příkaz:
sudo ufw reset