iptables no Linux: um guia prático, completo e direto

Última atualização: 9 setembro 2025
  • Estrutura e fluxo: tabelas, cadeias e como o tráfego flui
  • Regras e Políticas: Comandos, Partidas e Objetivos Principais
  • NAT e Publicação: SNAT/MASQUERADE e DNAT em Cenários do Mundo Real
  • Design Seguro: DMZ Funcional e Boas Práticas Operacionais

firewall iptables no Linux

Se você gerencia distribuições Linux para proteger sua segurança e privacidade , mais cedo ou mais tarde terá que lidar com o iptables. Este sistema de filtragem de pacotes é o coração do firewall clássico no GNU/Linux , capaz de decidir qual tráfego entra, sai ou é encaminhado entre redes. Configurado corretamente, é como ter um porteiro altamente qualificado na entrada da sua rede, aplicando suas regras de forma impecável e com precisão cirúrgica.

Nas linhas seguintes, você encontrará um guia completo e atualizado que abrange os conceitos essenciais: conceitos de firewall , Netfilter, tabelas e cadeias, fluxo de pacotes, comandos-chave, extensões de regras e destinos avançados , bem como cenários práticos como NAT, redirecionamentos, políticas padrão e uma DMZ funcional. Tudo é explicado em uma linguagem clara, porém rigorosa, para que você possa aplicar o conhecimento à sua infraestrutura imediatamente.

Firewalls em Contexto: De Seguranças de Boate à Zona Desmilitarizada

Um firewall é essencialmente um filtro entre redes que aplica regras para decidir o destino de cada pacote. Pense nele como um segurança em uma boate com uma lista de verificação : se o pacote atender aos critérios, ele passa; caso contrário, é barrado. Essa metáfora ajuda a entender que o importante é a lógica das regras e a ordem em que elas são avaliadas.

Em projetos de rede, algumas topologias são mais seguras do que outras. A DMZ (zona desmilitarizada) é uma rede intermediária que hospeda serviços públicos (como um site ou servidor FTP), separando-os da LAN corporativa. Por quê? Porque, se um invasor comprometer um servidor público, a segmentação o impede de obter acesso direto ao restante da rede interna.

Linux como firewall: Netfilter e iptables

O kernel do Linux incorpora o Netfilter, um framework com mecanismos para interceptar e manipular pacotes . No espaço do usuário, o iptables é o utilitário que define as regras que o kernel aplicará ao tráfego. Essa separação entre kernel e usuário permite alto desempenho com grande flexibilidade.

É útil distinguir entre os utilitários por protocolo: iptables (IPv4), ip6tables (IPv6), arptables (ARP) e ebtables (frames Ethernet) . No kernel, o módulo comum é o x_tables, que compartilha a lógica para correspondência de extensões e destinos. Uma nota histórica: o iptables substituiu o ipchains, e o nftables, por sua vez, sucedeu o iptables no kernel 3.13 , embora o iptables ainda seja amplamente utilizado em muitos sistemas.

Para operar, você precisará de privilégios de administrador. Execute o iptables como root (ou com sudo), geralmente em /usr/sbin/iptables (Debian/derivados) ou /sbin/iptables (Red Hat/derivados). A documentação oficial está em man iptables e em netfilter.org.

Distribuições Linux para servidores
Artigo relacionado:
As melhores distribuições Linux para servidores

Estrutura do iptables: tabelas, cadeias e regras

O Iptables organiza sua lógica em tabelas compostas por cadeias preenchidas com regras . Cada regra especifica as condições de correspondência e um alvo a ser aplicado quando o pacote corresponder.

  • Tabela de filtros (padrão, filtragem pura)
    • INPUT : tráfego direcionado para a própria máquina.
    • FRENTE: tráfego que passa pelo equipamento (roteamento).
    • SAÍDA: tráfego gerado localmente.
  • Tabela Nat (tradução de endereço; avaliada em novas conexões)
    • PREROUTING: antes de decidir uma rota; ideal para DNAT/encaminhamento de porta.
    • SAÍDA: pacotes originados localmente antes do roteamento.
    • POSTRODUÇÃO: após o roteamento; típico para SNAT/MASQUERADE.
  • Mesa de mangue (ajustes finos de cabeçalho: TOS, TTL, marcação, etc.)
    • PRÉ-ROTEAMENTO, ENTRADA, ENCAMINHAMENTO, SAÍDA, PÓS-ROTEAMENTO: disponível em todo o caminho.
  • Mesa crua (controle de rastreamento de conexão/conntrack)
    • PREROUTING y SAÍDA: para marcar o tráfego que deve ser ignorado pelo conntrack.

Quando um pacote chega a uma cadeia, ele é comparado sequencialmente com cada regra ; se houver correspondência, seu destino é executado e a travessia é interrompida. Se o pacote chegar ao final sem corresponder a nenhuma regra e a cadeia for predefinida, a política de cadeia padrão para essa cadeia é aplicada.

  Backup Empresarial: Um Guia Completo para Backups de Empresas

Fluxo de pacotes: por onde passam e quando

Compreender o fluxo de tráfego é fundamental para aplicar as regras corretamente. Um pacote que sai da sua LAN em direção à Internet é normalmente processado da seguinte forma: primeiro, PREROUTING (possivelmente DNAT/mangle), depois FORWARD (filtragem de trânsito) e, antes de sair do dispositivo, passa por POSTROUTING (SNAT/MASQUERADE, se aplicável).

Por outro lado, se o destino for o próprio firewall, a rota será PREROUTING → INPUT ; se a origem for a máquina local, a rota será OUTPUT → POSTROUTING . Essa estrutura mental evita dores de cabeça quando algo não faz sentido.

Comandos básicos: listar, limpar, criar e políticas padrão

Para auditar o status atual, EUA iptables -L (opcionalmente -v para detalhes e -n (para não resolver nomes). Você também pode criar e excluir cadeias com -N y -X respectivamente, e definir políticas padrão com -P.

Quando você precisa começar do zero, regras limpas com -F (rubor) e, se aplicável, contadores. Lembre-se de que você pode especificar tabelas com -t e cadeias específicas; por exemplo, iptables -F -t nat para o NAT.

Ao definir regras, as opções mais comuns são simples: -A pato, -I inserir, -R substitui e -D apagar. Então você adiciona seletores como -p (protocolo), -s/-d (origem/destino), -i/-o (interfaces) e o alvo com -j (por exemplo., ACEITAR, REJEITAR ou REJEITAR).

As políticas padrão define o que acontece se nenhuma regra corresponder. Um esquema reforçado típico em um host seria INPUT DROP, FORWARD DROP, OUTPUT ACCEPT, bloqueando tudo que entra, exceto o que é explicitamente permitido e permitindo o que sai.

Extensões de correspondência (-m): TCP, UDP, ICMP, MAC, com estado e multiporta

O Iptables estende seus filtros com módulos correspondentes usando -m. O TCP permite o ajuste por portas e sinalizadores: --dport/--sport y --syn para novas aberturas de conexão, por exemplo.

Para UDP, você também pode restringir as portas de origem e destino . Um exemplo clássico: abrir a porta 80/443 para um servidor web ou permitir consultas DNS de saída na porta 53/UDP.

Com ICMP, --icmp-type permite discriminar tipos (por exemplo., solicitação de eco y resposta de eco para pings). Isso é útil para permitir diagnósticos sem deixar a porta aberta para o ICMP completo.

Existe também o módulo mac para filtrar por endereço MAC com --mac-source. Útil se você quiser autorizar um computador gerenciado com um IP dinâmico a fazer ping no firewall sem depender do IP.

E, talvez o mais importante no nível operacional, o módulo state (ou conntrack) com --state NEW, ESTABLISHED, RELATEDIsso permite que respostas de conexões já estabelecidas sejam permitidas, reduzindo drasticamente o número de regras necessárias.

Para agrupar portas, multiport adicionar --sports y --dports com listas separadas por vírgulas. É conveniente abrir HTTP, HTTPS e SSH em uma única regra.

Alvos além de ACCEPT/DROP: NAT e empresa

Além de aceitar ou rejeitar conexões, o iptables pode reescrever endereços e portas para conectar redes privadas à Internet ou para anunciar serviços internos.

MASQUERADE (No POSTROUTING Da mesa nat) substitui o IP de origem pelo IP de saída do firewall, ideal quando o IP público é dinâmico (DHCP). Este é o NAT de saída típico para uma LAN inteira.

SNAT (também em POSTROUTING) define explicitamente o IP/porta de origem com --to-source. É usado quando você tem um IP público estático e você quer controlar precisamente a tradução.

DTA (No PREROUTING o OUTPUT) alterar o IP de destino com --to-destination. São as famosas “portas abertas”: Você recebe tráfego no IP público e o redireciona para um servidor na DMZ, por exemplo, um site interno em 192.168.1.2.

  Defesa ativa e scanner de vulnerabilidades para APIs

Exemplo simples: filtragem de tráfego entre duas redes

Imagine uma máquina atuando como um roteador/firewall entre duas sub-redes. Se você deseja que apenas o host B fale com C e somente via TCP, a mesa estará filter e a string correta é FORWARD, porque o tráfego passa pelo equipamento.

Primeiro, você aplicaria uma política DROP padrão no tráfego FORWARD e, em seguida, autorizaria explicitamente o tráfego B→C no TCP (e, se aplicável, C→B). Esse padrão de "negar por padrão e permitir o mínimo necessário" é a base de uma postura de segurança robusta.

Casos cotidianos em uma passarela: regras típicas

Um gateway com duas interfaces, por exemplo eth1 (LAN) e eth0 (WAN), geralmente precisa encaminhar pacotes da LAN para a Internet. Para fazer isso, ele adiciona FORWARD -i eth1 -o eth0 -j ACCEPTe permite apenas em marcha ré ESTABLISHED,RELATED com -m state.

No próprio firewall é aconselhável autorizar tráfego de entrada que é uma resposta às conexões de saída com INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT, e sempre permitir loopback: INPUT -i lo -j ACCEPT.

Para permitir que os computadores da LAN naveguem, aplique o NAT de saída: -t nat -A POSTROUTING -s 192.168.0.0/24 -o eth0 -j SNAT --to-source X.Y.Z.W (o MASQUERADE (se o IP for dinâmico). Isso traduz os IPs privados para o seu IP público.

Uma medida básica de segurança é bloquear pacotes WAN recebidos com IPs de origem inadequados (seu próprio IP público, intervalos privados como 192.168.0.0/24, 127.0.0.0/8, etc.), pois geralmente indicam falsificação de IP.

Para expor serviços no firewall (por exemplo, SMTP 25, HTTP 80, HTTPS 443 ou SSH 22), você pode permitir pacotes TCP com o sinalizador SYN para essas portas de destino. Se você quiser restringir por IP de destino, adicione -d para o IP do serviço.

Os serviços de infraestrutura típicos incluem DHCP (tráfego das portas 68 a 67) na interface LAN e DNS do servidor autoritativo (UDP 53) se houver filtragem por origem. Essas portas permitem que os clientes obtenham endereços IP e resolvam nomes.

Se precisar bloquear o acesso, o comando DROP para mensagens SSH/Telnet de entrada é simples; você também pode usar o comando REJECT para mensagens de saída destinadas a IPs bloqueados na rede local, de forma que o remetente receba uma notificação de rejeição.

Instalando e gerenciando o serviço em sistemas Red Hat/CentOS

Em ambientes legados com CentOS/RHEL 5/6, bastava instalar com yum -y install iptablesEmbora muitas novas distribuições hoje favoreçam o nftables, o iptables ainda está presente em sistemas e dispositivos de produção.

Integração com Serviços SysV permitido gerenciar e persistir regras: service iptables start|stop|restart y service iptables save, economizando em /etc/sysconfig/iptables. Para habilitar na inicialização: chkconfig iptables on nos níveis 2–5.

Nos sistemas modernos, embora as estruturas de encapsulamento mudem , a ideia persiste: definir regras, testá-las e persistir para que sobrevivam a reinicializações, seja com ferramentas do sistema ou scripts.

Listar, excluir e editar regras com precisão

Para ver o status com números de regras, EUA iptables -L --line-numbers -n -v. Desta forma você pode apagar por índice com -D INPUT 3 ou substituir por -R sem confusão.

Se você precisar de uma exclusão seletiva, Limpe apenas a corrente ou placa que toca (-F FORWARD o -F -t nat). Evite varreduras globais remotas sem uma “rede de segurança” ou você poderá perder o acesso SSH.

Como prática geral, primeiro estabeleça regras que permitam sua sessão SSH , aplique as alterações gradualmente e tenha um período de reversão (por exemplo, uma tarefa cron que restaure as regras em 5 minutos se você não as confirmar).

Persistência com iptables-save e iptables-restore

Para salvar suas configurações, iptables-save > /ruta/backup/iptables.rules Gera um dump legível por máquina de todas as tabelas. Ideal para controle de alterações e migrações.

  Automatize completamente o WSL2 com Zsh e Oh My Zsh no Windows.

Para carregá-lo, use iptables-restore < /ruta/backup/iptables.rulesVocê pode automatizar a restauração de inicialização com systemd, scripts init ou uma tarefa cron. @reboot, garantindo que o firewall permaneça ativo após uma reinicialização.

Adicione a isso boas práticas operacionais: é executado com privilégios apropriados, salvar arquivos fora /tmp e alinhá-los com o ambiente (interfaces e sub-redes corretas) para evitar surpresas.

DMZ em detalhes: um exemplo completo e realista

Considere um firewall Linux conectado a um roteador em modo "usuário único" (sem NAT), com três interfaces: eth0 (LAN 192.168.1.1/24), eth1 (DMZ 192.168.2.1/24) e eth2 (WAN com IP via DHCP) . A DMZ hospeda um servidor web Apache (192.168.2.2) e um servidor FTP (192.168.2.3).

Objetivos da política: publicar HTTP/HTTPS e FTP da DMZ para a Internet , permitir administração SSH da LAN para o firewall e permitir que a LAN navegue (HTTP/HTTPS), transfira arquivos via FTP e resolva DNS. Todos os outros acessos são negados.

Em termos gerais: em filtro/ENCAMINHAR permite trânsito LAN→WAN com resposta e WAN→DMZ somente para portas publicadas com ESTABLISHED,RELATED para as respostas. Em nat/PREROUTING, aplica DNAT para publicar serviços; em nat/PÓS-ROTEAMENTO, SNAT/MASQUERADE para saída LAN/DMZ.

Exemplos de aberturas: DNAT 80/443 para 192.168.2.2 e 21/20 (dependendo do modo) para 192.168.2.3 com o correspondente FORWARD Permitindo essas portas. Proteja os canais de controle e dados para FTP (ativo/passivo) ou limite o alcance passivo e reflita isso no firewall.

Para LAN: permite saída para 80, 443, 21 e 53 e seu retorno, aplicando NAT de saída em POSTROUTING. No firewall, autorize Entrada SSH somente da sub-rede 192.168.1.0/24 e bloqueia acesso indesejado da WAN.

Não se esqueça da higiene: use o comando DROP para intervalos inválidos na WAN (privada, loopback, sua própria rede pública) e registre apenas o que lhe interessa. Com políticas padrão restritivas e aberturas mínimas, sua exposição é reduzida ao mínimo necessário.

Boas práticas e truques operacionais

Trabalhe sempre com um plano: documente o que você permite e porquê , verifique o fluxo esperado com um diagrama simples e aplique as regras na ordem correta para evitar sobreposições.

Use uma combinação de módulos com uma cabeça: estado/conntrack para respostas, tcp con --syn em aberturas, e multiport para agruparDessa forma você simplifica e reduz o risco de inconsistências.

Para ambientes com mudanças frequentes, considere separar as regras por função: correntes personalizadas (Com -N) chamadas de INPUT/OUTPUT/FORWARD, para que manter ou inverter peças seja mais limpo.

A transição para o nftables está em andamento em muitas distribuições, mas se sua plataforma/produto usa iptables, um conhecimento profundo desses componentes lhe dará controle total . E se você migrar, compreenderá facilmente o modelo mental equivalente no nftables.

Com o que você aprendeu, agora você tem uma base sólida para implantar e manter o iptables em produção: você entende a arquitetura (tabelas, cadeias e fluxo), domina os comandos essenciais, sabe implementar NAT e publicar com DNAT/SNAT e sabe como configurar uma DMZ segura . A partir daqui, é uma questão de adaptá-lo às suas necessidades específicas, realizar auditorias regularmente e manter suas regras tão claras quanto o seu modelo de rede.