V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
neroanelli
V2EX  ›  问与答

OpenWrt 路由器 L2TP/IPSec 客户端中, NAT 情况下 strongSwan 配置请教

  •  
  •   neroanelli · 2014-12-30 20:48:42 +08:00 · 34612 次点击
    这是一个创建于 3651 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我在OpenWrt路由器中配置了L2TP/IPSec客户端,最开始使用的是racoon+xl2tp实现的,能正常连接,并且在外网和NAT内网中都能正常使用。
    后来觉得racoon不是很好用,有时候不能连接,于是就尝试使用strongSwan,在配置测试过程中,当OpenWrt路由器外网情况下,能正常使用;而当路由器为内网NAT的情况下,不能正常连接。我的ipsec.conf配置文件如下:

    config setup
    #charondebug = "ike 2,knl 2"
    conn l2tp-psk-client
    authby=psk
    rekey=yes
    type=transport
    keyexchange=ikev1
    keyingtries=3
    left=%defaultroute
    leftprotoport=17/1701
    right=1.1.1.1
    rightprotoport=17/1701
    esp=aes256-sha1
    ike=aes256-sha1-modp1024
    auto=start

    其中1.1.1.1为L2TP/IPSec服务器地址。

    我使用的strongSwan版本为5.1.3,根据官方wiki,从5.0版本开始就取消了nat_traversal=yes参数。我搜索了一下,发现大量的资料和教程都是strongSwan作为server的,而client的配置介绍很少。而且strongSwan在更新过程中,配置文件在不停变化。
    所以请教大家,在NAT情况下,是不是还有什么参数需要配置?有什么参数没有设置合理?

    第 1 条附言  ·  2014-12-31 09:26:44 +08:00
    由于服务器是别人提供的,而且只能使用L2TP/IPSec的方式连接。现在就是在NAT穿透时连接不上,不知道是strongswan配置问题还是其他原因。
    第 2 条附言  ·  2014-12-31 11:35:29 +08:00
    主要是没有建立CHILD_SA,日志中提示no acceptable traffic selectors found。
    第 3 条附言  ·  2015-01-12 15:05:41 +08:00
    还是更新一下:问题已经解决,在配置文件中加入rightsubnet=0.0.0.0/0搞定。感谢各位。
    27 条回复    2015-11-03 23:10:44 +08:00
    realsteve
        1
    realsteve  
       2014-12-30 21:42:50 +08:00 via iPhone
    如果是 IPSec 的话,推荐用 VPNC,稳定靠谱。
    neroanelli
        2
    neroanelli  
    OP
       2014-12-30 21:47:51 +08:00
    @realsteve
    主要是服务器是别人提供的。。。只支持L2tp/IPSec
    neroanelli
        3
    neroanelli  
    OP
       2014-12-31 09:44:19 +08:00
    debiansid
        4
    debiansid  
       2014-12-31 11:01:50 +08:00 via iPhone
    需要一条iptables
    neroanelli
        5
    neroanelli  
    OP
       2014-12-31 11:36:20 +08:00
    @debiansid
    请教具体是怎样iptables?
    cattyhouse
        6
    cattyhouse  
       2014-12-31 11:52:27 +08:00
    为啥要l2tp?直接racoon或者strongswan建ipsec vpn服务器就行了,l2tp太麻烦!
    debiansid
        7
    debiansid  
       2014-12-31 12:26:48 +08:00 via iPhone
    穿透打开没有 你的主路由器上
    neroanelli
        8
    neroanelli  
    OP
       2014-12-31 13:29:24 +08:00
    @cattyhouse
    因为服务器是别人提供的,只有l2tp服务。。。
    neroanelli
        9
    neroanelli  
    OP
       2014-12-31 13:30:32 +08:00
    @debiansid
    打开了的,使用racoon都能正常工作,只是使用strongswan连接不正常。
    GPU
        10
    GPU  
       2014-12-31 17:17:35 +08:00 via iPhone
    我正打算在路由器弄IKEv2客户端,还不清楚怎么弄
    msp123
        11
    msp123  
       2015-01-12 17:45:31 +08:00
    解决了吗?亲?我也遇到了这个问题
    neroanelli
        12
    neroanelli  
    OP
       2015-01-12 21:43:04 +08:00   ❤️ 1
    @msp123
    问题已经解决,在配置文件中加入rightsubnet=0.0.0.0/0搞定。感谢各位。
    msp123
        13
    msp123  
       2015-01-13 11:27:58 +08:00
    如何关闭5.0的nat-travesal呢?您知道吗?
    neroanelli
        14
    neroanelli  
    OP
       2015-01-13 15:31:26 +08:00
    @msp123
    5.0没有这个参数的,所以也不存在关闭。
    参考链接 https://wiki.strongswan.org/projects/strongswan/wiki/NatTraversal
    GPU
        15
    GPU  
       2015-01-20 18:33:16 +08:00
    @neroanelli 国内debian 系统用 strongswan 链接国外的strongswan 应该怎么配置啊?

    国外的strongswan 配置了ikev2 ikev2-eap ikev1
    neroanelli
        16
    neroanelli  
    OP
       2015-01-21 09:14:22 +08:00
    @GPU
    你提供的信息有限啊。如果你有国外的strongSwan的配置文件那更好,简单修改就可以配置好。
    你需要知道对方服务器是什么认证方式,是psk吗?还有esp、ike加密方式等。
    GPU
        17
    GPU  
       2015-01-21 12:39:26 +08:00
    @neroanelli 对方服务器也是我自己搭建,有所有管理权限 。我只是不知道怎么修改配置文件在client 使用

    我是 psk 也有 esp ike 都有。

    下面是配置文件 (github账号又被认定机器人了,解封中无法用gist)

    我是使用泛域名证书验证的

    config setup
    charondebug="cfg -1, dmn -1, ike -1, net -1, enc -1"
    ##charondebug="-1"
    uniqueids = no
    conn %default
    keyexchange=ikev2
    dpdaction=clear
    dpddelay=5s
    rekey=no
    left=%any
    leftsubnet=0.0.0.0/0
    leftcert=server.pem
    leftsendcert=always
    right=%any
    rightdns=8.8.4.4,8.8.8.8
    rightsourceip=172.0.0.0/24

    conn IPSec-IKEv2
    keyexchange=ikev2
    leftid=@*.my.domain
    rightid=*@my.domain
    auto=add

    conn IPSec-IKEv2-EAP
    also="IPSec-IKEv2"
    rightauth=eap-mschapv2
    rightsendcert=never
    eap_identity=%any

    conn CiscoIPSec
    keyexchange=ikev1
    leftsendcert=never
    leftauth=psk
    rightauth=psk
    rightauth2=xauth
    auto=add
    neroanelli
        18
    neroanelli  
    OP
       2015-01-21 14:12:09 +08:00
    @GPU
    给你一个参考配置哈,你研究一下:
    conn ikev2-Client
    right=gateway.host.name
    rightid=%gateway.host.name
    rightsubnet=0.0.0.0/0
    rightauth=pubkey
    leftsourceip=%config
    leftauth=pubkey or eap #depending on the selected gateway config
    leftcert=certificate #only if leftauth=pubkey (e.g. peerCert.der)
    eap_identity=username #only if leftauth=eap (e.g. peer)
    auto=add

    注意后面的注释,看你是用pubkey还是eap方式。
    GPU
        19
    GPU  
       2015-01-21 17:21:57 +08:00
    @neroanelli

    试了很久还是像下面这样子。




    Starting strongSwan 5.2.1 IPsec [starter]...
    00[DMN] Starting IKE charon daemon (strongSwan 5.2.1, Linux 3.2.0-4-amd64, x86_64)
    00[CFG] loading ca certificates from '/etc/ipsec.d/cacerts'
    00[CFG] loading aa certificates from '/etc/ipsec.d/aacerts'
    00[CFG] loading ocsp signer certificates from '/etc/ipsec.d/ocspcerts'
    00[CFG] loading attribute certificates from '/etc/ipsec.d/acerts'
    00[CFG] loading crls from '/etc/ipsec.d/crls'
    00[CFG] loading secrets from '/etc/ipsec.secrets'
    00[CFG] loaded RSA private key from '/etc/ipsec.d/private/myKey.der'
    00[LIB] loaded plugins: charon aes des rc2 sha1 sha2 md4 md5 random nonce x509 revocation constraints pubkey pkcs1 pkcs7 pkcs8 pkcs12 pgp dnskey sshkey pem openssl fips-prf gmp xcbc cmac hmac attr kernel-netlink resolve socket-default stroke updown eap-identity eap-mschapv2 eap-peap xauth-generic
    00[LIB] unable to load 3 plugin features (3 due to unmet dependencies)
    00[JOB] spawning 16 worker threads
    09[NET] waiting for data on sockets
    charon (19643) started after 20 ms
    11[CFG] received stroke: add connection 'ikev2-Client'
    11[CFG] conn ikev2-Client
    11[CFG] left=%any
    11[CFG] leftsourceip=%config
    11[CFG] leftauth=pubkey
    11[CFG] leftcert=server.pem
    11[CFG] right=my.domain.com
    11[CFG] rightsubnet=0.0.0.0/0
    11[CFG] rightauth=pubkey
    11[CFG] rightid=%my.domain.com
    11[CFG] ike=aes128-sha1-modp2048,3des-sha1-modp1536
    11[CFG] esp=aes128-sha1,3des-sha1
    11[CFG] dpddelay=30
    11[CFG] dpdtimeout=150
    11[CFG] mediation=no
    11[CFG] keyexchange=ikev2
    11[CFG] left nor right host is our side, assuming left=local
    11[CFG] loaded certificate "OU=Domain Control Validated, CN=*.domain.com" from 'server.pem'
    11[CFG] id '%any' not confirmed by certificate, defaulting to 'OU=Domain Control Validated, CN=*.domain.com'
    11[CFG] added configuration 'ikev2-Client'
    neroanelli
        20
    neroanelli  
    OP
       2015-01-21 20:09:25 +08:00
    @GPU
    你不会真的就是在配置里面填写的right=my.domain.com吧。。。。。那个应该是你对应的服务器的地址。
    neroanelli
        21
    neroanelli  
    OP
       2015-01-21 20:10:33 +08:00
    @GPU
    我觉得你还是先看一下strongSwan的官方手册吧,其实基本的配置都有的。
    https://wiki.strongswan.org/projects/strongswan/wiki/ConfigurationFiles
    GPU
        22
    GPU  
       2015-01-21 20:31:09 +08:00
    @neroanelli right = 我是填我自己的域名 xx.xx.xx 然后 rightid= 就填 %xx.xx.xx

    strongswan 我看不懂啊. .英语不好啊.看起来太吃力
    cs4814751
        23
    cs4814751  
       2015-03-06 17:07:49 +08:00 via iPad
    @neroanelli 非常想请教下,你是如何在openwrt上配置的l2tp/ipsec的客户端,我也想弄来着。
    neroanelli
        24
    neroanelli  
    OP
       2015-03-07 11:29:04 +08:00 via Android
    @cs4814751
    怎么说呢,这个客户端是由两部分组成:一部分是ipsec,一部分是l2tp。而ipsec又有两种实现方案(其实还有openswan,不过新版openwrt内核编不过):一种是racoon,一种是strongswan,就是我上面那个配置。然后配置ipsec的时候,可能需要配置ike和esp的加密方式。如果ipsec连接成功,然后配置l2tp。
    l2tp有两种实现方案,分别是xl2tp和openl2tp,推荐第一种,网上教程很多。
    neroanelli
        25
    neroanelli  
    OP
       2015-03-07 11:29:59 +08:00 via Android
    @GPU
    看了下你的日志,你没有up 连接啊。
    neroanelli
        26
    neroanelli  
    OP
       2015-03-07 11:35:36 +08:00 via Android
    @GPU
    你只是add了连接,你还需要ipsec up ikev2-Client
    Vicer
        27
    Vicer  
       2015-11-03 23:10:44 +08:00
    求 Strongswan 搭建 L2TP/ipsec 的配置文件 最好贴出步骤
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2715 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 14:53 · PVG 22:53 · LAX 06:53 · JFK 09:53
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.