Exemplos de SNAT, DNAT com IPTABLES

shape
shape
shape
shape
shape
shape
shape
shape

Existem diversas variações de NAT que podem ser configuradas com IPTABLES. Este artigo visa mostrar alguns exemplos de SNAT, DNAT com iptables.

Mascarar todos os pacotes de saída como IP WLAN0

iptables -t nat -A PREROUTING -s 192.168.1.2 -i eth0 -j MASQUERADE

Todos os pacotes que saem da eth0 terão endereço IP src eth0

iptables -t nat -A POSTROUTING -o eth0 -j SNAT –to 192.168.1.1

Regra de correspondência especificando uma porta de origem

Abaixo, certifique-se de que os pacotes dos dispositivos Eth tenham o endereço IP de origem correto. Aviso: ao especificar uma porta, o protocolo também precisa ser especificado.

iptables -t nat -A POSTROUTING -o wlan0 -s 192.168.1.2 -p udp –dport 16020 -j SNAT –to 10.1.1.7:51889

iptables -t nat -A POSTROUTING -o wlan0 -s 192.168.1.2 -p tcp –dport 21 -j SNAT –to 10.1.1.7:21

iptables -t nat -A POSTROUTING -o wlan0 -s 192.168.1.3 -j SNAT –to 10.1.1.9

Pacotes destinados ao IP 10.1.1.7 serão encaminhados para 192.168.1.2 UDP,TCP

Pacotes destinados ao IP 10.1.1.9 serão encaminhados para 192.168.1.3 UDP,TCP

Funciona corretamente com ping (ICMP)

iptables -t nat -A PREROUTING -i wlan0 -d 10.1.1.7 -j DNAT –to-destination 192.168.1.2 iptables -t nat -A PREROUTING -i wlan0 -d 10.1.1.9 -j DNAT –to-destination 192.168.1.3

Pacotes destinados ao IP 10.1.1.7 serão encaminhados para 192.168.1.2 UDP,TCP

NÃO funciona corretamente com ping (ICMP), não suporta resposta IP WLAN do protocolo ICMP em um ping sem

iptables -t nat -A PREROUTING -p tcp -i wlan0 -d 10.1.1.7 -j DNAT –to-destination 192.168.1.2 iptables -t nat -A PREROUTING -p udp -i wlan0 -d 10.1.1.7 -j DNAT –to-destination 192.168.1.2

Alterar a porta SNMP de mensagens SNMP de saída

iptables -t nat -A OUTPUT -p udp –dport 162 -j DNAT –to-destination 192.168.1.33:1162

Adicione IP secundário à WLAN0

ip addr add 10.1.1.7/24 dev wlan0 ip addr add 10.1.1.9/24 dev wlan0

Liste todos os endereços IP atribuídos a wlan0

ip add list dev wlan0

Todos os pacotes que saem da eth1 mudarão o IP de origem para 192.168.20.1

iptables -t nat -A POSTROUTING -o eth1 -j SNAT –to 192.168.20.1

Todos os pacotes TCP que saem da eth1 na porta 443 mudarão o IP de origem para 192.168.20.1

iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.22 -p tcp –dport 443 -j SNAT –to 192.168.20.1:443

Todos os pacotes ICMP que saem da eth1 mudarão o IP de origem para 192.168.20.1

iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.22 -p icmp -j SNAT –to 192.168.20.1

Todos os pacotes suportados saindo da eth1 que possuem IP de origem 192.168.1.22 mudarão o IP de origem para 192.168.20.1

iptables -t nat -A POSTROUTING -o eth1 -s 192.168.1.22 -p all -j SNAT –to 192.168.20.1

SNAT na interface de atribuição dinâmica

uso com modo duplo de WIFI, onde o WiFi pode ser AP e STA ao mesmo tempo, adicionado ao script de inicialização

assumindo que wlan1 é STA interface ip=$(ip -o addr show up primário escopo global wlan1 | while read -r num dev fam addr rest; do echo ${addr%/*}; done) echo $ip # todos os pacotes saindo wlan1 mudará o IP de origem para IP da interface STA iptables -t nat -A POSTROUTING -o wlan1 -j SNAT –to $ip

Bloquear o tráfego de ETH0 para Cell, exceto NTP

A ordem é importante pois o DROP terminará após permitir a comunicação com o servidor NTP. Por esse motivo precisamos INSERIR as regras. Se usado APPEND a ordem dos comandos deverá ser invertida para garantir que DROP seja o último.

iptables -I FORWARD -i eth0 -o usb0 -j DROP iptables -I FORWARD -d pool.ntp.org -i eth0 -o usb0 -j ACCEPT

Bloqueie o tráfego na ETH1 com base nas portas

Útil quando você tem um dispositivo atrás do roteador e deseja limitar sua capacidade de usar/explorar recursos no roteador.

Use com cuidado, pois você pode se bloquear.

Bloqueia a porta 80 (http) apenas na interface ETH1

iptables -t filter -A INPUT -i eth1 -p tcp –dport 80 -j DROP

Bloqueia a porta 443 (https) apenas na interface ETH1

iptables -t filter -A INPUT -i eth1 -p tcp –dport 80 -j DROP

Bloqueia a porta 22 (ssh) somente na interface ETH1

iptables -t filter-A INPUT -i eth1 -p tcp –dport 22 -j DROP

Bloqueia ping (icmp) na unidade de interface. ETH1 não responde ao ping

iptables -t filter -A INPUT -i eth1 -p icmp -j DROP

Verificando a tabela NAT

A tabela iptables precisa ser especificada para listagem. POR EXEMPLO. nat, mangle.

iptables -t nat -L -n -v

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *