Luku 3 · 3.4
Palomuuri ufw:llä (tai nftablesilla)
WebOkén verkossa kaikki VPS:llesi tuleva liikenne on sallittu. Päätät itse, mitä palvelimelle pääsee, kun otat käyttöön palomuurin. Sillä sallit vain sen, mitä tarvitaan, kuten SSH:n ja verkkosivustosi.
Huomaa: Avaa SSH ennen kuin otat palomuurin käyttöön. Muuten lukitset itsesi ulos. Jos niin käy, poista palomuuri käytöstä konsolin kautta (katso Lukittu ulos: et pääse enää palvelimellesi).
ufw Debianissa ja Ubuntussa
ufw on helppokäyttöinen kerros Linuxin palomuurin päällä. Ubuntussa se on valmiiksi asennettuna, Debianissa asennat sen näin:
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)
Kaikki, mitä et salli, estetään. Säännöt koskevat automaattisesti myös IPv6:ta. Portteja 80 ja 443 tarvitset vain verkkosivustoa varten (luku 5). Jos käytät Caddya ja HTTP/3:a, avaa myös sudo ufw allow 443/udp.
Käteviä ufw-komentoja
| Komento | Mitä se tekee? |
|---|---|
sudo ufw status numbered | Näyttää säännöt numeroituina |
sudo ufw delete 3 | Poistaa säännön 3 |
sudo ufw allow from 198.51.100.7 to any port 22 proto tcp | Avaa portin vain yhdelle IP-osoitteelle |
sudo ufw limit OpenSSH | Estää tilapäisesti osoitteen, joka avaa vähintään 6 yhteyttä 30 sekunnin sisällä |
sudo ufw disable | Poistaa palomuurin käytöstä (esimerkiksi konsolin kautta, jos olet lukinnut itsesi ulos) |
Ilman ufw:tä: nftables
Debianissa palomuurin pohjalla toimii nftables. Jos et halua käyttää ufw:tä, kirjoitat säännöt itse tiedostoon /etc/nftables.conf. Pieni perusmääritys IPv4:lle ja IPv6:lle yhdessä:
#!/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
Komennolla nft -c tarkistat tiedoston ensin. Käytä joko ufw:tä tai nftablesia, älä molempia yhtä aikaa.
AlmaLinuxissa ja Rocky Linuxissa on valmiina firewalld: sudo firewall-cmd --permanent --add-service=http --add-service=https ja sudo firewall-cmd --reload. SSH on niissä oletuksena sallittu.
Vinkki: Käytätkö Dockeria? Dockerilla julkaistut portit ohittavat ufw:n. Lue siksi Docker ja palomuuri: porttien turvallinen julkaiseminen.
