Poglavlje 3 · 3.4
Vatrozid s ufw (ili nftables)
Na mreži WebOké sav je dolazni promet prema Vašem VPS-u otvoren. Što smije ući, određujete sami vatrozidom na svom serveru. Njime propuštate samo ono što je potrebno, primjerice SSH i Vašu web-stranicu.
Napomena: Otvorite SSH prije nego što uključite vatrozid. Ako to ne učinite, zaključat ćete se izvan servera. Ako Vam se to ipak dogodi, isključite vatrozid putem konzole (pogledajte Zaključani ste: više ne možete pristupiti svom poslužitelju).
ufw na Debianu i Ubuntuu
ufw je jednostavan sloj iznad vatrozida sustava Linux. Na Ubuntuu je već instaliran, a na Debianu ga instalirate ovako:
anna@web1:~$ sudo apt install ufw
anna@web1:~$ sudo ufw allow OpenSSH
anna@web1:~$ sudo ufw allow 80,443/tcp
anna@web1:~$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
anna@web1:~$ sudo ufw status verbose
Status: active
Default: deny (incoming), allow (outgoing), disabled (routed)
To Action From
-- ------ ----
22/tcp (OpenSSH) ALLOW IN Anywhere
80,443/tcp ALLOW IN Anywhere
22/tcp (OpenSSH (v6)) ALLOW IN Anywhere (v6)
80,443/tcp (v6) ALLOW IN Anywhere (v6)
Sve što ne dopustite bit će odbijeno. Pravila se automatski primjenjuju i na IPv6. Priključci 80 i 443 potrebni su Vam samo za web-stranicu (poglavlje 5). Ako koristite Caddy s HTTP/3, otvorite i sudo ufw allow 443/udp.
Korisne ufw naredbe
| Naredba | Što radi? |
|---|---|
sudo ufw status numbered | Prikazuje pravila s brojem |
sudo ufw delete 3 | Uklanja pravilo 3 |
sudo ufw allow from 198.51.100.7 to any port 22 proto tcp | Otvara priključak samo za jednu IP adresu |
sudo ufw limit OpenSSH | Privremeno odbija adresu koja unutar 30 sekundi pokrene 6 ili više veza |
sudo ufw disable | Isključuje vatrozid (primjerice putem konzole ako ste se zaključali izvan servera) |
Bez ufw: nftables
Na Debianu je nftables vatrozid koji radi u pozadini. Ako ne želite koristiti ufw, pravila sami upisujete u /etc/nftables.conf. Mala osnova za IPv4 i IPv6 zajedno:
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority filter; policy drop;
ct state established,related accept
iif "lo" accept
meta l4proto { icmp, ipv6-icmp } accept
tcp dport { 22, 80, 443 } accept
}
}
anna@web1:~$ sudo nft -c -f /etc/nftables.conf
anna@web1:~$ sudo systemctl enable --now nftables
Naredbom nft -c najprije provjerite datoteku. Koristite ufw ili nftables, a ne oboje istodobno.
Na AlmaLinuxu i Rocky Linuxu firewalld je već instaliran: sudo firewall-cmd --permanent --add-service=http --add-service=https i sudo firewall-cmd --reload. SSH je ondje prema zadanim postavkama otvoren.
Savjet: Koristite li Docker? Priključci koje objavite putem Dockera zaobilaze ufw. Zato pročitajte Docker i vatrozid: sigurno objavljivanje portova.
