[strongSwan] client machine cannot talk to local LAN if VPN tunnel over the Internet is connected
Ingmar Rosenhagen
mail at ingmar-rosenhagen.de
Sun Jul 12 16:46:34 CEST 2015
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
Hi,
what does "This pass-through connection will be activated the first
time its needed." exactly mean? I put a similar entry into my
ipsec.conf on my local gateway (just a different IP range) but the
passthrough routes are never activated.
Only when I connect back over the VPN to my local gateway and set the
policies manually by entering
ip xfrm policy add src 172.31.0.0/16 dst 172.31.0.0/16 proto any dir
in ptype main priority 1500
ip xfrm policy add src 172.31.0.0/16 dst 172.31.0.0/16 proto any dir
out ptype main priority 1500
the routes are set and I can reach the gw on it's local address again.
kind regards
Ingmar Rosenhagen
It works! Thank you Noel!
The key is to set up a pass-through connection in Strongswan's own
ipsec.conf configuration file. No mucking with Linux kernel routing or
XFRM policy guts needed.
conn my_precious_lan
leftsubnet=172.31.0.0/16
rightsubnet=172.31.0.0/16
authby=never
type=passthrough
auto=route
This pass-through connection will be activated the first time its needed
.
Alan
On 5/30/15, Noel Kuntze <noel at familie-kuntze.de> wrote:
>
> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256
>
> Hello Alan,
>
> Remedy #2 is your salvation. The ipsec.conf files of the test
> scenarios I linked to have example passthrough policy definitions.
> Look at those. I think things will be much clearer then.
>
> Mit freundlichen Grüßen/Kind Regards, Noel Kuntze
>
> GPG Key ID: 0x63EC6658 Fingerprint: 23CA BB60 2146 05E7 7278 6592
> 3839 298F 63EC 6658
>
> Am 30.05.2015 um 15:01 schrieb Alan Tu:
>> Thanks Zhuyj and Noel, I am a bit more enlightened and closer.
>> I'm still a little lost, working with the guts of Linux routing
>> is quite new to me.
>>
>> Linux can have multiple routing tables, identified by a number.
>> "220" is just the number chosen by Strongswan to insert its new
>> route. "route" apparently just shows the main routing table. The
>> better command is ip route: $ ip route show table 220 default via
>> 172.31.48.1 dev eth0 proto static src 10.100.4.45
>>
>> In this routing table 220, the default route is set to the
>> Internet gateway, going out the ethernet interface eth0.
>> 10.100.4.45 is the virtual IP address assigned by the VPN
>> gateway, but I don't know what its presence in this output
>> means.
>>
>> 1. Maybe I need a line in this routing table 220 that specifies
>> the local subnet 172.31.48.0/20, without the virtual IP address
>> at the end of the routing table entry.
>>
>> Some potentially relevant lines from my XFRM policies: # ip xfrm
>> policy show src 0.0.0.0/0 dst 10.100.4.45/32 dir fwd priority
>> 2947 tmpl src [public_VPN_gateway] dst 172.31.59.240 proto esp
>> reqid 1 mode tunnel src 0.0.0.0/0 dst 10.100.4.45/32 dir in
>> priority 2947 tmpl src [public_VPN_gateway] dst 172.31.59.240
>> proto esp reqid 1 mode tunnel src 10.100.4.45/32 dst 0.0.0.0/0
>> dir out priority 2947 tmpl src 172.31.59.240 dst
>> [public_VPN_gateway] proto esp reqid 1 mode tunnel ...
>>
>> It seems XFRM is the virtual IP magic that takes the ethernet
>> eth0 packets, and sends the packets through the ipsec/Strongswan
>> crypto system.
>>
>> 2. Maybe I need to specify a XFRM policy that says "don't
>> encrypt packets going to the LAN", specifically 172.31.48.0/20.
>>
>> Where I'm lost is, do I need remedy #1 or remedy #2, or both? I
>> don't know yet how to do either remedy, so knowing what I should
>> do would help my trial and error. Thanks.
>>
>> Alan
>>
>>
>> On 5/30/15, Noel Kuntze <noel at familie-kuntze.de> wrote:
>>>
>> Hello,
>>
>> strongSwan builds policy based tunnels. XFRM policies are used to
>> steal the packets from the kernel after the routing decision. You
>> need to write a passthrough policy that matches the traffic in
>> your LAN to except it from the policy of your tunnel.
>>
>> Routing table 220 only has routes, so the incoming traffic
>> through the tunnel passes the reverse path filter.
>>
>> Look at those test scenarios, there they are called "shunt
>> policies".
>>
https://www.strongswan.org/uml/testresults/ikev2/shunt-policies-nat-rw/i
ndex.html
>>
https://www.strongswan.org/uml/testresults/sql/shunt-policies-nat-rw/ind
ex.html
>>
>> Mit freundlichen Grüßen/Kind Regards, Noel Kuntze
>>
>> GPG Key ID: 0x63EC6658 Fingerprint: 23CA BB60 2146 05E7 7278 6592
>> 3839 298F 63EC 6658
>>
>> Am 30.05.2015 um 09:41 schrieb Zhuyj:
>>>>> This route should be inserted in route table 220
>>>>>
>>>>>
>>>>> 发自我的 iPhone
>>>>>
>>>>>> 在 2015年5月30日,14:00,Alan Tu <8libra at gmail.com> 写道:
>>>>>>
>>>>>> Hmmm, I don't think this worked. The pre- and post-VPN
>>>>>> routing tables are actually identical:
>>>>>>
>>>>>> $ route -n Kernel IP routing table Destination
>>>>>> Gateway Genmask Flags Metric Ref Use
>>>>>> Iface 0.0.0.0 172.31.48.1 0.0.0.0 UG
>>>>>> 0 0 0 eth0 172.31.48.0 0.0.0.0
>>>>>> 255.255.240.0 U 0 0 0 eth0
>>>>>>
>>>>>> I then added a new route: # route add -net 172.31.48.0
>>>>>> netmask 255.255.240.0 gw 172.31.48.1 dev eth0
>>>>>>
>>>>>> New routing table: $ route -n Kernel IP routing table
>>>>>> Destination Gateway Genmask Flags
>>>>>> Metric Ref Use Iface 0.0.0.0 172.31.48.1
>>>>>> 0.0.0.0 UG 0 0 0 eth0 172.31.48.0
>>>>>> 172.31.48.1 255.255.240.0 UG 0 0 0 eth0
>>>>>> 172.31.48.0 0.0.0.0 255.255.240.0 U 0
>>>>>> 0 0 eth0
>>>>>>
>>>>>> I still couldn't SSH to 172.31.63.211 while the VPN
>>>>>> tunnel is up.
>>>>>>
>>>>>> Alan
>>>>>>
>>>>>>
>>>>>>> On 5/30/15, Zhuyj <mounter625 at 163.com> wrote: Check
>>>>>>> route, 0.0.0.0 is not good, a specific LAN is better
>>>>>>>
>>>>>>>
>>>>>>> 发自我的 iPhone
>>>>>>>
>>>>>>>> 在 2015年5月30日,7:58,Alan Tu <8libra at gmail.com> 写道:
>>>>>>>>
>>>>>>>> Hello, I'm using Strongswan 5.3.0 to successfully
>>>>>>>> connect a
Linux
>>>>>>>> machine to a VPN over the Internet. However, after I
>>>>>>>> bring
up the
>>>>>>>> VPN tunnel, my client Linux machine cannot talk to
>>>>>>>> other machines on its own LAN, even though it can
>>>>>>>> talk to machines everywhere else on the Internet, as
>>>>>>>> well as to machines on the VPN. Can someone
give me a
>>>>>>>> hint as to the solution?
>>>>>>>>
>>>>>>>> My client machine has IP address 172.31.59.36. The
>>>>>>>> eth0 network interface has netmask /20. The pre-VPN
>>>>>>>> routing table:
>>>>>>>>
>>>>>>>> $ route Kernel IP routing table Destination
>>>>>>>> Gateway Genmask Flags Metric Ref Use
>>>>>>>> Iface default gateway_hostname. 0.0.0.0
>>>>>>>> UG 0 0 0 eth0 172.31.48.0 *
>>>>>>>> 255.255.240.0 U 0 0 0 eth0
>>>>>>>>
>>>>>>>> Post-VPN routing table: $ route Kernel IP routing
>>>>>>>> table Destination Gateway Genmask
>>>>>>>> Flags Metric Ref Use Iface default gateway_ip
>>>>>>>> 0.0.0.0 UG 0 0 0 eth0 172.31.48.0
>>>>>>>> * 255.255.240.0 U 0 0 0
>>>>>>>> eth0
>>>>>>>>
>>>>>>>> Here are some potentially relevant lines from my
>>>>>>>> ipsec.conf
file:
>>>>>>>> conn vpn type=tunnel aggressive=yes xauth=client
>>>>>>>> left=%any leftid=keyid:... leftsourceip=%modeconfig
>>>>>>>> right=[public IP of VPN gateway]
>>>>>>>> rightsubnet=0.0.0.0/0
>>>>>>>>
>>>>>>>> After the Strongswan VPN connection is brought up,
>>>>>>>> and the
virtual
>>>>>>>> IP is inserted into eth0, I cannot access other
>>>>>>>> machines in the 172.31.x.x range. The VPN virtual IP
>>>>>>>> addresses are in the 10.0.0.0/8 range, so there is no
>>>>>>>> apparent conflict. I think my root problem is
>>>>>>>> something related to routing, but I don't know how to
>>>>>>>> fix it. Because routing to local servers on the LAN
>>>>>>>> no longer works, non-VPN DNS doesn't work either,
>>>>>>>> which creates secondary problems.
>>>>>>>>
>>>>>>>> I test strictly IP connectivity with ssh: $ ssh user
>>>>>>>> at 172.31.63.211
>>>>>>>>
>>>>>>>> If the VPN connection is up, this fails. If I bring
>>>>>>>> down the connection ("ipsec down vpn"), SSH works.
>>>>>>>>
>>>>>>>> Can someone please help?
>>>>>>>>
>>>>>>>> Prior VPN solutions I've used set up a brand new
>>>>>>>> interface,
so I'm
>>>>>>>> really stuck. I tried changing rightsubnet to
>>>>>>>> 10.0.0.0/8 (the IP range of the VPN), but VPN
>>>>>>>> connectivity fails altogether. Other
ideas I
>>>>>>>> have for a solution include inserting something into
>>>>>>>> the routing
table,
>>>>>>>> or getting Strongswan to somehow create its own
>>>>>>>> network interface, but I'm not sure. I'd appreciate
>>>>>>>> some guidance towards a solution.
>>>>>>>>
>>>>>>>> Alan _______________________________________________
>>>>>>>> Users mailing list Users at lists.strongswan.org
>>>>>>>> https://lists.strongswan.org/mailman/listinfo/users
>>>>>>>
>>>>>>>
>>>>>
>>>>> _______________________________________________ Users
>>>>> mailing list Users at lists.strongswan.org
>>>>> https://lists.strongswan.org/mailman/listinfo/users
>>
>>>
>>>
>>> _______________________________________________ Users mailing
>>> list Users at lists.strongswan.org
>>> https://lists.strongswan.org/mailman/listinfo/users
>
> -----BEGIN PGP SIGNATURE----- Version: GnuPG v2
>
> iQIcBAEBCAAGBQJVabT2AAoJEDg5KY9j7GZYaBAP/3BIq64HKTrud2CGiE3qyV++
> t16UEJyPhGlyv6MQdRGkmEwJDQz8681yfx9y8pcqCPGurI2MTzmRvRaKOBppESmt
> YcBznghXdUA5COx98l4w1TX2LlAElOTuLxqe/dw3BsL0bWPVW+Rg8WS9s4FCtlqP
> btoBGG8XOhYSEsHNtyTXuz1vG7R0TqNt/GtpYlSSWgBXhRCob/wxXUZ922RMpTse
> 1XqNsdpcqPWi4HHrsshjuT9B/nZ0Z8Q4WeaTwxW1oYU7NG0N+CIUPvzlWwaRz+UY
> 8IhKSW0bxkjR+d5D640xijYw44xDSfUp6fdrPl82IkaIkSR/1/oCu6AoVzl6F+jy
> V/iBffpQErx3gM8qYK4gnGOHwT/iixYgERQTNrCyKf3ebquUxV0l960Rd1jrddoY
> sZacyPyH5l4rwqU4wK/7l4GkER5Q5pdbqo3wPb2EdmFxYX1paRhvWit6/pQc+DDk
> z1v3ft1aBAeVCP5ZnwdhN3P9uFu5/U2EFGhZWcLYG61umpxFGrnV9M1jyFIb1IwW
> eV57hk/J+X1CbIc+T1QOwzS78NiVOC/YA58Z1yA2Ow65w21TdxydWYPQfdbVWPSV
> WbJoXDadPJHFncVWo8IPPNtii+DMIB0TIjAYS4cfOJXeefAnlWP9iGsW+FfzSeE+
> E8d5pJ4UNuY7GqVDi0kc =fBkB -----END PGP SIGNATURE-----
>
>
- --
Looking for a Signature? Why not Zoidberg?
(\/)_(;,,;)_(\/)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2
iQIcBAEBCAAGBQJVon3KAAoJEB0r3iflYJCarAYP/29KJ5G89rPyJRxuc0iOycJw
MzbPFVFoF7YLiHIBpf+mX7OQcRP8vLExtXFDRGkAKhocqo6ozRez5+LsVpJbhEuj
/2CXX8RZTejluNzp4OJsmmg+GFjV4n06DiKTzhi3U1wWgmQE/GaZlBeZ7ipcNZgt
4ChAz+34m92LnzipjeLwlZogIcSmCpckGCbSq5efv+1kcZoOTyBCh7JhNxOnndvJ
sWQk7stjrQNvXeBuP5JaSMZp7cD2oCHE/XfezuB7filg3tzr3KsG3EWsiOshrmMM
hKhPApu2hScfIcr7e/ETUw4lNCsNQ0fSmtwXx/BfANuk03sgzfFToWbOs4vq8ACs
+iRSQ+wZokIFQIVu9ouo61gl03fqnUthGWhv009CsdQ9Hqvw8ZDqL5/tF/WuNnC7
epl87VYlXfVbHwfax5aXXZ5wUbSgLetnbBj4FwDZKmrM3cKfFNtdF+bo9pHXTidP
CHZWZhftEJmUTCBOIIzpyteBIKBGFaX+cqkRL3zN3Qb5IlqNpZEsP9XEojLyx+Jl
sX3Ra1p6rm4A2eb7PE2/7dNtVeiisE6fFhKt/oxRvTui+lrgHim/woz1S3sWrBMs
jT3G8Ve+W7Di7w5teO/mQmKF0WpQ/oyYny3IbSQJudGdsnJXSLgOxSm9CKgOnDE4
QguEsxGnUUVHckyVBnO7
=jGo7
-----END PGP SIGNATURE-----
More information about the Users
mailing list