O acesso não autorizado e a invasão de servidores são ameaças sérias, por isso você deve implementar um firewall como parte de sua técnica de segurança de rede. Saber como trabalhar com as regras do Iptables é um dos principais recursos para diminuir esses riscos em seus sistemas Linux. Este tutorial irá guiá-lo para se familiarizar com os conceitos básicos de firewall, como iptables mostrar regras e remover regras de iptables em Ubuntu, ajudando você a executar comandos simples para conseguir isso. Antes de discutir como listar regras de iptables ou excluí-las, vamos falar sobre o que são regras de iptables e por que as usamos?
O que é iptables?
iptables é um utilitário de firewall de linha de comando que permite ou bloqueia o tráfego via cadeias políticas. Quando as conexões tentam ser feitas em seu sistema, o iptables procura uma regra na lista que corresponda a elas, oferecendo a você um assistente adequado na segurança da rede. Se não encontrar uma conexão, ele recorre à ação padrão.
iptables quase sempre 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 usamos Iptables?
Como um firewall de linha de comando do Linux, o iptables permite que os administradores de sistema lidem com o tráfego de entrada e saída por meio de regras de tabela configuráveis. Iptables usam um conjunto de tabelas com cadeias contendo um conjunto de regras integradas ou definidas pelo usuário.
Conforme mencionado na seção anterior, o iptables desempenha um papel essencial na segurança da rede para a maioria dos sistemas Linux. O restante deste artigo se concentra principalmente na descrição da lista de todas as regras do iptables, incluindo conceitos como como mostrar o iptables e remover regras do iptables.
Mais especificamente, este artigo discutirá algumas das tarefas essenciais do iptables para mostrar como listar regras, excluir contadores de pacotes e bytes, remover regra do Iptables, liberar cadeias e excluir todas as cadeias e aceitar todo o tráfego.
Um guia completo para Iptables no Ubuntu
Antes de passar pelas regras de exibição do 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, preste atenção para não ficar fora do servidor bloqueando o tráfego SSH (porta:22, por padrão). Se você perder o acesso devido às configurações do firewall, pode ser necessário conectar-se a ele por meio de um console fora de banda para consertar.
Leia também: Como alterar a porta SSH no Linux. Um guia rápido passo a passo para sua porta SSH
Regras de listagem por especificação
Você pode ver suas regras ativas do iptables em uma mesa ou como uma lista de especificações de regras. Quase ambos os métodos fornecem as mesmas informações em formatos diferentes. Para listar todas as regras do iptables ativo por especificação, você precisa executar o comando iptables com o Opção -S:
sudo iptables -S
Depois de executar este comando iptables show regras, você verá uma saída como esta:

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

Como mencionamos antes, há outra maneira de realizar as regras de exibição do iptables: visualizando as regras do iptables como uma tabela de regras. Vamos examinar essa técnica.
Listando regras como tabelas
Usar um comando para mostrar regras de iptables nas tabelas pode ajudar a comparar várias regras. Você precisa executar o seguinte comando show iptables com o -L opção para gerar todas essas regras ativas em uma tabela:
sudo iptables -L
Este comando exibirá todas as regras atuais classificadas por cadeias. Existe uma maneira de limitar a saída a uma cadeia específica, como INPUT, OUTPUT, TCP, etc.; você precisa especificar o nome da cadeia diretamente após a opção -L. Aqui está um exemplo de limitação de regras de exibição do iptables para a 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 a seguir contém os cabeçalhos de cada coluna da tabela e as regras da cadeia. Iremos analisá-los para ajudá-lo a aprender todos eles:
- Alvo: Se um pacote corresponde à regra, o alvo determina o que deve ser feito com ele. Você pode ter um pacote aceito, descartado, registrado ou enviado para outra cadeia para ser comparado com mais regras.
- prot: O protocolo (como TCP, udp, ICMP ou todos)
- opt: indica opções de IP (usado com pouca frequência)
- fonte: mostra o endereço IP/sub-rede de origem do tráfego
- destino: apresenta o endereço IP/sub-rede de destino do tráfego
A coluna sem rótulo sugere as opções de uma regra e é qualquer parte da regra que não tenha sido indicada nas colunas anteriores. Essas informações podem ser qualquer coisa, desde portas de origem e destino até o estado de conexão do pacote.
Leia também: Instale OpenVPN no VPS – Configuração do cliente OpenVPN 🔑
Como mostrar contagens de pacotes e tamanho agregado?
Ao listar as regras do iptables, podemos mostrar o número de pacotes e o tamanho agregado dos pacotes em bytes que correspondem a cada regra específica do iptables; isso geralmente é útil para entender quais regras correspondem aos pacotes. Você tem que usar o -L e -v opções juntas para realizar esse.
Aqui está um exemplo em que usaremos a cadeia INPUT novamente, com a opção -v:
sudo iptables -L INPUT -v

Observe que nossa lista agora possui mais duas colunas denominadas pacotes e bytes. Aprendemos várias maneiras de fazer com que os comandos iptables mostrem todas as regras sejam executados e agora é hora de saber como redefinir a contagem de pacotes e o tamanho agregado.
Como redefinir a contagem de pacotes e o tamanho agregado?
Você deve usar a opção -Z se desejar limpar ou zerar pacotes e contadores de bytes para suas regras. Eles também são redefinidos se ocorrer uma reinicialização, o que é útil se você quiser ver se o servidor está recebendo novo tráfego que corresponda às regras existentes.
Você pode limpar os contadores de todas as cadeias e regras usando o Opção -Z por si só:
sudo iptables -Z
Para remover os contadores de todas as regras em uma cadeia específica, você deve usar a opção -Z e especificar a cadeia. Por exemplo, o seguinte comando é usado para limpar os contadores da cadeia INPUT:
sudo iptables -Z INPUT
Se quiser remover os contadores de uma regra específica, você deve mencionar o nome da cadeia e o número da regra com precisão. Por exemplo, você pode executar o seguinte comando para zerar os contadores da primeira regra na cadeia INPUT:
sudo iptables -Z INPUT 1
Além de saber que o iptables mostra todos os comandos de regras e maneiras de redefinir os contadores de pacotes e bytes do iptables, é bom saber como remover a regra do iptables.
Leia também: Como instalar o servidor VPN PPTP no seu VPS
Como remover regras do iptables?
Você pode usar vários comandos para remover regras do Iptables ou até mesmo excluir todas as regras em uma cadeia. Aqui discutiremos esses métodos,
Remover regras por especificação
Uma das maneiras de remover regras do iptables é através da especificação de regras. Ele permite que você execute o comando iptables com o Opção -D e a especificação da regra. Se quiser remover regras usando esta técnica, você pode utilizar a saída da lista de regras, iptables -S, para obter ajuda.
Por exemplo, para excluir a regra que descarta pacotes de entrada inválidos (-A INPUT -m conntrack –ctstate INVALID -j DROP), você pode executar a seguinte linha de comando:
sudo iptables -D INPUT -m conntrack --ctstate INVALID -j DROP
Preste atenção que a opção -A serve para indicar a posição da regra no momento da criação e deve ser excluída aqui.
Remover regras por cadeia e número
O outro método que você pode usar para remover regras do iptables é por meio de sua cadeia e número de linha. Digite o seguinte comando para escolher o número da linha de uma regra, listar as regras no formato de tabela e adicionar o –opção de números de linha:
sudo iptables -L --line-numbers

Depois de executar isso, todas as regras do iptables terão seu número de linha, mostrado pelo cabeçalho num.
Quando você souber qual regra deseja excluir, tenha em mente a cadeia e o número da linha. Você deve usar o comando iptables -D com a cadeia e o número da regra. Por exemplo, se você quiser excluir a regra de entrada que descarta pacotes inválidos, poderá ver que é a regra 3 da cadeia INPUT. Então execute este comando:
sudo iptables -D INPUT 3
Como liberar correntes?
Existe uma maneira de você remover todas as regras do Iptables em uma cadeia, que chamamos liberando uma corrente. Aqui abordaremos os vários métodos para fazer isso. Antes de prosseguir, preste atenção para não ficar bloqueado no servidor via SSH ao liberar uma cadeia com uma política padrão de drop ou deny. Porque se fizer isso, pode ser necessário conectar-se a ele por meio do console para corrigir seu acesso.
Liberar uma única corrente
Para liberar uma cadeia específica ou, em outras palavras, excluir todas as regras da cadeia, você pode usar o comando -F ou o equivalente – opção de descarga e o nome da cadeia selecionada. Digamos que você queira remover todas as regras da cadeia INPUT; o que fazer? Bem, é fácil, execute o seguinte comando:
sudo iptables -F INPUT
Limpe todas as correntes
Para remover todas as cadeias ou liberá-las, você pode usar a opção -F ou a opção equivalente –flush sozinha:
sudo iptables -F
Como liberar todas as regras, excluir todas as cadeias e aceitar tudo?
Neste ponto, descreveremos como liberar todas as regras, tabelas e cadeias de firewall e permitir todo o tráfego de rede. Preste atenção, pois este processo desabilitará efetivamente o firewall. Portanto, você só deve seguir esta seção se quiser recomeçar a configuração do firewall.
Primeiro você precisa definir as políticas padrão para cada uma das cadeias integradas como ACCEPT. A principal razão pela qual fazemos isso é garantir que você não será bloqueado no servidor com SSH:
sudo iptables -P INPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo iptables -P OUTPUT ACCEPT
Então você precisa liberar as tabelas nat e mangle, liberar todas as cadeias (-F)e exclua todas as cadeias 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 da rede. Se você quiser listar suas regras agora, verá que não há nenhuma; apenas as três cadeias padrão, como cadeias INPUT, FORWARD e OUTPUT, permanecem.
Como configurar o iptables no Ubuntu?
Como acontece com qualquer comportamento básico de firewall, as regras do iptables podem ser lidas pela ordem listada em cada cadeia, o que significa que você terá que definir as regras na ordem correta. Depois de anexar novas regras, elas serão adicionadas ao final da lista de regras. Você pode adicionar novas regras a uma posição específica da lista inserindo-as usando iptables -I <índice> -comando. O <índice> é para o número do pedido que você deseja inserir a regra neste comando. Você pode usar o seguinte comando para entender qual número de índice 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 existente. Por exemplo, se você deseja adicionar uma nova regra ao topo da cadeia, você deve usar o seguinte comando com número de índice 1:
sudo iptables -I INPUT 1 -p tcp --dport 80 -j ACCEPT
Como o iptables difere do firewalld?
Tanto o iptables quanto o firewalld são ferramentas práticas para gerenciar firewalls em vários sistemas Linux projetados explicitamente 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 por meio do gerenciamento de pacotes de informações de entrada e saída. Eles permitem que eles passem ou os negam com base em regras de firewall predefinidas sobre seus protocolos, portas e endereços IP de origem e destino. Essas regras fornecem mecanismos de segurança muito eficientes, tornando a filtragem de pacotes de informações uma ótima defesa contra dispositivos roteados fora da LAN (Local Area Network) do sistema.
Observe que o firewalld foi inicialmente introduzido como um software para lidar com iptables para ajudar a facilitar a navegação do usuário. Tendo esta introdução ao firewalld e ao iptables, vamos compará-los com mais detalhes.
iptables vs firewalld: configuração do sistema
Firewalld e iptables utilizam diferentes configurações e configurações de armazenamento padrão. Com o iptables, cada mudança significa eliminar todas as regras antigas e ler as novas, então o sistema precisa ser reinicializado. Entretanto, usando o 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 para que você possa vê-las entrando em vigor no tempo de execução.
iptables vs firewalld: interface do usuário
Firewalld usa uma interface gráfica de usuário (GUI). No entanto, o iptables utiliza uma interface de linha de comando (CLI), o que pode ser um desafio para algumas pessoas acessarem as regras de firewall do kernel Linux usando iptables, tornando o firewalld uma opção mais direta. Seria melhor considerar que o iptables tem um tempo de resposta mais curto, pois você usa apenas comandos curtos. Deixando tudo isso de lado, ambos têm seus casos de uso, então escolha aquele com o qual você se sente mais confortável em trabalhar.
Considerações finais: iptables mostra regras
Iptables é um utilitário de firewall altamente flexível criado especificamente para sistemas operacionais Linux. Não importa se você é um geek novato em Linux ou um administrador de sistema profissional; há alguma maneira pelas quais as regras do iptables podem ser úteis para você. Este artigo representou principalmente comandos básicos para este utilitário de firewall, incluindo iptables show regras e remove iptables regras, com o objetivo de revisar brevemente os recursos do Linux. Além disso, você pode usar nosso Soluções de hospedagem VPS Linux para utilizar o verdadeiro potencial deste fantástico sistema operacional. Na cloudzy, oferecemos vários planos Linux VPS baseados em KVM adequados para vários casos de uso, como hospedagem na web, implantação de um aplicativo da web ou até mesmo configuração de um ambiente para desenvolver, testar e automatizar código.
Perguntas frequentes
Como listar todas as regras de iptables do Linux por especificação?
Se você deseja listar todas as regras de iptables atualmente ativas por suas especificações ou funcionalidades, você pode fazer isso pelo comando iptables seguido pelo -S bandeira. Preste atenção ao utilizar o sudo palavra-chave neste caso:
sudo iptables-S
Como remover regras do iptables?
Para remover uma cadeia específica, o que excluirá todas as regras da cadeia, você deve use a opção -F ou –flush e o nome da cadeia. Digamos que queremos excluir todas as regras da cadeia OUTPUT, o que fazer? Bem, você precisa executar este comando:
sudo iptables -F SAÍDA
Como o iptables funciona no Ubuntu?
O firewall iptables compara o tráfego de rede com um conjunto de regras. As regras do iptables especificam as características de um pacote para corresponder à regra e que ação deve ser tomada se os pacotes corresponderem. Claro, existem muitas opções para definir quais pacotes correspondem a uma regra específica.
As regras do iptables entram em vigor imediatamente? Por que?
Sim, as regras do iptables entram em vigor instantaneamente; porque seu script está sendo anexado às cadeias INPUT e OUTPUT, e suas regras estão sendo adicionadas ao final dessas cadeias.