Acesso não autorizado e invasão de servidores são ameaças sérias. Por isso, você deve implementar um firewall como parte de sua estratégia de segurança de rede. Dominar as regras do Iptables é um dos conhecimentos fundamentais para reduzir esses riscos em sistemas Linux. Este guia o ajudará a familiarizar-se com conceitos básicos de firewall, como listar regras do iptables e removê-las em Ubuntu, permitindo executar comandos simples para atingir esse objetivo. Antes de discutir como listar ou deletar regras do iptables, vamos explicar o que são regras do iptables e por que as usamos.
- O que é Iptables?
- Guia completo de Iptables em Ubuntu
- Como remover regras do iptables?
- Como Limpar Todas as Regras, Deletar Todas as Chains e Aceitar Tudo?
- Como configurar iptables em Ubuntu?
- Qual é a diferença entre iptables e firewalld?
- Considerações finais: exibir regras de iptables
- Perguntas Frequentes
O que é Iptables?
iptables é um utilitário de firewall de linha de comando que permite ou bloqueia tráfego via cadeias de políticas. Quando conexões tentam ser estabelecidas no seu sistema, iptables procura uma regra na lista que corresponda a elas, servindo como um assistente essencial na segurança de rede. Se não encontrar uma para a conexão, aplica a ação padrão.
iptables geralmente vem pré-instalado em qualquer Distribuição Linux. Você pode usar o seguinte comando para atualizá-lo ou instalá-lo:
sudo apt-get install iptables
Por que usar Iptables?
Como firewall de linha de comando em Linux, iptables permite que administradores de sistema controlem tráfego de entrada e saída através de regras de tabelas configuráveis. Iptables usa um conjunto de tabelas com cadeias contendo regras built-in ou definidas pelo usuário.
Como mencionado na seção anterior, iptables desempenha um papel essencial na segurança de rede para a maioria dos sistemas Linux. O resto deste artigo se concentra principalmente em descrever como listar todas as regras de iptables, incluindo conceitos como exibir iptables e remover regras de iptables.
Mais especificamente, este artigo discutirá algumas das tarefas essenciais de iptables para mostrar como listar regras, deletar contadores de pacotes e bytes, remover regra de iptables, limpar cadeias e deletar todas as cadeias e aceitar todo tráfego.
Guia completo de Iptables em Ubuntu
Antes de prosseguir com exibição de regras de iptables, observe que você deve estar usando um servidor Linux com o comando iptables instalado. Além desses requisitos, é essencial ter privilégios de sudo. Ao trabalhar com firewalls, tenha cuidado para não se bloquear do seu servidor ao bloquear tráfego SSH (porta: 22, por padrão). Se perder acesso por causa das configurações do seu firewall, pode ser necessário conectar-se a ele através de um console fora da banda para corrigi-lo.
Leia Também: Como Alterar a Porta SSH em Linux | Guia Passo a Passo para sua Porta SSH
Listando Regras por Especificação
Você pode ver suas regras ativas de iptables em uma tabela ou como uma lista de especificações de regra. Quase ambos os métodos fornecem as mesmas informações em formatos diferentes. Para listar todas as regras de iptables ativo por especificação, você precisa executar o comando iptables com a opção -S:
sudo iptables -S
Após executar este comando de exibição de regras de iptables, você verá um resultado como este:

Listando uma Cadeia Específica
Se você quiser limitar a saída de exibição de iptables para uma cadeia específica como INPUT, OUTPUT, ou TCP, pode especificar o nome da cadeia diretamente após a opção -S. Por exemplo, o seguinte comando de exibição de regras de iptables ajuda a especificar na cadeia TCP:
sudo iptables -S TCP

Como mencionamos antes, há outra forma de exibir as regras do iptables: visualizá-las como uma tabela. Vamos ver como funciona essa técnica.
Listando Regras como Tabelas
Usar um comando para exibir as regras do iptables em tabelas facilita a comparação entre várias regras. Você precisa executar o seguinte comando com a opção -L para exibir todas essas regras ativas em uma tabela:
sudo iptables -L
Este comando exibe todas as regras atuais organizadas por cadeias. Você pode limitar a saída para uma cadeia específica, como INPUT, OUTPUT, TCP, etc.; para isso, especifique o nome da cadeia logo após a opção -L. Veja um exemplo de como limitar as regras do iptables à cadeia INPUT:
sudo iptables -L INPUT

A primeira linha da saída acima mostra o nome da cadeia (INPUT, neste caso) e sua política padrão (DROP). A linha seguinte contém os cabeçalhos de cada coluna da tabela e as regras da cadeia. Vamos explicar cada um:
- Target: Se um pacote corresponde à regra, o target determina o que fazer com ele. O pacote pode ser aceito, descartado, registrado ou enviado para outra cadeia para ser comparado contra mais regras.
- prot: O protocolo (como TCP, udp, ICMP, ou all)
- opt: indica opções IP (raramente usado)
- source: mostra o endereço IP de origem ou sub-rede do tráfego
- destination: apresenta o endereço IP de destino ou sub-rede do tráfego
A coluna sem rótulo sugere as opções de uma regra, ou seja, qualquer parte da regra que não foi indicada nas colunas anteriores. Essas informações podem incluir portas de origem e destino até o estado de conexão do pacote.
Leia Também: Instalar OpenVPN no VPS – Configuração do Cliente OpenVPN 🔑
Como exibir contagens de pacotes e tamanho agregado?
Ao listar as regras do iptables, você pode exibir o número de pacotes e o tamanho total dos pacotes em bytes que correspondem a cada regra específica do iptables; isso geralmente ajuda a entender quais regras processam os pacotes. Para isso, use a -L e opções -v juntas para conseguir isto.
Veja um exemplo usando a cadeia INPUT novamente, com a opção -v:
sudo iptables -L INPUT -v

Observe que nossa lista agora tem duas colunas adicionais chamadas pkts e bytes. Aprendemos várias formas de exibir todas as regras do iptables, e agora é hora de saber como redefinir as contagens de pacotes e tamanho total.
Como redefinir contagens de pacotes e tamanho agregado?
Use a opção -Z se quiser limpar ou zerar os contadores de pacotes e bytes das suas regras. Eles também são redefinidos se houver uma reinicialização, o que é útil se você quiser saber se o servidor está recebendo novo tráfego que corresponda às suas regras existentes.
Você pode limpar os contadores de todas as cadeias e regras usando a opção -Z por si só:
sudo iptables -Z
Para remover os contadores de todas as regras em uma cadeia específica, use a opção -Z e especifique a cadeia. Por exemplo, o seguinte comando limpa os contadores da cadeia INPUT:
sudo iptables -Z INPUT
Se você quiser remover os contadores de uma regra específica, mencione o nome da cadeia e o número da regra com precisão. Por exemplo, execute o seguinte comando para zerar os contadores da primeira regra na cadeia INPUT:
sudo iptables -Z INPUT 1
Além de conhecer os comandos para exibir todas as regras do iptables e as formas de redefinir os contadores de pacotes e bytes, é bom saber como remover uma regra do iptables.
Leia Também: Como instalar o servidor PPTP VPN no seu VPS
Como remover regras do iptables?
Existem vários comandos para remover regras do Iptables ou até apagar todas as regras em uma corrente. Vamos discutir esses métodos aqui.
Remover Regras por Especificação
Uma das formas de remover regras do iptables é fazer isso por especificação de regra. Isso permite que você execute o comando iptables com o opção -D e a especificação da regra. Se você quer remover regras usando essa técnica, pode usar a saída da listagem de regras, iptables -S, como referência.
Por exemplo, para deletar a regra que descarta pacotes de entrada inválidos (-A INPUT -m conntrack –ctstate INVALID -j DROP), execute o seguinte comando:
sudo iptables -D INPUT -m conntrack --ctstate INVALID -j DROP
Observe que a opção -A é para indicar a posição da regra no momento da criação e deve ser excluída aqui.
Remover regras por chain e número
Outro método para remover regras do iptables é usar a corrente e o número da linha. Digite o seguinte comando para obter o número da linha de uma regra, listar as regras em formato de tabela e adicionar a opção –line-numbers:
sudo iptables -L --line-numbers

Após executar isso, todas as regras do iptables terão seu número de linha, mostrado no cabeçalho num.
Quando você souber qual regra quer deletar, tenha em mente sua corrente e número de linha. Você deve usar o comando iptables -D com a corrente e o número da regra. Por exemplo, se você quer deletar a regra de entrada que descarta pacotes inválidos, você verá que é a regra 3 da corrente INPUT. Então execute este comando:
sudo iptables -D INPUT 3
Como limpar chains?
Existe uma forma de remover todas as regras do Iptables em uma corrente, que chamamos de limpar uma cadeia. Vamos cobrir os vários métodos para fazer isso. Antes de prosseguir, observe que não deve ficar bloqueado do servidor via SSH ao limpar uma corrente com uma política padrão drop ou deny. Se isso acontecer, você pode precisar se conectar via console para restaurar seu acesso.
Limpar uma Corrente Única
Para limpar uma corrente específica, ou seja, deletar todas as regras na corrente, você pode usar a -F ou o equivalente opção –flush e o nome da corrente selecionada. Digamos que você quer remover todas as regras da corrente INPUT. Como fazer? Simples, execute o seguinte comando:
sudo iptables -F INPUT
Limpar Todas as Correntes
Para remover todas as correntes ou limpá-las, você pode usar a opção -F ou a equivalente –flush sozinha:
sudo iptables -F
Como Limpar Todas as Regras, Deletar Todas as Chains e Aceitar Tudo?
Neste ponto, vamos descrever como limpar todas as regras, tabelas e correntes do firewall e permitir todo o tráfego de rede. Observe que esse processo vai efetivamente desabilitar o firewall. Portanto, você deve seguir esta seção apenas se quiser começar do zero com sua configuração de firewall.
Primeiro você precisa definir as políticas padrão para cada uma das correntes integradas como ACCEPT. O motivo principal para fazer isso é garantir que você não fique bloqueado do servidor via SSH:
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
Depois você precisa limpar as tabelas nat e mangle, limpar todas as correntes (-F)e deletar todas as correntes não-padrão (-X) assim:
sudo iptables -t nat -F
sudo iptables -t mangle -F
sudo iptables -F
sudo iptables -X
Após executar os comandos anteriores, o firewall permitirá todo o tráfego de rede. Se você quiser listar suas regras agora, verá que não há nenhuma. Apenas as três correntes padrão como INPUT, FORWARD e OUTPUT permanecem.
Como configurar iptables em Ubuntu?
Como em qualquer comportamento básico de firewall, as regras do iptables são lidas na ordem listada em cada corrente, o que significa que você precisa definir as regras na ordem correta. Quando você adiciona novas regras, elas são adicionadas ao final da lista de regras. Você pode adicionar novas regras em uma posição específica inserindo-as usando iptables -I <index> -command. O <index> é o número de ordem em que você quer inserir a regra neste comando. Você pode usar o seguinte comando para entender qual número de index deve inserir:
sudo iptables -L --line-numbers
O número no início de cada linha de regra mostra a posição na cadeia. Para adicionar uma nova regra acima de uma regra existente específica, você deve usar o número de índice dessa regra. Por exemplo, se você quiser adicionar uma nova regra no topo da cadeia, execute o comando a seguir com o número de índice 1:
sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
Qual é a diferença entre iptables e firewalld?
iptables e firewalld são ferramentas práticas para gerenciar firewalls em vários sistemas Linux projetados especificamente para filtragem de pacotes (filtragem estática). A filtragem de pacotes é uma estratégia de firewall que permite aos usuários controlar o acesso a uma rede específica gerenciando pacotes de informações de entrada e saída. Eles podem permitir que passem ou bloqueá-los com base em regras de firewall pré-configuradas sobre seus protocolos de origem e destino, portas e endereços IP. Essas regras oferecem mecanismos de segurança muito eficientes, tornando a filtragem de pacotes de informação uma ótima defesa contra dispositivos roteados fora da LAN (Rede de Área Local) do sistema.
Note que firewalld foi inicialmente apresentado como software para gerenciar iptables e facilitar a navegação para o usuário. Com essa introdução de firewalld e iptables, vamos compará-los em mais detalhes.
iptables vs firewalld: Configuração do sistema
Firewalld e iptables usam configurações diferentes e configurações de armazenamento padrão diferentes. Com iptables, toda alteração significa descartar todas as regras antigas e ler as novas, então o sistema precisa reiniciar. No entanto, com firewalld, as regras não são recriadas; em vez disso, as diferenças e modificações feitas são aplicadas para alterar as regras existentes, permitindo que você as veja entrando em efeito em tempo real.
iptables vs firewalld: Interface do usuário
Firewalld usa uma Interface Gráfica do Usuário (GUI). Já iptables utiliza uma Interface de Linha de Comando (CLI), o que pode ser desafiador para algumas pessoas acessarem as regras de firewall do kernel Linux usando iptables, tornando firewalld uma opção mais direta. Considere que iptables tem um tempo de resposta mais curto, já que você usa apenas comandos breves. Apesar disso, ambas têm seus casos de uso, então escolha a que você se sente mais confortável em trabalhar.
Considerações finais: exibir regras de iptables
iptables é um utilitário de firewall altamente flexível criado especificamente para sistemas operacionais Linux. Não importa se você é iniciante ou um administrador de sistema profissional; há maneiras de que as regras de iptables possam ser úteis para você. Este artigo apresentou principalmente comandos básicos para este utilitário de firewall, incluindo exibir regras de iptables e remover regras de iptables, visando revisar brevemente os recursos do Linux. Além disso, você pode usar nossas soluções de hospedagem Linux VPS para aproveitar todo o potencial deste excelente sistema operacional. Na Cloudzy, oferecemos vários planos Linux VPS baseados em KVM adequados para vários casos de uso, como hospedagem de sites, implantação de aplicativos web ou até configuração de um ambiente para desenvolver, testar e automatizar código.
Perguntas Frequentes
Como listar todas as regras de iptables em Linux por especificação?
Se você quiser listar todas as regras de iptables ativas no momento por sua especificação ou funcionalidade, pode fazer isso com o comando iptables seguido de bandeira -S. Preste atenção ao usar a sudo palavra-chave neste caso:
sudo iptables -S
Como remover regras de iptables?
Para remover uma cadeia específica, o que excluirá todas as regras na cadeia, você deve usar a opção -F ou –flush e o nome da cadeia. Digamos que queremos excluir todas as regras na cadeia OUTPUT, o que fazer? Bem, você precisa executar este comando:
sudo iptables -F OUTPUT
Como funciona iptables em Ubuntu?
O firewall iptables compara o tráfego de rede com um conjunto de regras. As regras de iptables especificam as características de um pacote para corresponder à regra e qual ação deve ser tomada se os pacotes corresponderem. É claro que existem muitas opções para definir quais pacotes correspondem a uma regra específica.
As regras de iptables entram em vigor imediatamente? Por quê?
Sim, as regras de iptables entram em efeito instantaneamente, pois seu script está anexando às cadeias INPUT e OUTPUT, e suas regras estão sendo adicionadas ao final dessas cadeias.