Перед применением всегда проверяйте файл на наличие ошибок и опечаток:
nft -c -f /etc/nftables.conf
Флаг -c (check) валидирует конфиг без его загрузки в ядро. Если команда ничего не вывела — синтаксис верный.
Запустите единый блок команд, который сохранит текущие рабочие правила и включит таймер автоматического отката через 60 секунд:
# 1. Сохраняем текущий рабочий ruleset nft list ruleset > /tmp/rules_working.nft # 2. Запускаем фоновый таймер отката на 60 секунд (sleep 60 && nft -f /tmp/rules_working.nft && echo "[SAFETY] Rules rolled back!") & ROLLBACK_PID=$! # 3. Применяем новый конфиг nft -f /etc/nftables.conf echo "Страховка запущенна! PID: $ROLLBACK_PID"
Не закрывая текущую сессию SSH, откройте новое окно терминала на рабочем ПК и проверьте доступность сервисов:
SSH: ssh root@IP_СЕРВЕРА
Веб-панели: https://IP_СЕРВЕРА:8006 / 8007
Если всё работает отлично: Отмените таймер отката в первом окне SSH:
kill $ROLLBACK_PID
Новые правила зафиксированы.
Ничего не делайте. Подождите 60 секунд — скрипт автоматически применит /tmp/rules_working.nft и восстановит предыдущий рабочий фаервол.
Правила nftables можно настроить через файл конфигурации /etc/nftables.conf или напрямую с помощью команд.
После редактирования /etc/nftables.conf перезагрузите nftables
systemctl restart nftables
echo '#!/usr/sbin/nft -f' > /etc/nftables.conf
echo "flush ruleset" >> /etc/nftables.conf
nft -s list ruleset >> /etc/nftables.conf
systemctl enable nftables.service
Если работаем по SSH
nft -f /etc/nftables.conf && sleep 60 && nft flush ruleset
Если связь не оборвалась и вы всё еще в консоли, просто нажмите Ctrl + C и зафиксируйте правила в системе:
systemctl restart nftables
Из консоли
nft -f /etc/nftables.conf
в файл /etc/network/interfaces:
после поисания сетевого интерфейса
iface enp5s0 inet manual
добваить
post-up nft -f /etc/nftables.conf
nft -a list ruleset
nft list chain ip nat PREROUTING
nft -a list chain ip nat PREROUTING | grep '# handle 14'
nft delete rule inet filter input handle 9
nft add rule inet filter input position 8 tcp dport 22 counter accept
root@clear:~# cat /etc/nftables.conf
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority filter;
}
chain forward {
type filter hook forward priority filter;
}
chain output {
type filter hook output priority filter;
}
}
nft flush ruleset