Configurar o comportamento de filtragem NAT com iptables

1

Estou usando essa regra para configurar o SNAT:

iptables -t nat -A POSTROUTING -o eth1 -j SNAT --to-source 193.49.142.107:4000

Eu quero especificar uma regra para filtrar os pacotes não destinados ao endereço interno e à porta que iniciou a sessão. Além disso, para receber pacotes de um endpoint externo específico, é necessário que o endpoint interno envie os pacotes primeiro para o endereço IP desse endpoint externo específico. (Filtragem Dependente do Endereço NAT)

Exemplo:

Uma máquina com IP interno e porta (X: x) que está por trás do NAT abre uma conexão para um servidor com IP Y. Assim, com a regra eu devo poder permitir somente a conexão vinda do endereço IP Y e destinada a (X: x) Todas as outras conexões serão descartadas.

    
por HaTiMuX 18.06.2014 / 14:07

1 resposta

2
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
iptables -P FORWARD -j DROP
iptables -A FORWARD -o eth1 -m state --state NEW,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -m state --state ESTABLISHED -j ACCEPT

O que essas regras fazem?

  1. -A POSTROUTING -o eth1 -j MASQUERADE oculta seus IPs internos conforme os pacotes saem da sua rede
  2. -P FORWARD -j DROP define a política padrão da sua cadeia FORWARD para DROP
  3. -A FORWARD -o eth1 -m state --state NEW,ESTABLISHED -j ACCEPT permite que conexões FORWARD novas e estabelecidas saiam
  4. -A FORWARD -i eth1 -m state --state ESTABLISHED -j ACCEPT permite apenas conexões FORWARD estabelecidas em

As regras acima assumem que você está usando essa caixa como um gateway / firewall com eth1 conectado à sua WAN e eth0 conectado à sua LAN.

Leitura adicional: Pós-exibição e máscara de IP

EDITAR

Para configurar o encaminhamento de porta "condicional":

Por porta de origem

iptables -A PREROUTING -t nat -i eth1 -p tcp --sport [trusted_source_port] --dport [external_port] -j DNAT --to [internal_ip]:[internal_port]
iptables -A FORWARD -p tcp -d [internal_ip] --dport [internal_port] -j ACCEPT

Por IP de origem

iptables -A PREROUTING -t nat -i eth1 -p tcp -s [trusted_source_ip] --dport [external_port] -j DNAT --to [internal_ip]:[internal_port]
iptables -A FORWARD -p tcp -d [internal_ip] --dport [internal_port] -j ACCEPT
    
por 18.06.2014 / 14:21