Meu Debian 12 Bookworm VPS estava executando o firewalld 1.3.0-1 sem problemas. Devido a problemas não relacionados, tive que reconstruir o servidor e agora o firewalld falha.
Eu uso ansible, então a configuração deve ser idêntica a antes. Talvez algumas dependências do apt tenham mudado nesse ínterim.
Para solucionar problemas com mais facilidade, aqui está uma reprodução:
- Criei um novo VPS com minha empresa de hospedagem; debian 12
- entrei como root
$ apt install firewalld --yes
$ systemctl status firewalld.service
ERROR: 'python-nftables' failed: internal:0:0-0: Error: No such file or directory; did you mean chain ‘nat_PREROUTING’ in table inet ‘firewalld’?
Error: Could not process rule: No such file or directory
Error: No such file or directory; did you mean chain ‘nat_POSTROUTING’ in table inet ‘firewalld’?
Error: Could not process rule: No such file or directory
...etc.
Minha intenção é usar iptables ao invés de nftables (uma limitação do docker), então:
- editei
/etc/firewalld/firewalld.config
e troqueiFirewallBackend=nftables
porFirewallBackend=iptables
$ systemctl restart firewalld.service
$ systemctl status firewalld.service
ERROR: '/usr/sbin/iptables-restore -w -n' failed: iptables-restore v1.8.9 (nf_tables):
CHAIN_ADD failed (No such file or directory): chain PREROUTING
RULE_APPEND failed (No such file or directory): rule in chain PREROUTING
RULE_APPEND failed (No such file or directory): rule in chain PREROUTING
CHAIN_ADD failed (No such file or directory): chain POSTROUTING
RULE_APPEND failed (No such file or directory): rule in chain POSTROUTING
RULE_APPEND failed (No such file or directory): rule in chain POSTROUTING
CHAIN_ADD failed (No such file or directory): chain OUTPUT
RULE_APPEND failed (No such file or directory): rule in chain OUTPUT
RULE_APPEND failed (No such file or directory): rule in chain OUTPUT
...etc.
Não entendo como estava funcionando antes. E como você pode ver este é um servidor completamente novo , sem nada instalado e nada mais configurado. Eu esperava que funcionasse "fora da caixa".
O que eu fiz de errado?
(Também postado no repositório .)
Consegui corrigi-lo simplesmente reiniciando.
Em seguida,
$ systemctl status firewalld.service
mostra que o firewalld está em execução:Que inesperado!