Peatükk 3 · 3.4
Tulemüür ufw (või nftables) abil
WebOké võrgus on kogu sissetulev liiklus sinu VPS-i avatud. Mis sisse pääseb, otsustad ise oma serveri tulemüüriga. Nii lubad ainult seda, mida on vaja, näiteks SSH-d ja oma veebisaiti.
Tähelepanu: Ava SSH enne, kui tulemüüri sisse lülitad. Kui sa seda ei tee, lukustad end välja. Kui see siiski juhtub, lülita tulemüür konsooli kaudu välja (vaata Lukustatud välja: sa ei pääse enam oma serverisse).
ufw Debianis ja Ubuntus
ufw on lihtne kiht Linuxi tulemüüri peal. Ubuntus on see juba olemas, Debianis paigalda see nii:
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)
Kõik, mida sa ei luba, keelatakse. Reeglid kehtivad automaatselt ka IPv6 kohta. Porte 80 ja 443 on vaja ainult veebisaidi jaoks (peatükk 5). Kui kasutad Caddyt koos HTTP/3-ga, ava ka sudo ufw allow 443/udp.
Kasulikud ufw käsud
| Käsk | Mida see teeb? |
|---|---|
sudo ufw status numbered | Reeglid koos numbritega |
sudo ufw delete 3 | Reegli 3 kustutamine |
sudo ufw allow from 198.51.100.7 to any port 22 proto tcp | Pordi avamine ainult ühele IP-aadressile |
sudo ufw limit OpenSSH | Aadressi ajutine keelamine, kui see alustab 30 sekundi jooksul 6 või rohkem ühendust |
sudo ufw disable | Tulemüüri väljalülitamine (näiteks konsooli kaudu, kui oled end välja lukustanud) |
Ilma ufw-ta: nftables
Debianis on nftables tulemüür, mis töötab kapoti all. Kui sa ufw-d ei soovi, kirjuta reeglid ise faili /etc/nftables.conf. Väike põhikomplekt IPv4 ja IPv6 jaoks korraga:
#!/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
Käsuga nft -c kontrollid faili enne üle. Kasuta kas ufw-d või nftablesit, mitte mõlemat korraga.
AlmaLinuxis ja Rocky Linuxis on firewalld juba olemas: sudo firewall-cmd --permanent --add-service=http --add-service=https ja sudo firewall-cmd --reload. SSH on seal vaikimisi avatud.
Nõuanne: Kasutad Dockerit? Dockeriga avaldatud pordid lähevad ufw-st mööda. Seepärast loe artiklit Docker ja tulemüür: pordid turvaliselt avalikuks.
