Re: DNAT/SNAT and logging

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

 



On Mon, 2004-01-19 at 17:24, Jeffrey Laramie wrote:
> Johan Ankarloo wrote:
> 
> >On Mon, 2004-01-19 at 16:21, Jeffrey Laramie wrote:
> >  
> >
> >>Johan Ankarloo wrote:
> >>
> >>    
> >>
> >>>Hi
> >>>
> >>>Does anyone know how to log a DNAT/SNAT connection? When logging a NAT
> >>>connection you also want to know the origin source/destination/port of
> >>>that packet. Is that possible?
> >>>
> >>> 
> >>>
> >>>      
> >>>
> >>Sure. The easiest way to do it is to add a matching log rule just before 
> >>the nat rule:
> >>
> >>iptables -t nat -A POSTROUTING -o $Net_Interface -j LOG --log-prefix 
> >>"SNAT: "
> >>iptables -t nat -A POSTROUTING -o $Net_Interface -j SNAT --to $Net_IP
> >>
> >>Jeff
> >>    
> >>
> >
> >The problem is when doing this is that you doesn't get the original 
> >source/destination or the translating adress. If you look at the logs
> >you can't see all the information that you need to be able to debug any
> >problem or to be able to track that connection back to the user.
> >  
> >
> I don't use DNAT so I can't tell you how it logs connections, but 
> logging a SNAT connection works fine. Here's the rules I used:
> 
> # Masquerade everything leaving the lan as the firewall IP.
> $iptables -t nat -A POSTROUTING -o $Net_Interface -j LOG --log-level 
> debug --log-prefix "SNAT: "
> $iptables -t nat -A POSTROUTING -o $Net_Interface -j SNAT --to $Net_IP
> 
> And here's the log entry I got:
> 
> Jan 19 11:14:21 NS1 kernel: SNAT: IN= OUT=eth1 SRC=192.168.0.4 
> DST=66.95.2.50 LEN=44 TOS=0x08 PREC=0x00 TTL=63 ID=17955 PROTO=TCP 
> SPT=1030 DPT=80 WINDOW=28672 RES=0x00 SYN URGP=0
> 
> 
> 192.168.0.4 is the source host on the local private subnet
> 66.95.2.50 is the IP of the remote host
> Sending port is 1030
> Dest port is 80
> 
> And $Net_IP is IP the outside will see which is the IP of the firewall. 
> The SNATed ports will be the same as the original ones.
> 
> Isn't this what you're looking for or did I misunderstand you?
> 
> Jeff

No, i don't see all the information in your example above. Look at the 
following examples taken from the examples at
http://www.netfilter.org/documentation/HOWTO//NAT-HOWTO-6.html

---- SNIP ----
## Change destination addresses to 5.6.7.8, 5.6.7.9 or 5.6.7.10.
# iptables -t nat -A PREROUTING -i eth0 -j DNAT --to 5.6.7.8-5.6.7.10

## Change source addresses to 1.2.3.4, 1.2.3.5 or 1.2.3.6
# iptables -t nat -A POSTROUTING -o eth0 -j SNAT --to 1.2.3.4-1.2.3.6
---- SNIP ----

Here you can se that you can do DNAT and SNAT to an range of ipadresse
so the question may be a bit clearer when i ask the question like this. 
How is it possible to log to wich ipadress the connection is translated
to?
That is why i need the following information in the log file.
Original Source 
Original SourcePort 
Original Destination 
Original DestinationPort
Translated Source 
Translated SourcePort 
Translated Destination 
Translated DestinationPort

Regards

Johan



[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