UFW je firewall zaměřený na uživatelé, kteří nechtějí nekomplikovaný firewall. UFW využívá firewall iptables. Iptables je docela solidní a flexibilní nástroj, pro začátečníky může být obtížné naučit se, jak jej používat ke správné konfiguraci brány firewall. Pokud chcete začít zabezpečovat svou síť a nejste si jisti, jaký nástroj použít, může být pro vás UFW tou správnou volbou.
Instalace ufw:
sudo apt install ufw
Spuštění ufw.
Než spustíte firewall, tak je potřeba dát pravidla, která vám umožní používat systém vzdáleně, tedy, jste k raspberry pi přihlášení přes ssh, jinak, když firewall spustíte, tak vám zablokuje všecky porty
Ufw se po startu systému automatický spustí, ale jen když je ufw ve stavu aktivní (enable). Protože po instalaci ufw je ve stavu neaktivní (disable).
Jestli chcete použít protokol IPv6 a z nějakého důvodu není nastavený, tak nastavení pro spuštění IPv6 stačí zkontrolovat soubor:
sudo nano /etc/default/ufw
V souboru najdeme řádek s názvem IPV6=yes , kdyby tam bylo něco jiného, tak to změníme.
Uložte a zavřete soubor. Když je nyní povolen UFW, bude nakonfigurován tak, aby zapisoval pravidla brány firewall IPv4 i IPv6.
Spustíme si terminál a napíšeme příkaz pro spuštění.
sudo ufw enable
Nebo, když potřebujeme firewall vypnout, tak ho příkazem vypneme.
sudo ufw disable
Použití.
Pro otestování pravidla, co nám může ze systémem udělat, tedy jen zkusíme co pravidlo ovlivní.Provedeme tak, že předznačíme parametrem –dry-run
Příkazy, které něco provedou:
- allow – povolit
- deny – zakázat (pro druhou stranu to vypadá, že nikdo nikdo neodpovídá/neexistuje)
- reject – zakázat, ale odpovědět, že aktivní odmítáme
- limit – povolit, ale omezit počet připojeních za nějakou časovou jednotku jako obranu proti brutal-force útokům. Více jak 6 spojeních během posledních 30 vteřin, bude zakázáno.
Nastavení výchozích zásad.
Pokud s bránou firewall teprve začínáte, první pravidla, která je třeba definovat, jsou vaše výchozí zásady. Tato pravidla řídí, jak zacházet s provozem, který výslovně neodpovídá žádným jiným pravidlům. Ve výchozím nastavení je UFW nastavena tak, aby odepřela všechna příchozí připojení a povolila všechna odchozí připojení. To znamená, že kdokoli, kdo by se pokusil dostat na váš server, by se nemohl připojit, zatímco jakákoli aplikace na serveru by byla schopna dosáhnout vnějšího světa.
Když budeme potřebovat zakázat příchozí připojení:
sudo ufw default deny nebo sudo ufw default deny incoming
První příkaz nemá nedefinujeme směr, takže se použije automaticky incoming.
Příkaz pro povolení příchozích připojení:
sudo ufw default allow nebo sudo ufw default allow incoming
Příkaz pro zakázání odchozích připojení:
sudo ufw default deny outgoing
Příkaz pro povolení odchozích připojení:
sudo ufw default allow outgoing
Příkaz outgoing nám zakáže všecky odchozí připojení, dokud nepovolíme port, který můžou všecky aplikace používat. Tedy příklad, nebudete se moci připojit k internetu, dokud nepovolíte port 80 a 443.
Příkaz pro povolení portu je pak sudo ufw allow out 80/tcp, navíc je tam příkaz out
Porty a protokoly.
Povolení nebo zakázaní přenosu podle portu můžete příkazem.
Povolení portu:
sudo ufw allow číslo_portu
Zakázaní portu:
sudo ufw deny číslo_portu
Ukázka použití:
sudo ufw allow 22
sudo ufw deny 22
Další možnost je použít konkretní protokol.
Povolení portu:
sudo ufw allow číslo_portu/protokol
Zakázaní portu:
sudo ufw deny číslo_portu/protokol
Ukázka použití:
sudo ufw allow 22/tcp
sudo ufw deny 22/tcp
Omezení počtu spojeních.
ufw limit 22/tcp
Možnosti zákazu a povolení dle IP
Při práci s UFW můžete také zadat IP adresy. Chcete-li například povolit připojení ze konkrétní adresy IP, například z pracovní nebo domácí adresy IP
Povolení ip adresy:
sudo ufw allow from IPadresa
Zakázaní ip adresy:
sudo ufw deny from IPadresa
Ukázka použití:
sudo ufw allow from 192.168.1.120
sudo ufw deny from 192.168.1.120
Povolení nebo zakázání IP a portu.
Povolení ip adresy a portu:
sudo ufw allow from IPadresa to any port číslo_portu
Zakázaní ip adresy a portu:
sudo ufw deny from IPadresa to any port číslo_portu
Ukázka použití:
sudo ufw allow from 192.168.1.120 to any port 22
nebo s použitím protokolu
sudo ufw allow from 192.168.1.120 to any port 22/tcp
sudo ufw deny from 192.168.1.120 to any port 22
nebo s použitím protokolu
sudo ufw deny from 192.168.1.120 to any port 22/tcp
Podsítě.
Pokud chcete povolit podsíť IP adres, můžete tak učinit pomocí notace CIDR k určení masky sítě. Například pokud chcete povolit všechny adresy IP v rozsahu od 192.168.1.0
do 192.168.1.254
můžete použít tento příkaz:
sudo ufw allow from 192.168.1.0/24
nebo zakázání
sudo ufw deny from 192.168.1.0/24
Podobně můžete také určit cílový port, ke kterému se může podsíť připojit.
sudo ufw allow from 192.168.1.0/24 to any port 22
nebo zakázání
sudo ufw deny from 192.168.1.0/24 to any port 22
Rozsahy.
Povolit také můžeme rozsah portů pro specifický protokol.
Například pro rozsah portů 450 – 550:
sudo ufw allow 450:550/tcp
nebo zakázání
sudo ufw deny 450:550/tcp
Připojení ke konkrétnímu síťovému rozhraní.
Chcete-li vytvořit pravidlo brány firewall, které se vztahuje pouze na konkrétní síťové rozhraní.
První si zjistíme, jaké máme síťové rozhraní.
ip addr
Název rozhraní může být třeba eth0, ale i enp2s1 atd.
Pokud má tedy váš server veřejné síťové rozhraní eth0
, můžete mu povolit přenos pomocí tohoto příkazu:
sudo ufw allow in on eth0 to any port 80
nebo s použitím protokolu
sudo ufw allow in on eth0 to any port 80/tcp
Odstranění pravidel.
Vědět, jak odstranit pravidla, je stejně důležité jako vědět, jak je vytvořit. Existují dva různé způsoby, jak určit, která pravidla se mají odstranit. Podle čísla pravidla nebo podle skutečného pravidla. Začneme metodou mazání podle čísla pravidla, protože je to jednodušší.
Pokud k odstranění pravidel používáte číslo pravidla, první věcí, kterou budete chtít udělat, je získat seznam pravidel brány firewall. Příkaz stavu UFW má možnost zobrazit čísla vedle každého pravidla, jak je ukázáno zde:
sudo ufw status numbered
A teď si vybereme, co chceme odstranit.
sudo ufw delete 1
Další možnost je podle portu.
sudo ufw delete allow 22
Na rozdíl od mazání podle čísla se odstraní pravidla IPv4 i IPv6.
Kontrola stavu a pravidel UFW.
Stav UFW můžete kdykoli zkontrolovat pomocí tohoto příkazu:
sudo ufw status verbose
Pokud chcete zkontrolovat, jak je firewall nakonfiguroval a jaká pravidla jsou použita, funguje jen když je firewall zapnutý.
sudo ufw status status
Příklady.
Webový server.
Webové servery, jako je Apache a Nginx, obvykle naslouchají požadavkům na portu 80 a 443 pro připojení HTTP a HTTPS. Pokud je vaše výchozí zásada pro příchozí provoz nastavena na zrušení nebo odmítnutí, budete chtít vytvořit pravidla, která vašemu serveru umožní na tyto požadavky reagovat.
Chcete-li povolit všechna příchozí připojení HTTP, spusťte tento příkaz:
sudo ufw allow 80
nebo s použitím protokolu
sudo ufw allow 80/tcp
Chcete-li povolit všechna příchozí připojení HTTPS, spusťte tento příkaz:
sudo ufw allow 443
nebo s použitím protokolu
sudo ufw allow 443/tcp
Pokud chcete povolit provoz HTTP i HTTPS, můžete vytvořit jedno pravidlo, které povolí oba porty. Spusťte tento příkaz:
sudo ufw allow proto tcp from any to any port 80,443
Jestli jste si všimli, že je tam proto tcp, tak to je protokol, a ten je potřeba u více portu specifikovat.
Nastavení pošty.
Poštovní servery, jako Postfix, naslouchají na různých portech v závislosti na použitých protokolech pro doručování pošty. Pokud používáte poštovní server, určete, které protokoly používáte, a povolte příslušné typy přenosu. Ukážeme vám také, jak vytvořit pravidlo pro blokování odchozí pošty SMTP.
Pokud by váš server neměl odesílat odchozí poštu, můžete tento druh provozu zablokovat. Spusťte tento příkaz:
sudo ufw deny out 25
Povolit všechny příchozí SMTP.
sudo ufw allow 25
Povolit všechny příchozí IMAP.
sudo ufw allow 143
Povolit všechny příchozí IMAPS.
sudo ufw allow 993
Povolit všechny příchozí POP3.
sudo ufw allow 110
Povolit všechny příchozí POP3S.
sudo ufw allow 995
MySQL.
MySQL naslouchá připojení klientů na portu 3306. Pokud je váš databázový server MySQL používán klientem na vzdáleném serveru, musíte tento provoz povolit.
Chcete-li povolit příchozí připojení MySQL ze konkrétní adresy IP nebo podsítě, Například pokud chcete povolit celou 192.168.1.0/24
podsíť, spusťte tento příkaz:
sudo ufw allow from 192.168.1.0/24 to any port 3306
Chcete-li povolit připojení MySQL ke konkrétnímu síťovému rozhraní, použijte tento příkaz:
sudo ufw allow in on eth0 to any port 3306