3 skyrius · 3.4
Užkarda su ufw (arba nftables)
Pažiūrėti trumpą filmą
WebOké tinkle visas įeinantis srautas į Jūsų VPS yra atviras. Ką įsileisti, sprendžiate patys, naudodami užkardą savo serveryje. Su ja leidžiate tik tai, ko reikia, pavyzdžiui, SSH ir Jūsų svetainę.
Dėmesio: Prieš įjungdami užkardą, atidarykite SSH. Jei to nepadarysite, užsirakinsite sau prieigą. Jei taip vis dėlto nutiktų, užkardą išjunkite per konsolę (žr. Užsirakinote: nebegalite prisijungti prie savo serverio).
ufw Debian ir Ubuntu sistemose
ufw yra paprastas sluoksnis virš Linux užkardos. Ubuntu sistemoje jis jau įdiegtas, Debian sistemoje jį įdiekite:
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)
Viskas, ko neleidžiate, yra atmetama. Taisyklės automatiškai galioja ir IPv6. 80 ir 443 prievadų reikia tik svetainei (5 skyrius). Jei naudojate Caddy su HTTP/3, atidarykite ir sudo ufw allow 443/udp.
Naudingos ufw komandos
| Komanda | Ką ji daro? |
|---|---|
sudo ufw status numbered | Taisyklės su numeriais |
sudo ufw delete 3 | Pašalinti 3 taisyklę |
sudo ufw allow from 198.51.100.7 to any port 22 proto tcp | Atidaryti prievadą tik vienam IP adresui |
sudo ufw limit OpenSSH | Laikinai atmesti adresą, kuris per 30 sekundžių pradeda 6 ar daugiau ryšių |
sudo ufw disable | Išjungti užkardą (pavyzdžiui, per konsolę, jei praradote prieigą) |
Be ufw: nftables
Debian sistemoje nftables yra užkarda, veikianti „po gaubtu“. Jei nenorite naudoti ufw, taisykles rašykite patys faile /etc/nftables.conf. Nedidelis pagrindas IPv4 ir IPv6 kartu:
#!/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
Su nft -c pirmiausia patikrinkite failą. Naudokite ufw arba nftables, bet ne abu kartu.
AlmaLinux ir Rocky Linux sistemose firewalld jau įdiegtas: sudo firewall-cmd --permanent --add-service=http --add-service=https ir sudo firewall-cmd --reload. SSH ten pagal numatytuosius nustatymus yra atviras.
Patarimas: Naudojate Docker? Prievadai, kuriuos skelbiate su Docker, apeina ufw. Todėl perskaitykite Docker ir užkarda: kaip saugiai publikuoti prievadus.
