Прежде чем включать firewall на удалённом сервере, держите открытую SSH-сессию и подготовьте автоматический откат через панель провайдера. Ошибка в одном правиле не должна означать переустановку сервера.
Минимальный набор
table inet filter {
chain input {
type filter hook input priority 0; policy drop;
ct state established,related accept
iifname "lo" accept
ct state invalid drop
ip protocol icmp accept
ip6 nexthdr ipv6-icmp accept
tcp dport { 22, 80, 443 } accept
counter reject with icmpx type port-unreachable
}
chain forward {
type filter hook forward priority 0; policy drop;
}
chain output {
type filter hook output priority 0; policy accept;
}
}
Сохраните файл отдельно и проверьте nft -c -f ruleset.nft. Применяйте через nft -f, затем не закрывая старую сессию откройте новую, проверьте сайт по HTTP/HTTPS и IPv6.
Если на сервере Docker, его сетевые правила и forwarding требуют отдельного проектирования. Не вставляйте этот пример поверх действующего firewall без просмотра nft list ruleset.
Сохранение
На Debian/Ubuntu обычно используется пакет nftables и файл /etc/nftables.conf. Включите сервис только после успешной проверки. Сохраните копию предыдущего ruleset и способ доступа через консоль хостинга.
Официальные источники