POP HOSTING

iptables: como listar e apagar regras de firewall no Linux imprimir

  • iptables, nftables, firewall linux, apagar regra, firewalld, ufw, iptables-save
  • 0

Veja como listar e apagar regras do iptables pelo número ou pela regra, salvar as mudanças e fazer o mesmo no nftables, firewalld e ufw.

  • Tempo: 10 min
  • Nível: Intermediário
  • Vale para: Ubuntu 22.04 e 24.04, Debian 12, AlmaLinux e Rocky 8 e 9
  • Atualizado: outubro de 2026

Uma regra de firewall esquecida pode bloquear o acesso a um serviço ou deixar o servidor exposto. Antes de apagar qualquer coisa, descubra quem gerencia o firewall do seu servidor: se for uma ferramenta como CSF, firewalld, ufw, fail2ban ou Docker, a regra apagada à mão volta na próxima reinicialização dela.

Quem cuida do firewall do seu servidor

FerramentaComo identificarGerencie com
CSF (servidores cPanel)Existe o comando csf; chains como LOCALINPUT e DENYINcsf
firewalld (padrão no AlmaLinux e Rocky)systemctl is-active firewalld mostra activefirewall-cmd
ufw (comum no Ubuntu)ufw status mostra Status: activeufw
fail2banChains ou tabelas com f2b no nomefail2ban-client
Nenhuma das anterioresRegras criadas à mão ou por scriptiptables ou nft

Vale saber também que, nas distribuições atuais, o comando iptables é uma camada de compatibilidade sobre o nftables. Confira com iptables -V: aparece (nf_tables) na maioria dos sistemas novos, ou (legacy) nos antigos.

Como listar as regras do iptables

Todas as regras, como comandos (ótimo para copiar e adaptar):

iptables -S

Em formato de tabela, com contadores e o número de cada linha:

iptables -L -n -v --line-numbers

Só uma chain, por exemplo a de entrada:

iptables -L INPUT -n -v --line-numbers

O -n mostra IPs e portas como números, sem tentar traduzir para nomes. Sem ele, a listagem fica lenta e mostra nomes como ddi-tcp-1 no lugar da porta 8888. O -v mostra a interface e os contadores de pacotes e bytes de cada regra, úteis para saber se a regra está sendo usada.

Outras tabelas e IPv6:

iptables -t nat -L -n -v --line-numbers
ip6tables -L -n -v --line-numbers

Como apagar uma regra do iptables pelo número

  1. Liste a chain com os números das linhas: iptables -L INPUT -n --line-numbers.
  2. Apague pela posição. Para remover a regra 3 da chain INPUT:
    iptables -D INPUT 3
  3. Liste de novo antes de apagar a próxima. Ao remover uma regra, as de baixo sobem uma posição. Se for apagar várias, comece pela de número maior.

Como apagar uma regra pela especificação

Pegue a linha exata no iptables -S e troque o -A por -D. Por exemplo, se a listagem mostra:

-A INPUT -s 203.0.113.50/32 -j DROP

o comando para apagar é:

iptables -D INPUT -s 203.0.113.50/32 -j DROP

Zerar contadores e limpar chains

Para zerar os contadores de pacotes e bytes, sem apagar nada: iptables -Z.

Para apagar todas as regras e voltar a aceitar todo o tráfego, mude a política padrão para ACCEPT antes de limpar:

iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
iptables -F
iptables -X
iptables -t nat -F
iptables -t mangle -F
Atenção: se a política padrão da INPUT for DROP e você rodar iptables -F antes de mudá-la, todo o tráfego é bloqueado, inclusive o seu SSH, e só o console do servidor salva. Em servidor com Docker, limpar as tabelas também derruba a rede dos contêineres até o Docker ser reiniciado.

Como salvar as regras para sobreviverem ao reboot

Regras criadas ou apagadas com iptables valem só até a próxima reinicialização. Primeiro, guarde sempre uma cópia do estado atual:

iptables-save > /root/iptables-backup.rules

Para voltar a ela: iptables-restore < /root/iptables-backup.rules.

Ubuntu e Debian:

apt install iptables-persistent
netfilter-persistent save

As regras ficam em /etc/iptables/rules.v4 e /etc/iptables/rules.v6 e são carregadas no boot.

AlmaLinux e Rocky: o padrão é o firewalld (veja abaixo). Se você realmente quer gerenciar com iptables puro no AlmaLinux 9, o pacote é o iptables-nft-services, que salva em /etc/sysconfig/iptables com service iptables save. A Red Hat marca esse pacote como obsoleto no RHEL 9; para configurações novas, prefira firewalld ou nftables.

Dica: ao mexer no firewall por SSH, use o iptables-apply (vem no pacote iptables do Debian e Ubuntu). Ele aplica um arquivo de regras e, se você não confirmar em alguns segundos, desfaz sozinho, evitando que você fique trancado fora.

Como fazer o mesmo no nftables

# listar tudo, com o identificador (handle) de cada regra
nft -a list ruleset

# apagar uma regra pelo handle (tabela, chain e número do handle)
nft delete rule inet filter input handle 12

Para salvar, grave o conjunto atual no arquivo carregado no boot (/etc/nftables.conf no Debian e Ubuntu, /etc/sysconfig/nftables.conf no AlmaLinux) e ative o serviço com systemctl enable nftables. Regras criadas pelo comando iptables também aparecem no nft list ruleset, mas continue gerenciando essas pelo próprio iptables.

Equivalentes no firewalld, ufw e CSF

firewalld:

firewall-cmd --list-all
firewall-cmd --list-rich-rules
firewall-cmd --permanent --remove-port=8080/tcp
firewall-cmd --permanent --remove-rich-rule='rule family="ipv4" source address="203.0.113.50" reject'
firewall-cmd --reload

ufw:

ufw status numbered
ufw delete 3

CSF (servidores com cPanel):

csf -g 203.0.113.50
csf -dr 203.0.113.50
csf -tr 203.0.113.50
csf -r

O -g procura o IP nas regras, o -dr remove um bloqueio permanente, o -tr remove um bloqueio temporário e o -r recarrega o firewall.

fail2ban: fail2ban-client set sshd unbanip 203.0.113.50.

Problemas comuns

iptables: Bad rule (does a matching rule exist in that chain?)

Ao apagar pela especificação, a regra precisa ser idêntica à existente. Copie a linha do iptables -S em vez de digitar de memória.

iptables: Index of deletion too big

Não existe regra com esse número na chain. Liste de novo: os números mudam a cada regra apagada.

Warning: iptables-legacy tables present

Existem regras nos dois sistemas, o antigo (legacy) e o nftables. Veja as antigas com iptables-legacy -S. Misturar os dois causa comportamento difícil de entender; o ideal é migrar tudo para um só.

Apaguei a regra e ela voltou

Alguma ferramenta recria a regra: CSF, firewalld, ufw, fail2ban ou Docker. Use a ferramenta correspondente, como mostrado acima.

As regras sumiram depois de reiniciar

Elas não foram salvas. Recrie e salve com netfilter-persistent save (Ubuntu e Debian) ou use o firewalld no AlmaLinux.

Quer um servidor com firewall configurado e suporte que entende de Linux? Conheça os servidores dedicados da POP Hosting.

Esta resposta lhe foi útil?
« Retornar