
Tenho a seguinte infraestrutura instalada:
roteador de internet [fora de 81.xxx] [dentro de 192.168.1.1] | [rede 192.168.1.0/24] | servidor de correio [192.168.1.2]
No roteador (DD-WRT) com iptables. Eu tenho o NAT habilitado porque quero que meu servidor de e-mail responda pelo IP externo. Eu tenho a seguinte configuração:
iptables -t nat -I PREROUTING -d 81.x.x.x -j DNAT --to 192.168.1.2
iptables -t nat -I POSTROUTING -s 192.168.1.2 -j SNAT --to 81.x.x.x
iptables -I FORWARD -d 192.168.1.2 -p tcp --dport 25 -j ACCEPT
com algumas outras portas abertas também.
No entanto, quando o correio chega ao postfix do servidor de correio, mostra a seguinte mensagem:
postfix/smtpd[6964]: connect from unknown[192.168.1.1]
Todos os e-mails vindos de fora parecem vir dos roteadores dentro do endereço IP. O que está faltando para que o endereço IP original seja mostrado, em vez dos roteadores dentro do IP?
Responder1
Parece que você configurou um NAT 1 para 1 com as duas primeiras regras do iptables, mas adicionou uma terceira regra bastante curiosa:
iptables -I FORWARD -d 192.168.1.2 -p tcp --dport 25 -j ACCEPT
Essas regras não são necessárias ao fazer NAT 1 para 1 e, na verdade, não fazem nada de útil. Pelas informações que você forneceu, esta parece ser a causa mais provável do problema. Simplesmente remova-o.
iptables -D FORWARD -d 192.168.1.2 -p tcp --dport 25 -j ACCEPT
Responder2
Estranhezas do ISTR como essa antes, mas há algo faltando, como você diz. As seguintes informações podem ser úteis do roteador:
iptables -t nat -L -n
iptables -L -n
ip route
E isso do servidor de e-mail:
iptables -t nat -L -n
ip route
grep . /proc/sys/net/ipv4/conf/*/rp_filter
Sem essas informações, acho que acabaria com o firewall existente e faria algo mais específico:
iptables -t nat -F # also on server
iptables -t nat -I PREROUTING -p tcp -d 81.x.x.x --dport 25 \
-j DNAT --to 192.168.1.2:25
E veja o que está acontecendo nos logs de e-mail. Se você precisar do SNAT para SMTP de saída, algo como:
iptables -t nat -I POSTROUTING -p tcp -s 192.168.1.2 --dport 25 \
-m multiport --sports 1024:65535 -j SNAT --to 81.x.x.x:25
E se um resolvedor DNS local for insuficiente:
iptables -t nat -I POSTROUTING -p udp -s 192.168.1.2 --dport 53 \
-j SNAT --to 81.x.x.x