Construtor iptables

Construtor de Regras de Firewall Linux iptables e Gerador de Scripts Shell

Construa regras iptables para cadeias INPUT/FORWARD/OUTPUT, inspeção de estado conntrack, proteção contra SYN flood, redirecionamento NAT e exportação de scripts shell.

Modelos de Firewall
Adicionar Regra de Firewall
Regras configuradas (5)Marcar/desmarcar para ativar/desativar
#1INPUTTCP :22
ACCEPT
#2INPUTTCP :80
ACCEPT
#3INPUTTCP :443
ACCEPT
#4INPUTTCP :9100 from 10.0.0.0/16
ACCEPT
#5INPUTALL
LOG
#!/usr/bin/env bash
# ==============================================================================
# Linux iptables Firewall Configuration Script
# Generated by ToolsAA iptables Rule Generator (https://toolsaa.com)
# 100% Client-Side Netfilter Firewall Builder
# ==============================================================================
set -euo pipefail

# Verify root privileges
if [[ $EUID -ne 0 ]]; then
   echo "Error: This script must be executed as root (e.g. sudo bash $0)" >&2
   exit 1
fi

# Find iptables binaries
IPTABLES="$(command -v iptables || echo '/sbin/iptables')"
SYSCTL="$(command -v sysctl || echo '/sbin/sysctl')"

echo "==> Applying Linux iptables firewall rules..."

# ------------------------------------------------------------------------------
# 1. Kernel Parameter Hardening & Anti-Spoofing (sysctl)
# ------------------------------------------------------------------------------
$SYSCTL -w net.ipv4.tcp_syncookies=1 >/dev/null
$SYSCTL -w net.ipv4.conf.all.rp_filter=1 >/dev/null
$SYSCTL -w net.ipv4.conf.default.rp_filter=1 >/dev/null
$SYSCTL -w net.ipv4.conf.all.accept_source_route=0 >/dev/null
$SYSCTL -w net.ipv4.conf.all.accept_redirects=0 >/dev/null
$SYSCTL -w net.ipv4.icmp_echo_ignore_broadcasts=1 >/dev/null
$SYSCTL -w net.ipv4.icmp_ignore_bogus_error_responses=1 >/dev/null

# ------------------------------------------------------------------------------
# 2. Flush Existing Rules & Reset Counters
# ------------------------------------------------------------------------------
$IPTABLES -F
$IPTABLES -X
$IPTABLES -Z
$IPTABLES -t nat -F || true
$IPTABLES -t nat -X || true
$IPTABLES -t mangle -F || true
$IPTABLES -t mangle -X || true
$IPTABLES -t raw -F || true
$IPTABLES -t raw -X || true

# ------------------------------------------------------------------------------
# 3. Set Default Chain Policies
# ------------------------------------------------------------------------------
$IPTABLES -P INPUT DROP
$IPTABLES -P FORWARD DROP
$IPTABLES -P OUTPUT ACCEPT

# ------------------------------------------------------------------------------
# 4. Core Defensive Rules: Loopback, Conntrack & Invalid Drops
# ------------------------------------------------------------------------------
# Allow unlimited loopback traffic (localhost)
$IPTABLES -A INPUT -i lo -j ACCEPT -m comment --comment "Allow all loopback inbound"
$IPTABLES -A OUTPUT -o lo -j ACCEPT -m comment --comment "Allow all loopback outbound"
# Drop packets in INVALID connection state immediately
$IPTABLES -A INPUT -m conntrack --ctstate INVALID -j DROP -m comment --comment "Drop invalid packets"
# Stateful connection tracking: Allow established and related traffic
$IPTABLES -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT -m comment --comment "Stateful allow established/related"
$IPTABLES -A OUTPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT -m comment --comment "Stateful allow established/related"

# ------------------------------------------------------------------------------
# 5. Anti-DDoS: TCP SYN Flood Protection Chain
# ------------------------------------------------------------------------------
$IPTABLES -N SYN_FLOOD || true
$IPTABLES -A INPUT -p tcp --syn -j SYN_FLOOD
$IPTABLES -A SYN_FLOOD -m limit --limit 1/s --limit-burst 4 -j RETURN
$IPTABLES -A SYN_FLOOD -j DROP -m comment --comment "Drop excess SYN flood packets"

# ------------------------------------------------------------------------------
# 6. Port Scan & Malicious Flag Mitigation
# ------------------------------------------------------------------------------
# Drop NULL packets (no flags set)
$IPTABLES -A INPUT -p tcp --tcp-flags ALL NONE -j DROP -m comment --comment "Drop NULL scan packets"
# Drop XMAS packets (FIN, PSH, URG flags)
$IPTABLES -A INPUT -p tcp --tcp-flags ALL ALL -j DROP -m comment --comment "Drop XMAS scan packets"
$IPTABLES -A INPUT -p tcp --tcp-flags ALL FIN,PSH,URG -j DROP -m comment --comment "Drop XMAS variants"
# Drop SYN-FIN scans
$IPTABLES -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP -m comment --comment "Drop SYN-FIN packets"
# Drop SYN-RST scans
$IPTABLES -A INPUT -p tcp --tcp-flags SYN,RST SYN,RST -j DROP -m comment --comment "Drop SYN-RST packets"

# ------------------------------------------------------------------------------
# 7. ICMP / Ping Echo-Request Control
# ------------------------------------------------------------------------------
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/s --limit-burst 2 -j ACCEPT -m comment --comment "Rate-limited ICMP ping"
$IPTABLES -A INPUT -p icmp --icmp-type echo-request -j DROP -m comment --comment "Drop excess ICMP pings"

# ------------------------------------------------------------------------------
# 8. SSH Anti-Bruteforce Rate Limiter (iptables recent module)
# ------------------------------------------------------------------------------
$IPTABLES -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set --name SSH_ATTEMPTS
$IPTABLES -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 4 -j DROP -m comment --comment "Drop SSH bruteforce flood"

# ------------------------------------------------------------------------------
# 9. User-Configured Filter Chain Rules
# ------------------------------------------------------------------------------
# Rule 1: SSH administration (protected by recent anti-bruteforce)
$IPTABLES -A INPUT -i eth0 -p tcp --dport 22 -j ACCEPT -m comment --comment "SSH administration (protected by recent anti-bruteforce)"
# Rule 2: Standard HTTP Web traffic
$IPTABLES -A INPUT -i eth0 -p tcp --dport 80 -j ACCEPT -m comment --comment "Standard HTTP Web traffic"
# Rule 3: Encrypted HTTPS / TLS Web traffic
$IPTABLES -A INPUT -i eth0 -p tcp --dport 443 -j ACCEPT -m comment --comment "Encrypted HTTPS / TLS Web traffic"
# Rule 4: Prometheus node exporter restricted to private VPC
$IPTABLES -A INPUT -i eth0 -p tcp -s 10.0.0.0/16 --dport 9100 -j ACCEPT -m comment --comment "Prometheus node exporter restricted to private VPC"
# Rule 5: Log dropped unsolicited incoming packets
$IPTABLES -A INPUT -m limit --limit 5/min -j LOG --log-prefix "[IPT-DROP-WEB]: " --log-level 4 -m comment --comment "Log dropped unsolicited incoming packets"

echo "==> Linux iptables firewall rules successfully applied!"
echo "==> Active rules summary:"
$IPTABLES -L -v -n --line-numbers | head -n 35
Regras de filtro ativas
5 Regras · 0 Portas NAT
Diretivas NAT
SYN Flood · Anti-SSH
Diretivas de segurança
Bash .sh · rules.v4 · systemd

Gerador 100% Privado no Cliente

Sem envios para o servidor nem telemetria. Seus IPs, sub-redes, portas internas e topologia de rede são processados estritamente na memória local do navegador.

Inspeção com Estado e Mitigação DDoS

Inspeção de pacotes com estado (conntrack), mitigação de ataques SYN flood com rate limit, descarte de pacotes inválidos, loopback e proteção anti-spoofing (rp_filter).

Script de Shell para Produção e Exportação Systemd

Exporte scripts Bash para produção com timer seguro de reversão (rollback), compatibilidade com iptables-save e diretivas de persistência no systemd.

Referência técnica e guia de arquitetura

Gerador de Regras de Firewall iptables do Linux e Scripts Shell — Guia de referência

Construa regras iptables para cadeias INPUT/FORWARD/OUTPUT, inspeção de estado conntrack, proteção contra SYN flood, redirecionamento NAT e exportação de scripts shell.

Parâmetros principais e controles

Cadeia e Política PadrãoString (Enum)

Cadeia de netfilter de destino (INPUT, FORWARD, OUTPUT) combinada com a política de segurança base (-P DROP, ACCEPT, REJECT).

Padrão: INPUT DROP
Protocolo e Módulos de CorrespondênciaString

Protocolo de transporte (-p tcp, udp, icmp, all) associado a módulos do kernel (-m conntrack, -m multiport, -m limit).

Padrão: tcp -m conntrack
Filtros de Origem / DestinoIPv4/CIDR / Lista de Portas

Faixas de IP de origem (-s) ou destino (-d) juntamente com portas de serviço (--sport, --dport, --dports).

Padrão: -s 0.0.0.0/0 --dport 22,80,443
Estado de Conexão (ctstate)Lista de strings

Estados de rastreamento com estado (NEW, ESTABLISHED, RELATED, INVALID, UNTRACKED) para filtragem bidirecional.

Padrão: ESTABLISHED,RELATED
Ação de Destino (Target)String (Enum)

Ação executada quando a regra corresponde (-j ACCEPT, DROP, REJECT, LOG, MASQUERADE, DNAT, SNAT, REDIRECT).

Padrão: ACCEPT

Dicas profissionais e melhores práticas

Otimização com Stateful Conntrack

Insira sempre 'iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT' no topo da sua lista de regras. Isso ignora a avaliação de regras para conexões ativas e reduz significativamente o consumo de CPU em alto tráfego.

Prevenção contra Bloqueio Remoto de SSH

Antes de definir a política padrão da cadeia INPUT como DROP em servidores remotos, configure um temporizador de segurança: 'sleep 300 && iptables -P INPUT ACCEPT && iptables -F'. Como alternativa, use o comando 'iptables-apply' para testar as regras com segurança.

Atenuação de Ataques SYN Flood

Limite a frequência de handshakes TCP não finalizados para amortecer ataques volumétricos: 'iptables -A INPUT -p tcp --syn -m limit --limit 25/s --limit-burst 100 -j ACCEPT' seguido por uma regra de descarte (DROP).

Interface Loopback e Diagnóstico ICMP

Nunca descarte o tráfego da interface de loopback ('-i lo -j ACCEPT'), pois daemons locais dependem do localhost para IPC. Habilite requisições ICMP Echo com controle de taxa ('-p icmp --icmp-type echo-request -m limit --limit 5/s -j ACCEPT') para diagnósticos de rede sem vulnerabilidade a ping floods.

Problemas comuns e solução de problemas

Acesso SSH interrompido imediatamente após aplicação das regras de firewall

A política de INPUT foi alterada para DROP antes de liberar a porta 22 ou o estado ESTABLISHED. Recupere o acesso pelo console out-of-band (IPMI/VNC), execute 'iptables -P INPUT ACCEPT' e garanta que a liberação do SSH anteceda a mudança da política padrão.

Mensagem no dmesg: 'nf_conntrack: table full, dropping packet'

A tabela de rastreamento de conexões esgotou sua capacidade. Aumente o limite via sysctl ('sysctl -w net.netfilter.nf_conntrack_max=262144'), reduza tempos de expiração ('net.netfilter.nf_conntrack_tcp_timeout_established=600') ou ignore o rastreamento em portas de alto débito usando '-t raw -A PREROUTING -p tcp --dport 80 -j NOTRACK'.

Docker sobrescreve regras customizadas de FORWARD e NAT

O Docker gerencia o iptables de forma autônoma e cria suas próprias cadeias (DOCKER, DOCKER-USER). Insira suas regras de filtragem na cadeia 'DOCKER-USER' em vez de alterar a cadeia FORWARD diretamente, impedindo que reinicializações do daemon desfaçam sua segurança.

Perguntas frequentes (FAQ)

Qual é a diferença fundamental entre iptables, nftables e UFW/firewalld?▼

O iptables manipula diretamente os ganchos Netfilter do kernel Linux por meio de tabelas estáticas (filter, nat, mangle). O nftables é seu sucessor moderno com arquitetura baseada em bytecode e suporte a transações atômicas. UFW e firewalld são daemons de alto nível que geram regras de iptables ou nftables automaticamente nos bastidores.

Por que a ação DROP é preferível a REJECT em interfaces conectadas à internet?▼

O DROP descarta o pacote silenciosamente sem gerar resposta, forçando scanners de portas a esperar o timeout da conexão e ocultando a existência do host. O REJECT envia pacotes de resposta (ICMP port-unreachable ou TCP RST), confirmando ao invasor que o IP está ativo e consumindo tráfego de saída.

Como as cadeias NAT PREROUTING e POSTROUTING operam no encaminhamento de portas?▼

A cadeia PREROUTING atua antes da decisão de roteamento para alterar o endereço de destino (-j DNAT --to-destination IP:porta), encaminhando pacotes externos a servidores da rede interna. A cadeia POSTROUTING atua após o roteamento para alterar o endereço de origem (-j MASQUERADE ou -j SNAT), permitindo que redes privadas naveguem na internet através do IP público.

Como persistir regras do iptables após a reinicialização do servidor Linux?▼

As regras do iptables residem na memória volátil do kernel. No Debian/Ubuntu, instale o pacote 'iptables-persistent' e execute 'netfilter-persistent save'. No RHEL/CentOS/AlmaLinux, instale 'iptables-services', salve com 'iptables-save > /etc/sysconfig/iptables' e ative o serviço no systemd.

Como inspecionar a contagem de pacotes e bytes por regra em tempo real?▼

Execute 'iptables -nvL --line-numbers' para inspecionar os contadores de pacotes e bytes por índice de linha. Para acompanhar o tráfego em tempo real durante testes de estresse, use 'watch -n 1 iptables -nvL INPUT'.

Ferramentas e utilitários relacionados

Todas as ferramentas →
Guia do Desenvolvedor: Gerador e Analisador de Registros DNS SPFSegurança

Crie e valide registros SPF TXT em total conformidade com a RFC 7208, abrangendo blocos CIDR IPv4/IPv6, MX, A, mecanismos include e políticas SoftFail/HardFail.

Abrir ferramenta→
Construtor de Registro de Política DMARC DNS e Validador de SintaxeSegurança

Gere e valide registros DNS TXT DMARC em conformidade com o RFC 7489, com aplicação de políticas (none/quarantine/reject), relatórios agregados rua/ruf e tags de alinhamento.

Abrir ferramenta→
Gerador de Registros DNS CAA e Validador de PolíticasSegurança

Crie registros DNS CAA em conformidade com a RFC 8659 para restringir a emissão de certificados SSL/TLS exclusivamente a autoridades confiáveis (Let's Encrypt, DigiCert, Sectigo).

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de Registros DNS DKIM TXT e SeletoresSegurança

Gere registros DNS DKIM TXT compatíveis com a RFC 6376 com seletor, formatação de chave pública (v=DKIM1; k=rsa; p=...), divisão de 255 caracteres e validação.

Abrir ferramenta→
Guia do Desenvolvedor: Gerador de Políticas MTA-STS e Registros DNS TLS-RPTSegurança

Documentação técnica completa e boas práticas para geração de arquivos de política RFC 8461 MTA-STS, registros DNS TXT _mta-sts e relatórios RFC 8460 TLS-RPT.

Abrir ferramenta→
Decodificador e Inspetor de Segurança de Tokens JWTSegurança

Utilitário para desenvolvedores para decodificar JSON Web Tokens no navegador, inspecionar claims RFC 7519 e OIDC, auditar prazos de expiração e verificar assinaturas HMAC localmente.

Abrir ferramenta→