primeiro e para tudo você precisa verificar se o encaminhamento de pacotes é permitido em seu sistema:
cat /proc/sys/net/ipv4/ip_forward
ou
sysctl ipv4_forward
Isso deve ter o valor de '1'. se não (sudo ou como root):
echo '1' > /proc/sys/net/ipv4/ip_forward
e para tornar a alteração permanente, você pode remover o comentário de net.ipv4.ip_forward=1
em /etc/sysctl.conf
. Uma vez feito isso, você pode testar suas configurações do iptables (eu presumo que ele funcionará depois dessa pequena alteração ;-)). Já que você disse que você é novo nisso, eu coloquei uma descrição da regra em cada regra, esperando que tudo faça sentido para você.
iptables -P INPUT DROP
iptables -A OUTPUT ACCEPT
iptables -A FORWARD ACCEPT
Isso eliminará todo o tráfego, exceto o tráfego que corresponder às regras definidas. -P INPUT DROP pode ser declarado como a primeira regra, enquanto -A INPUT DROP tem que ser o último. As próximas 2 regras permitirão conexões e encaminhamentos de saída.
iptables -A INPUT -i lo -j ACCEPT
Permitir tráfego de loopback (127.0.0.1)
iptables -A INPUT -m state --state RELEATED,ESTABLISHED -j ACCEPT
Isso permitirá que todos os pacotes que possuem estado RELATED (Uma nova conexão secundária por FTP) ou ESTABLISHED (pacotes para esta conexão tenham sido vistos em ambas as direções, por exemplo, tráfego HTTP).
iptables -t nat -A POSTROUTING -o ethx -j MASQUERADE
nat porque você provavelmente está natting, mascarar o pacote saindo da interface ethx
. Por exemplo, o lado WAN está em eth1 e lan em eth0, então ethx seria eth0. Isso está no POSTROUTING.
iptables -t nat -A PREROUTING -p tcp --dport 3306 -j DNAT --to-destination 192.168.1.100:3306
este é o encaminhamento real.
Então, basicamente, as regras do iptables estão OK, você provavelmente esqueceu a configuração do ip_forward.