Eu tenho uma caixa debian com duas interfaces wan e lan(192.168.0.1). Na lan:80 tenho um site que deve ser acessado pela rede local. Também preciso que este site seja acessado de wan:777. Estas são as minhas regras do iptables:
iptables -A INPUT -i $LAN -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i $WAN --dport 777 -j DNAT --to-destination 192.168.0.1:80
iptables -A FORWARD -p tcp -d 192.168.0.1 --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
No entanto, isso não funciona. Só funciona se eu remover -i $LAN
do INPUT. Eu quero dizer desta forma:
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t nat -A PREROUTING -p tcp -i $WAN --dport 777 -j DNAT --to-destination 192.168.0.1:80
iptables -A FORWARD -p tcp -d 192.168.0.1 --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
No entanto, é um caminho ruim, porque o site agora também está em wan:80 e não é isso que eu quero. Qual é o meu erro?
Eu recebi uma resposta no fórum russo do Linux :