Last Updated on 20/07/2022 by administrator
Nastavení UFW Linux Firewallu – přídání a odebrání pravidel
Nastavení UFW Linux
Motivace:
UFW značí zkratku pro Uncomplicated Firewall. Jedná se o zjednodušené rozhraní pro iptables pro Linuxový firewall.
OS:
Implementace byla prakticky vyzkoušena na Ubuntu 20.04 LTS a Ubuntu 18.04 LTS.
Implementace:
Instalace, aktivace a defaultní nastavení UFW:
Pokud není nainstalovaný UFW na Ubuntu, je možné jej doinstalovat pomocí:
sudo apt install ufw
Defaultně není UFW aktivní – zda je nebo není se ověří příkazem:
sudo ufw status
Pokud je k Ubuntu serveru přistupováno přes SSH, je dobré před aktivací UFW přidat pravidlo, které povoluje SSH protokol, aby nedošlo k odříznutí SSH session:
sudo ufw allow ssh
Pro aktivaci UFW:
sudo ufw enable
Výpis příkazu sudo ufw status verbose ukáže, že je UFW nyní aktivní. Nastavení UFW ukazuje, že všechen příchozí provoz je defaultně odepřen a všechen odchozí provoz povolen:
Status: active Logging: on (low) Default: deny (incoming), allow (outgoing), disabled (routed) New profiles: skip
Pokud by tomu tak nebylo, je možné defaultní nastavení UFW aplikovat pomocí příkazů níže:
sudo ufw default deny incoming sudo ufw default allow outgoing
Přidání firewall pravidla:
Příklad povolení příchozího provozu pro službu HTTP, pomocí čísla a portu:
sudo ufw allow 80/tcp
nebo
sudo ufw allow http
Příklad povolení příchozího provozu pro službu NTP, pomocí čísla a portu:
sudo ufw allow 123/udp
Příklad povolení příchozího provozu pro rozsah portů:
sudo ufw allow 6000:6007/tcp
Příklad povolení příchozího provozu pro specifickou IP adresu na jakýkoliv port:
sudo ufw allow from 192.168.0.20
Příklad povolení příchozího provozu pro specifickou IP adresu a cílový port 22 (TCP i UDP):
sudo ufw allow from 192.168.0.20 to any port 22
Příklad povolení příchozího provozu pro specifickou IP adresu a cílový port UDP/123 (UDP):
sudo ufw allow from 192.168.0.0/24 to any port 123 proto udp
Příklad povolení příchozího provozu pro IP subnet:
sudo ufw allow from 192.168.0.0/24
Příklad povolení příchozího provozu pro IP subnet a cílový port:
sudo ufw allow from 192.168.0.0/24 to any port 22
Příklad povolení příchozího provozu pro IP subnet a cílový port s komentářem:
sudo ufw allow from 192.168.0.0/24 to any port 22 comment "Comment"
Příklad odepření příchozího provozu pro službu HTTPS, pomocí čísla a portu:
sudo ufw deny 443/tcp
Pozn.
Je zde výjímka, kdy je příchozí provoz pro ICMP povolen. Ten má odlišnou syntaxi, než výše uvedená a definuje se v souboru /etc/ufw/before.rules:
sudo vi /etc/ufw/before.rules
Najít oddíl uvedený níže a přepsat ACCEPT…
# ok icmp codes for INPUT -A ufw-before-input -p icmp --icmp-type destination-unreachable -j ACCEPT -A ufw-before-input -p icmp --icmp-type time-exceeded -j ACCEPT -A ufw-before-input -p icmp --icmp-type parameter-problem -j ACCEPT -A ufw-before-input -p icmp --icmp-type echo-request -j ACCEPT
na DROP:
# ok icmp codes for INPUT -A ufw-before-input -p icmp --icmp-type destination-unreachable -j DROP -A ufw-before-input -p icmp --icmp-type time-exceeded -j DROP -A ufw-before-input -p icmp --icmp-type parameter-problem -j DROP -A ufw-before-input -p icmp --icmp-type echo-request -j DROP
Provést reload UFW:
sudo ufw reload
Pozn. Pokud je před příkazem ufw reload spuštěny ping, pravděpodobně bude i tak úspěšná jeho odpověď. Je potřeba totiž aby vypršela jeho ICMP session, tak bude až po vypršení DROP.
TIP:
Přidání firewall pravidel, lze provést i per aplikaci. Příkazem sudo ufw app list je možné vypsat si a provést povolení pro jednotlivé aplikace zvlášť, které již byly na Ubuntu nainstalovány:
sudo ufw app list
Výpis příkazu sudo ufw app list:
Available applications: Apache Apache Full Apache Secure Bind9 CUPS Lighttpd Full Lighttpd HTTP Lighttpd HTTPS Postfix Postfix SMTPS Postfix Submission
sudo ufw app info "Apache Full"
Výpis příkazu ufw app info „Apache Full“:
Profile: Apache Full Title: Web Server (HTTP,HTTPS) Description: Apache v2 is the next generation of the omnipresent Apache web server. Ports: 80,443/tcp
Odebrání firewall pravidla:
sudo ufw status numbered
Výpis příkazu sudo ufw status numbered:
Status: active To Action From -- ------ ---- [ 1] 443/tcp ALLOW IN Anywhere [ 2] 80/tcp ALLOW IN Anywhere [ 3] 22/tcp ALLOW IN Anywhere [ 4] 443/tcp (v6) ALLOW IN Anywhere (v6) [ 5] 80/tcp (v6) ALLOW IN Anywhere (v6) [ 6] 22/tcp (v6) ALLOW IN Anywhere (v6)
Pro vymazání druhého definovaného pravidla 80/tcp aplikovat
sudo ufw delete 3
nebo pomocí řádku níže, což vymaže pravidlo 80/tcp pro IPv4 i IPv6, čili řádek 2 a 5:
sudo ufw delete allow 80/tcp
Deaktivace UFW (pravidla zůstávají zachovány):
sudo ufw disable
Deaktivace UFW a vymazání všech firewall pravidel:
sudo ufw reset
Pozn. Příkaz udělá zálohu všech firewall pravidel ve složce /etc/ufw/
Logy:
Vše co je blokované lze najít příkazem níže:
zcat /var/log/ufw.log.* | less
Zdroj:
[1] https://www.digitalocean.com/community/tutorials/how-to-set-up-a-firewall-with-ufw-on-ubuntu-18-04
[2] https://help.ubuntu.com/community/UFW