Eu tenho uma caixa Debian com duas interfaces wan e lan (192.168.0.1). Em 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. Funciona apenas se eu remover -i $LAN
o INPUT. 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
Porém, é um mau caminho, porque o site agora também está em wan:80 e não é isso que eu quero. Qual é o meu erro?
Responder1
Eu recebi uma resposta emFórum Linux Russo:
iptables -t mangle -A PREROUTING -i $WAN -p tcp --dport 777 -j MARK --set-mark 0x1234
iptables -t nat -A PREROUTING -p tcp -i $WAN --dport 777 -j DNAT --to-destination 192.168.0.1:80
iptables -A INPUT -m mark --mark 0x1234 -j ACCEPT