Neste tópico abordarei algumas aplicações para
iptables, não estou postando o script completo, você apanha apenas as regras que lhe forem convenientes. Valeu!
Esta primeira regra serve para quem tem mais de um IP válido na rede, tem algum terminal ou cliente que quer um IP válido e você não vai lançar um IP válido dentro de sua nuvem. Primeiro você cria um alias de interface (Subinterface) na interface que está conectada a internet.
Ex.: Sua rede é 200.2.2.0 netmask 255.255.255.128, daí você tem teoricamente 128 IPs válidos disponíveis, seu firewall tem ip 200.2.2.2 na eth1, dentro da rede interna você vai disponibilizar um ip válido e claro, todas as portas para uma máquina, sendo que o IP interno desta máquina é 192.168.2.253. Então você cria a alias de interface no seu firewall com um segundo ip valido:
# ifconfig eth1:1 200.2.2.3 netmask 255.255.255.128
Agora no seu script de firewall adicione esta regra antes do seu NAT do resto da rede interna:
### NAT - DNAT-SNAT
#Aqui está permitindo qualquer entrada tcp ou udp para este IP
iptables -I INPUT -p ALL -d 200.2.2.3 -j ACCEPT
# Aqui qualquer pacote destinado ao ip 200.2.2.3 válido (Alias de Interface)
# será destinado à 192.168.2.253 da rede interna.
iptables -t nat -I PREROUTING -d 200.2.2.3 -j DNAT --to-destination 192.168.2.253
# Aqui diz que tudo com origem em 192.168.2.253 sairá com com ip 200.2.2.3
iptables -t nat -I POSTROUTING -s 192.168.2.253 -j SNAT --to-source 200.2.2.3
Ou seja, para todos os efeitos é como se o terminal que está dentro da rede estivesse diretamente conectado a internet.
Formas diferentes de fazer NAT
Esta primeira regra permite o roteamento entre interfaces, ela vem antes das regras seguintes e é essencial para o funcionamento das regras subsequentes.
echo 1 > /proc/sys/net/ipv4/ip_forward
1 - Nat para uma sub-rede, assim todos os hosts desta sub-rede podem navegar na internet, sendo "eth1" a interface conectada a internet.
iptables -t nat -A POSTROUTING -s 192.168.2.0/24 -o eth1 -j MASQUERADE
2 - NAT individual, para que apenas um host navegue. Esta regra é interessante para que você possa fazer que um determinado host navegue por fora do proxy, coloque esta regra antes do NAT global (do resto da rede que passa pelo proxy transparente).
iptables -t nat -I POSTROUTING -s 192.168.2.55/32 -o eth1 -j MASQUERADE
3 - NAT Global, assim fazendo o mascaramento de qualquer rede interna para a internet.
iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Simples redirecionamento de porta
iptables -A FORWARD -p tcp --dport 5900 -d 200.2.2.2 -j ACCEPT
iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 5900 -j DNAT --to 192.168.2.45
Espero que gostem destas dicas, com um pouco de criatividade vocês pode fazer muitas outras coisas. T+