Nastavení UFW Linux Firewallu – přídání a odebrání pravidel

By | 02/02/2022

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

Dobrovolný dar

Ahoj čtenáři, rád bych tě poprosil aby ses zamyslel, co je vše potřeba ke vzniku článku.
Jakožto amatérký softwarový kutil musím:

1) Nejdříve vše nastudovat v cizích jazycích.
2) Vše následně prakticky vyzkoušet.
3) Svoje poznatky a zkušenosti napsat do článku který si právě přečetl v jazyku kterému rozumíš.
4) Dát článku hlavu a patu a publikovat.

Každý článek zabere několik hodin práce, za kterou mi nikdo neplatí.
Prosím zvaž, kolik času jsem ti právě ušetřil.
Pokud ti to stojí aspoň za cenu jedné kávy, tak mi ji kup.
Předem moc děkuji.

Příspěvek tak můžeš provést zasláním libovolné částky na mé číslo účtu 1558701011/3030

Nebo můžeš dar poslat kliknutím na tento odkaz Podpořit tento WEB , který tě přesměruje na mou platební bránu Revolut.

Dar je také možné poslat ve formě Bitcoinu na BTC peněženku bc1qqdf5fp42a7srwwhh2rut8zr9x4jm5c8fqc9qw6

Veškeré peněžní prostředky budu také používat na zlepšení kvality své webové tvorby a na psaní nových technických návodů. Za každý dar předem děkuji.

Leave a Reply

Your email address will not be published. Required fields are marked *