[oclug] ipsec + interfaces

Bart Trojanowski bart at nexus.carleton.ca
Mon Mar 5 07:37:23 EST 2001


James,
  you may want to post your query on the <linux-ipsec at freeswan.org>
mailing list.

Bart.

On Mon, 5 Mar 2001, James Leigh wrote:

> I had been setting up a vpn across the Internet using freeswan.  By default
> the ipsec interface adopts the setting of the interface it travels on
> (ipsec0=eth0).  Further more all tunnels on the parent interface (eth0)
> must travel through the same ipsec interface.
>   This caused some trouble with a remote machine over ipsec, since I wanted
> it to be treated (security wise) as a friendly machine, but its ip was not
> part of any internally trusted networks.  I started looking into changing
> the ip of the ipsec interface.  Reading through the docs on freeswan, I did
> not find much, but a brief topic about Road Warrior with virtual IP
> address.  This described how to allow a remote machine to responded to a
> virtual address, but not use this address to send packets.
>   In my example I did not want to create a virtual address, but have the
> gateway use its internal address(eth1) when talking over the vpn.  Since
> the gateway already accepts packets to the internal address it was just a
> matter of changing the address 'from' in the packet being sent.  I am using
> a 2.2.x kernel so I did not have fancy firewalling to masquerade the
> address; I had to change the ipsec interface directly.
>   After all establishing ipsec tunnels, I running 'ifconfig ipsec0 inet
> 192.168.1.1 broadcast 192.168.1.127 netmask 255.255.255.128'.  This will
> change the ip used on the ipsec0 interface to the one specified.  From that
> time on all traffic going out from ipsec0 will have the return address of
> the new ip (192.168.1.1).
>   Let me now explain the basic setup.  Here is a simple 192.168.1.0/24
> split between two networks.
>
> localnetA         -          getawayA         - internet     -
> gatewayB           -    localnetB
> 192.168.1.0/25    -    192.168.1.1/1.2.3.4    - 0.0.0.0/0    -
> 5.6.7.8/192.168.1.129    -    192.168.1.128/25
>
> ipsec.conf for gatewayA: (same/similar for B)
> config setup
>     ...
> conn %default
>     ...
> conn netB
>     also=gatewayB
>     also=leftnet
>     auto=start
> conn gatewayB
>     # identify the remote machine
>     rightid=@gatewayB
>     right=5.6.7.8
>     rightsubnet=192.168.1.128/25
>     rightrsasigkey=0x3fdd8....
> conn leftnet
>     leftsubnet=192.168.1.0/25
>     also=lefthost
> conn lefthost
>     # identify the local machine
>     leftid=@gatewayA
>     left=%defaultroute    # 1.2.3.4
>     leftrsasigkey=0x3fdd8....
>
> When the two gateways A and B connect via ipsec it connects with their eth0
> (external) address, then each independently changes its ipsec0 interface to
> use it internal address, from that point on gatewayA and B communicate
> using their local(eth1) addresses.  Some things to note about the
> ipsec.conf file is that both gateways and both internal networks use the
> same ipsec tunnel (netB).  It is also significant to note that gatewayA can
> communicate with B via 192.168.1.129 or 5.6.7.8 in the vpn and outside the
> vpn respectively, similar for B->A.  This means that each machine can
> choose to communicate inside the vpn or outside.
>   In summary here are the pros and cons
> pros:
>     1. use internal ip on vpn
>     2. one tunnel for gateway and subnets
>     3. machines can shutdown and reconnect without disturbing other party
>     4. two ips for every gateway in or out (good for debugging)
> cons:
>     1. cannot bring up a connect with incorrect interface info; have to
> correct ipsec0 before adding any tunnels
>     2. still have to use the same ip for all ipsec0 tunnels
>     3. route table has to be rebuild for ipsec0 every time ipsec0 changes;
> ifconfig removes all ipsec0 entries then add a general entry
>     4. two ips for every gateway in or out (may expect to be in, but really
> out), can be corrected by adding a second tunnel
>
>   After talking with Richard at the last meeting, I thought it would be
> good to post my solution and get some feed back.  Maybe we
> could include it in the documentation.
>
> cheers mates,
> james
>
> _______________________________________________
> oclug mailing list
> oclug at lists.oclug.on.ca
> http://www.oclug.on.ca/mailman/listinfo/oclug
>

-- 
	WebSig: http://www.jukie.net/~bart/sig/





More information about the OCLUG mailing list