Re: Problem with Transparent Proxy and 2.6 IPSec

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

 



Hi

There is a problem with NAT + IPSEC on the same box running the native
stack.  There is a thread in devel that covers this.  There are also
some patches that will work with 2.6.3, but do not apply the
ip_route_me_hrader patch by herbert Xu (to fix the mangle taple hooks)
as this causes a loop(this patch is in 2.6.4).

Alex

On Tue, Mar 16, 2004 at 08:37:07PM -0700, Carl Baldwin wrote:
> Hello,
> 
> I am new to this list but not new to iptables.  I have used iptables for
> several years and have had much success with it.  I want to present the
> problem that I have and request comments on how I might resolve it.
> 
> I have been using a transparent proxy with squid and smtp for about a
> year.  It has worked fine and I've been very happy with it.
> 
> The problem came when I dumped freeswan and gave ipsec in linux 2.6.4 a
> try.  This ipsec has been, for the most part, more reliable and easier
> to understand for me.
> 
> I first ran into a problem that has already been discussed on this list
> (or maybe netfilter-devel?).  This problem is with transport mode in
> ipsec.  So, I switched to tunnel mode.  For more on that problem do a
> search on the list archives.
> 
> In tunnel mode, as you may know from previous postings, iptables sees
> each packet twice.  First, as an esp packet.  Second, as the
> de-encapsulated version of the packet.  This is good, I think, although
> I would like a way to know that a packet was authenticated or encrypted
> prior to its de-encapsulation.  However, that is the subject of a future
> posting.
> 
> Anyway, most rules work for me.  I can SNAT these packets out onto the
> global network, all my INPUT rules seem to work and things are generally
> happy.  However, my transparent proxies do not work.  Does anyone know
> why?
> 
> SOME INTERESTING OBSERVATIONS
> 
> Here is something that I observed running tcpdump on the two hosts at
> the end of the tunnel.  This is part of the dump when trying to telnet
> from cube to host mail --- names changed to protect the innocent --- on
> port 25.  The nat box is called nat and the source machine is called
> cube.  Here is the dump on the nat box side:
> 
> 18:44:43.825043 cube > nat: ESP(spi=0x00000201,seq=0x532b) (DF) [tos 0x10]
> 18:44:43.825043 cube.39869 > mail.smtp: S 1307041850:1307041850(0) win 5840 <mss 1460,sackOK,timestamp 118540183 0,nop,wscale 0> (DF) [tos 0x10]
> 18:44:43.825292 mail > cube: ESP(spi=0x00000301,seq=0x54ca) (DF)
> 18:44:46.824219 cube > nat: ESP(spi=0x00000201,seq=0x532f) (DF) [tos 0x10]
> 18:44:46.824219 cube.39869 > mail.smtp: S 1307041850:1307041850(0) win 5840 <mss 1460,sackOK,timestamp 118543184 0,nop,wscale 0> (DF) [tos 0x10]
> 
> Here, I see the request to mail.smtp encapsulated in esp and then
> de-encapsulated.  Then I see a mail > cube esp packet.  Then another
> cube > nat packet.
> 
> On cube I see the following.
> 
> 18:44:43.823985 mail > cube.39869: ESP(spi=0x00000301,seq=0xc06c) (DF)
> 18:44:43.823985 nat.smtp > cube.39869: S 4174872998:4174872998(0) ack 1307041851 win 5792 <mss 1460,sackOK,timestamp 186145512 118540183,nop,wscale 0> (DF)
> 18:44:46.823183 mail > cube.39869: ESP(spi=0x00000301,seq=0xc06d) (DF)
> 18:44:46.823183 nat.smtp > cube.39869: S 4174872998:4174872998(0) ack 1307041851 win 5792 <mss 1460,sackOK,timestamp 186148512 118540183,nop,wscale 0> (DF)
> 
> It looks to me like a response is being sent.  So, I'm not sure where
> things might be breaking down.
> 
> MISC INFO ABOUT MY SETUP
> 
> I run a debian testing machine as my NAT and proxy.  Both the proxy and the
> firewall are on the same machine because this is my home machine and I'm just
> playing around with this stuff at the moment.  My other linux machines
> communicate with this box through an ipsec tunnel.  Network analysis with
> tcpdump comfirms this.  Currently, I have one windows machine that is allowed
> to talk to this linux machine without ipsec.  This machine can still use the
> transparent proxies without a problem.
> 
> # This shows the version of iptables that I am running.
> nat:~> dpkg -l iptables
> Desired=Unknown/Install/Remove/Purge/Hold
> | Status=Not/Installed/Config-files/Unpacked/Failed-config/Half-installed
> |/ Err?=(none)/Hold/Reinst-required/X=both-problems (Status,Err: uppercase=bad)
> ||/ Name       Version   Description
> +++-============================================-=======================
> ii  iptables   1.2.9-5   Linux kernel 2.4+ iptables administration tools
> 
> # Info on my kernel.  (I have tried all of the 2.6.x stable releases)
> nat:~> uname -a
> Linux nat 2.6.4 #1 Sun Mar 14 14:54:23 MST 2004 i686 GNU/Linux
> 
> # Here are the relavant iptables rules (iptables-save format.)
> #   NOTE eth0 goes to the global internet, eth1 to my local net.
> 
> # Generated by iptables-save v1.2.9 on Tue Mar 16 10:51:20 2004
> *nat
> :PREROUTING ACCEPT [88:22304]
> :POSTROUTING ACCEPT [98:14092]
> :OUTPUT ACCEPT [139:17757]
> -A PREROUTING -i eth1 -p tcp -m tcp --dport 80 -j REDIRECT --to-ports 8080
> -A PREROUTING -i eth1 -p tcp -m tcp --dport 25 -j REDIRECT --to-ports 25
> -A POSTROUTING -o eth0 -j SNAT --to-source 192.168.1.2
> COMMIT
> 
> # Generated by iptables-save v1.2.9 on Tue Mar 16 10:51:20 2004
> *filter
> :INPUT DROP [72:21276]
> :FORWARD DROP [0:0]
> :OUTPUT ACCEPT [9217:2302627]
> -A INPUT -p ah -j ACCEPT
> -A INPUT -p esp -j ACCEPT
> -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
> -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
> -A INPUT -p tcp -m tcp --dport 25 -j ACCEPT
> -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
> -A INPUT -i eth1 -p tcp -m tcp --dport 8080 -j ACCEPT
> -A FORWARD -i eth1 -o eth0 -j ACCEPT
> -A FORWARD -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
> COMMIT
> 
> OTHER INTERESTING ASIDES
> 
> Just as an aside, most of you are used to seeing this done with squid
> but some may not be used to seeing it done with smtp.  It works great
> and I love it.  Only my border machine needs to know about special rules
> for routing certain mail (like routing mail to aol for instance).  My
> desktop and laptop think they are delivering MX direct.
> 
> Thanks for taking the time to read this.
> Carl Baldwin


Attachment: signature.asc
Description: Digital signature


[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