iptables NAT routing issues

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello,

We're having some problems with iptables, have been playing ~3 hours with this and I need some advice.

We want to 'forward' port 80 from one ip to another ip (other server) - mainly to protect the webserver. One could say that you could use basic portforwarding for this, but as far as i know this also breaks the source ip for apache logs, etc. So we decided that we needed NAT'ing.

On the 'outbound' server we're doing DNAT to the webserver, which seems to work fine (can see the packets in tcpdump on web), and on the webserver we do SNAT back to the 'original' (outboundserver) ip the user connected to.

The last part does not work tho, the webserver still uses its own outgoing ip, and not the IP we specified. If I telnet to some host however, using the webserver source ip - it DOES rewrite the source address (and fails to connect, of course).

Tried various iptables commands on the servers:

OUTBOUND SERVER:

iptables -t nat -A PREROUTING -p tcp --dport 80 -d <ext_web_ip> -j DNAT --to-destination <webserver_ip>:80

Note: We didn't touch this as it seems to works fine.

WEBSERVER:

Tried various, from the detailed:
iptables -t nat -A POSTROUTING -s <webserver_ip>-p tcp --sport 80 -j SNAT --to-source <ext_web_ip>:80 -o eth0

To the 'should-be-catching-it-all':
iptables -t nat -A POSTROUTING -s <webserver_ip> -j SNAT --to-source <ext_web_ip>

None of those seem to do the thing we want to do tho.

Some advice would be very welcome.

Cheers,
Bas Verhoeven


[Index of Archives]     [Linux Netfilter Development]     [Linux Kernel Networking Development]     [Netem]     [Berkeley Packet Filter]     [Linux Kernel Development]     [Advanced Routing & Traffice Control]     [Bugtraq]

  Powered by Linux