RE: DNAT with orignal source address

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

 



Pascal,
  Thanks for the feedback. I am currently using the following as my general NAT that catches everything that is not my servers. It is listed last in my script and so I thought it would be the last one to be executed if none of the above rules matched. I guess there is still some traffic that is not matching the specific rules or I misunderstood how iptables handled order and jumping. Here is my script in its entirety:

#! /bin/bash

modprobe ip_conntrack_ftp iptables_nat iptables_mangle ip_nat_ftp
echo "1" > /proc/sys/net/ipv4/ip_forward

iptables -t nat -F


# Static configs
# server1
iptables -t nat -A PREROUTING -d 1.1.1.2 -j DNAT --to-destination 192.168.2.10
iptables -t nat -A POSTROUTING -s 192.168.2.10 -j SNAT --to-source 1.1.1.2

# server2
iptables -t nat -A PREROUTING -d 1.1.1.3 -j DNAT --to-destination 192.168.2.11
iptables -t nat -A POSTROUTING -s 192.168.2.11 -j SNAT --to-source 1.1.1.3

# server3
iptables -t nat -A PREROUTING -d 1.1.1.4 -j DNAT --to-destination 192.168.2.12
iptables -t nat -A POSTROUTING -s 192.168.2.12 -j SNAT --to-source 1.1.1.4

# workstation1
iptables -t nat -A PREROUTING -d 1.1.1.5 -j DNAT --to-destination 192.168.2.13
iptables -t nat -A POSTROUTING -s 192.168.2.13 -j SNAT --to-source 1.1.1.5

# workstation2
iptables -t nat -A PREROUTING -d 1.1.1.6 -j DNAT --to-destination 192.168.2.21
iptables -t nat -A POSTROUTING -s 192.168.2.21 -j SNAT --to-source 1.1.1.6

#General nat

iptables -t nat -A POSTROUTING -j SNAT --to-source 1.1.1.1

I will give the recipe that you mentioned a try. What exactly is the difference between --to and --to-source/--to-destination, is it just an alias? One question that I have regarding the recipe that you provided is that since I have machines with public addresses scattered through the 192.168.2.0/24 subnet would it still be matching more then it should? Or does providing it a subnet and an out interface try to prevent NATing on inbound traffic as well?

Thanks,
Robert LeBlanc

> -----Original Message-----
> From: netfilter-bounces@xxxxxxxxxxxxxxxxxxx [mailto:netfilter-
> bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Pascal Hambourg
> Sent: Wednesday, August 02, 2006 5:37 PM
> To: netfilter@xxxxxxxxxxxxxxxxxxx
> Subject: Re: DNAT with orignal source address
> 
> Hello,
> 
> Robert LeBlanc a écrit :
> > I'm having problems with my e-mail server saying that every connection
> > originates from the NAT box. I checked it on my other linux server and
> > sure enough even though I have 1:1 DNAT and a reverse SNAT configured,
> > packets destined for my server show the NAT box as the source. How do
> > you configure DNAT so that it keeps the original Internet address and
> > does not mangle it, only the destination address to my server on a
> > private subnet?
> 
> DNAT never mangles the source address in the PREROUTING chain. DNAT can
> mangle the source address only in the OUTPUT chain to match the new
> output interface.
> 
> > iptables -t nat -A PREROUTING -d 1.1.1.4 -j DNAT --to-destination
> > 192.168.2.10
> > iptables -t nat -A POSTROUTING -s 192.168.2.10 -j SNAT --to-source
> > 1.1.1.4
> >
> > So the gateway's public address is 1.1.1.1 and the e-mail server is
> > 1.1.1.4. The e-mail logs and ssh logins all show that every connection
> > is made from 1.1.1.1 even though the connections are made from the
> > Internet.
> 
> I bet that is the result of another SNAT rule, maybe the one used to
> masquerade the private subnet on internet which matches more than it
> should. For instance you have :
> 
> iptables -t nat -A POSTROUTING -j SNAT --to 1.1.1.1
> 
> when you need :
> 
> iptables -t nat -A POSTROUTING -o <public_interface> -s 192.168.2.0/24 \
>    -j SNAT --to 1.1.1.1




[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