As “iptables” é uma ferramenta poderosa e versátil para configuração de firewall em sistemas operacionais baseados no Linux. Este sistema de filtragem de pacotes é uma parte essencial da segurança de rede em muitas organizações e ambientes de computação. Vamos explorar as fundamentos do iptables, incluindo suas regras e comandos comuns.
O que é o iptables?
O iptables é uma ferramenta de linha de comando utilizada para configurar as tabelas de regras de filtragem de pacotes no kernel do Linux. Ele age como um firewall, controlando o tráfego de rede que entra e sai do sistema. As regras definidas pelo iptables determinam como os pacotes são tratados, permitindo ou bloqueando o tráfego com base em critérios como endereço IP, porta e protocolo.
Tabelas do iptables:
O iptables possui quatro tabelas principais, cada uma com um propósito específico:
-
Tabela de filtro (filter): Esta é a tabela padrão do iptables e é onde a maioria das regras é configurada. Ela é responsável por filtrar e decidir o que fazer com os pacotes de rede.
-
Tabela de rede (nat): Esta tabela é usada para manipulação de endereços de rede (NAT – Network Address Translation). Ela é comumente usada para redirecionamento de portas e mascaramento de endereços IP.
-
Tabela de mangle: Esta tabela é usada para alterar os cabeçalhos dos pacotes. Pode ser usada para marcação de pacotes ou alteração de parâmetros específicos de roteamento.
-
Tabela de raw: Esta tabela é utilizada principalmente para configurações especiais e avançadas, como marcação de pacotes antes que o kernel aplique quaisquer outras regras.
Regras do iptables:
As regras do iptables consistem em várias partes, incluindo:
-
Cadeias (Chains): As cadeias são sequências de regras que são aplicadas a pacotes de rede. Existem três cadeias padrão: INPUT, OUTPUT e FORWARD, que correspondem ao tráfego de entrada, saída e encaminhado, respectivamente.
-
Alvos (Targets): Os alvos definem o que deve ser feito com um pacote que corresponde à regra. Alguns alvos comuns incluem ACCEPT (aceitar o pacote), DROP (descartar o pacote), REJECT (rejeitar o pacote e enviar uma mensagem de erro) e LOG (registar uma mensagem no registro do sistema).
-
Critérios de Correspondência (Match Criteria): Os critérios de correspondência são as condições que um pacote deve atender para ser afetado pela regra. Isso pode incluir endereços IP de origem ou destino, portas de origem ou destino, protocolos, entre outros.
Comandos comuns do iptables:
Aqui estão alguns dos comandos mais comuns utilizados para gerenciar as regras do iptables:
-
iptables -A CHAIN RULE: Adiciona uma nova regra à cadeia especificada.
-
iptables -D CHAIN RULE: Remove uma regra específica de uma cadeia.
-
iptables -L [CHAIN]: Lista as regras de uma cadeia específica ou de todas as cadeias se nenhuma for especificada.
-
iptables -F [CHAIN]: Limpa todas as regras de uma cadeia específica ou de todas as cadeias se nenhuma for especificada.
-
iptables -P CHAIN TARGET: Define a política padrão (target) para uma cadeia específica.
-
iptables-save: Salva todas as regras atuais do iptables para um arquivo.
-
iptables-restore: Restaura as regras do iptables de um arquivo previamente salvo.
Exemplo de uso do iptables:
Vamos supor que desejamos permitir o tráfego de entrada na porta 80 (HTTP) e 443 (HTTPS), enquanto bloqueamos todo o tráfego de entrada não desejado. Podemos fazer isso com as seguintes etapas:
-
Limpar todas as regras existentes:
riptables -F -
Definir a política padrão para DROP para a cadeia INPUT:
cssiptables -P INPUT DROP -
Permitir o tráfego na porta 80 e 443:
cssiptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A INPUT -p tcp --dport 443 -j ACCEPT -
Salvar as regras:
javascriptiptables-save > /etc/iptables/rules.v4
Essas são apenas as noções básicas do iptables. Ele oferece uma ampla gama de funcionalidades avançadas para configurar firewalls e controlar o tráfego de rede em ambientes Linux. É importante entender completamente suas capacidades e a sintaxe de suas regras ao usá-lo para garantir a segurança adequada do sistema.
“Mais Informações”

Claro, vamos aprofundar um pouco mais no funcionamento e na sintaxe das regras do iptables, além de explorar algumas técnicas avançadas de configuração.
Sintaxe das Regras:
As regras do iptables seguem uma sintaxe específica, que inclui diferentes partes:
-
Opções: As opções definem o tipo de pacotes aos quais a regra se aplica, como
-ppara especificar o protocolo,-spara o endereço de origem,-dpara o endereço de destino,-ipara a interface de entrada e-opara a interface de saída. -
Critérios de Correspondência: Os critérios de correspondência determinam as condições que os pacotes devem atender para serem afetados pela regra. Isso pode incluir endereços IP, portas, protocolos, estados de conexão e muito mais.
-
Alvo (Target): O alvo especifica o que deve ser feito com os pacotes que correspondem à regra, como
ACCEPT,DROP,REJECT,LOG, entre outros. -
Módulos: Os módulos são extensões do iptables que fornecem funcionalidades adicionais. Eles podem ser usados para corresponder a critérios mais complexos ou realizar ações específicas nos pacotes. Alguns módulos comuns incluem
statepara rastrear o estado da conexão,limitpara limitar o número de pacotes correspondentes econntrackpara manipular a tabela de conexões.
Exemplo de Regra:
Vamos analisar um exemplo de regra iptables e entender sua estrutura:
cssiptables -A INPUT -i eth0 -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT
-A INPUT: Adiciona a regra à cadeia de entrada.-i eth0: Especifica a interface de entrada comoeth0.-p tcp: Especifica o protocolo como TCP.--dport 22: Especifica a porta de destino como 22 (SSH).-s 192.168.1.0/24: Especifica o endereço IP de origem como a sub-rede 192.168.1.0/24.-j ACCEPT: Define o alvo como ACCEPT, ou seja, aceita os pacotes que correspondem à regra.
Técnicas Avançadas:
Além das regras básicas de filtragem de pacotes, o iptables oferece uma variedade de técnicas avançadas para personalizar a configuração do firewall:
-
Masquerading (Mascaramento): Usado para ocultar o endereço IP de uma rede interna atrás de um único endereço IP público. Isso é útil para redes privadas que precisam acessar a Internet.
-
Port Forwarding (Redirecionamento de Portas): Permite redirecionar conexões de entrada em uma determinada porta para outro destino dentro da rede.
-
Limitação de Conexões: É possível limitar o número de conexões que podem ser estabelecidas por segundo ou por minuto para proteger contra ataques de negação de serviço (DoS).
-
Filtragem por Estado de Conexão: O iptables pode rastrear o estado das conexões e aplicar regras com base nesse estado, como
ESTABLISHED,RELATED,NEWeINVALID. -
Redes Virtuais Privadas (VPNs): O iptables pode ser configurado para permitir ou bloquear o tráfego relacionado a VPNs, como OpenVPN ou IPsec.
Boas Práticas de Segurança:
Ao configurar o iptables, é importante seguir algumas boas práticas de segurança:
- Mantenha apenas as regras necessárias para minimizar a superfície de ataque.
- Registre as atividades do firewall para monitorar possíveis ameaças.
- Mantenha o iptables atualizado com as últimas correções de segurança.
- Faça backup das regras do iptables regularmente para facilitar a recuperação em caso de falha.
Conclusão:
O iptables é uma ferramenta poderosa para configurar firewalls em sistemas Linux, oferecendo uma ampla gama de funcionalidades para proteger redes e servidores contra ameaças de segurança. Compreender sua sintaxe, regras e técnicas avançadas é essencial para criar políticas de firewall eficazes e garantir a segurança do sistema.

