ťařina
Obsah Soubory
Linux firewall

ufw

Aktualizováno 2 min čtení 386 slov

ufw

Uncomplicated Firewall. Nadstavba nad nftables, která z běžných úkonů dělá jednořádkové příkazy. Pro jednoduchý server je to správná volba — pod podmínkou, že víš, kde přestává platit.

Základ

ufw default deny incoming
ufw default allow outgoing

ufw allow 22/tcp
ufw allow 80,443/tcp

ufw enable
ufw status verbose

To je celý firewall pro typický webový server. Proto se ufw používá.

Užitečné varianty

ufw allow from 192.168.1.0/24                    # celá síť kamkoliv
ufw allow from 192.168.1.0/24 to any port 22     # síť na konkrétní port
ufw allow from 10.10.0.0/24 to any port 8006     # Proxmox jen z VPN
ufw limit 22/tcp                                 # omezení opakovaných pokusů
ufw deny from 203.0.113.5                        # blokace adresy
ufw allow in on wg0                              # celé rozhraní (VPN)

ufw limit je šikovná drobnost — povolí šest spojení za třicet vteřin z jedné adresy a další zahodí. Na SSH vystavené do internetu to výrazně zředí log.

Mazání

ufw status numbered
ufw delete 3
ufw delete allow 8080/tcp     # podle pravidla, ne podle čísla

Po smazání podle čísla se ostatní přečíslují. Když mažeš víc pravidel, jdi odspodu nahoru, nebo je maž podle znění.

Aplikační profily

ufw app list
ufw allow "Nginx Full"
ufw app info "Nginx Full"

Profily jsou v /etc/ufw/applications.d/. Pohodlné, ale skryjí ti, které porty se skutečně otevřely — u ufw app info si to ověř.

Logování

ufw logging on
ufw logging medium
tail -f /var/log/ufw.log

Úrovně jsou low, medium, high, full. medium je rozumný kompromis. full zaplní disk.

IPv6

Zkontroluj /etc/default/ufw:

IPV6=yes

Ve výchozím stavu to zapnuté je, ale u starších instalací a u některých obrazů pro VPS ne. Pak máš IPv4 zajištěnou a IPv6 dokořán.

Ověř to takhle:

ufw status verbose | grep v6

Kde ufw přestává platit

Tohle je důvod, proč tahle stránka existuje. Ufw je pohodlné rozhraní k jedné části netfilteru — ne k celému.

ufw status neukazuje cizí pravidla. Docker, Proxmox, libvirt a další si zapisují vlastní řetězce, o kterých ufw neví a neřekne ti o nich. Jediný způsob, jak vidět pravdu:

nft list ruleset
iptables -L -n -v

Když se ti výstup ufw status a nft list ruleset výrazně liší, věř tomu druhému.

Docker ufw úplně obchází. ufw deny 8080 a docker run -p 8080:80 znamená, že port je veřejně dostupný, ať si ufw říká cokoliv. Je to nejzávažnější věc na téhle stránce a má vlastní stránku: Docker a firewall.

Forwarding se nastavuje jinde. Když chceš, aby stroj směroval provoz (router, VPN brána), samotný ufw allow nestačí. Musíš v /etc/default/ufw nastavit:

DEFAULT_FORWARD_POLICY="ACCEPT"

a povolit forwarding v /etc/ufw/sysctl.conf.

Složitější logiku ufw neumí. Značkování, přesměrování portů, podmíněná pravidla, dynamické množiny. V tu chvíli jdi na nftables a ufw vypni — ne obojí naráz.

Kdy ufw a kdy ne

Ano: jednotlivý server s několika službami, VPS, stroj bez kontejnerů, situace, kdy chceš rychle a bez chyb.

Ne: router nebo VPN brána, hostitel s Dockerem (nebo ano, ale s vědomím omezení a s pravidly v DOCKER-USER), cokoliv, co potřebuje NAT.

Ověření zvenku

Ufw ti řekne, co si myslí. Skutečnost ti řekne sken zvenku:

nmap -Pn -p- adresa.serveru

Pusť to z jiného stroje nebo z mobilu na datech. Viz nástroje.