O Iptables é uma ferramenta essencial para administradores de sistemas Linux. Ele oferece uma interface para o subsistema de filtragem de pacotes do kernel Linux, permitindo configurar, manter e inspecionar as tabelas de regras de filtragem de pacotes IPv4 e IPv6. As regras do Iptables são usadas para controlar o tráfego de rede que entra e sai do sistema, proporcionando uma camada robusta de segurança e gerenciamento de rede.
Neste tutorial, exploraremos as funcionalidades e praticidades do Iptables, desde os conceitos básicos até configurações avançadas, destacando sua importância no ambiente DevOps e na administração de servidores Linux.
Estrutura do Iptables
O Iptables organiza suas regras em tabelas, que contêm cadeias, onde cada cadeia pode ter várias regras. As principais tabelas e cadeias são:
Tabelas
- filter: A tabela padrão para filtragem de pacotes. Contém as cadeias INPUT, FORWARD e OUTPUT.
- nat: Usada para Network Address Translation (NAT). Contém as cadeias PREROUTING, POSTROUTING e OUTPUT.
- mangle: Usada para modificar pacotes. Contém as cadeias PREROUTING, POSTROUTING, OUTPUT, INPUT e FORWARD.
- raw: Usada para configurar exceções de conexão. Contém as cadeias PREROUTING e OUTPUT.
- security: Usada para políticas de segurança LSM (Linux Security Modules). Contém as cadeias INPUT, OUTPUT e FORWARD.
Cadeias
- INPUT: Processa pacotes que chegam ao sistema.
- FORWARD: Processa pacotes que são encaminhados pelo sistema.
- OUTPUT: Processa pacotes gerados pelo sistema.
- PREROUTING: Modifica pacotes logo que chegam ao sistema (antes do roteamento).
- POSTROUTING: Modifica pacotes antes de saírem do sistema (após o roteamento).
Comandos Básicos
Listando Regras
Para visualizar as regras configuradas no Iptables, utilize o comando:
iptables -L
Para uma visualização mais detalhada, incluindo contagem de pacotes e bytes, use:
iptables -L -v
Adicionando Regras
Para adicionar uma regra que permite tráfego HTTP (porta 80) de entrada, use:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Aqui, -A
significa “append” (adicionar) à cadeia INPUT, -p tcp
especifica o protocolo TCP, --dport 80
define a porta de destino como 80, e -j ACCEPT
indica que os pacotes devem ser aceitos.
Removendo Regras
Para remover uma regra específica, utilize o comando:
iptables -D INPUT -p tcp --dport 80 -j ACCEPT
Salvando e Restaurando Regras
Após configurar suas regras, é importante salvá-las para que persistam após reinicializações. Em sistemas baseados em Debian, use:
iptables-save > /etc/iptables/rules.v4
Para restaurar as regras salvas, utilize:
iptables-restore < /etc/iptables/rules.v4
Configurações Comuns
Bloqueando Todo o Tráfego
Para bloquear todo o tráfego de entrada e saída, exceto para conexões estabelecidas, utilize as seguintes regras:
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT DROP
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
Aqui, -P
define a política padrão para cada cadeia. -m state --state ESTABLISHED,RELATED
permite pacotes relacionados a conexões já estabelecidas.
Permitir SSH
Para permitir conexões SSH (porta 22), adicione a seguinte regra:
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
NAT e Port Forwarding
Para configurar o NAT e redirecionar a porta 80 do IP público para um servidor interno, use:
iptables -t nat -A PREROUTING -p tcp --dport 80 -j DNAT --to-destination 192.168.1.2:80
iptables -A FORWARD -p tcp -d 192.168.1.2 --dport 80 -j ACCEPT
Aqui, -t nat
especifica a tabela nat, -A PREROUTING
adiciona uma regra à cadeia PREROUTING, e --to-destination
define o IP e porta de destino.
Ferramentas Auxiliares
Iptables-Persistent
Para facilitar a persistência das regras, pode-se usar o pacote iptables-persistent
. Para instalá-lo, utilize:
sudo apt-get install iptables-persistent
Após a instalação, as regras serão automaticamente salvas e restauradas nas reinicializações.
UFW – Uncomplicated Firewall
Para usuários que preferem uma interface mais simplificada, o UFW pode ser uma alternativa ao Iptables. Ele oferece uma camada de abstração que facilita a configuração de regras de firewall. Para instalar o UFW:
sudo apt-get install ufw
Para permitir conexões SSH com o UFW:
sudo ufw allow ssh
Firewalld
Outra alternativa ao Iptables é o firewalld
, comum em sistemas baseados em Red Hat. Ele oferece um daemon para gerenciamento dinâmico de firewall com suporte a zonas. Para instalar o firewalld:
sudo yum install firewalld
Para iniciar o serviço e permitir conexões HTTP:
sudo systemctl start firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --reload
Casos de Uso Avançados
Limitação de Taxa (Rate Limiting)
Para proteger contra ataques de negação de serviço (DoS), pode-se configurar a limitação de taxa. Por exemplo, para limitar novas conexões SSH a 3 por minuto:
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 3 -j DROP
Proteção contra IP Spoofing
Para proteger contra falsificação de IP, pode-se adicionar regras para bloquear pacotes com endereços de origem inválidos:
iptables -A INPUT -s 10.0.0.0/8 -j DROP
iptables -A INPUT -s 172.16.0.0/12 -j DROP
iptables -A INPUT -s 192.168.0.0/16 -j DROP
Registro de Pacotes (Logging)
Para registrar pacotes descartados, adicione uma regra de log antes da regra DROP:
iptables -A INPUT -p tcp --dport 80 -j LOG --log-prefix "Dropped HTTP: "
iptables -A INPUT -p tcp --dport 80 -j DROP
O Iptables é uma ferramenta poderosa e versátil para a administração de firewalls em sistemas Linux. Seu domínio é essencial para garantir a segurança e a eficiência das redes, especialmente em ambientes complexos de DevOps e administração de servidores.
Este tutorial cobriu desde os conceitos básicos até configurações avançadas, proporcionando uma base sólida para administradores de sistemas. Com prática e exploração contínua, o Iptables pode se tornar uma ferramenta indispensável no arsenal de qualquer profissional de TI.
Para aprofundar ainda mais seus conhecimentos, consulte a documentação oficial do Iptables e explore casos de uso específicos conforme as necessidades do seu ambiente de rede.

Sou um profissional na área de Tecnologia da informação, especializado em monitoramento de ambientes, Sysadmin e na cultura DevOps. Possuo certificações de Segurança, AWS e Zabbix.