×

用WireShark抓包解决StrongSwan和H3C对接失败的问题

hqy hqy 发表于2023-01-09 09:43:31 浏览400 评论0

抢沙发发表评论

strongSwan是一个开源的基于IPsec的VPN解决方案,默认安装路径是/etc/strongswan/,比较重要的配置文件就是ipsec.confstrongSwan之ipsec.conf配置手册和ipsec.secretsstrongSwan之ipsec.secrets配置手册这两个配置文件了。

今天就来介绍一下如何配置strongSwan和华三设备的IPsec对接。

对比华三设备配置,讲解Linux主机如何配置strongSwan的组网拓扑稍作调整,用一台华三VSR替换掉Linux2主机,使Linux服务器和VSR直接对接,如下图所示:

对比华三设备配置,讲解Linux主机如何配置strongSwan中,我们已经对strongSwan和VSR的IPsec配置进行了初步对比,简单回顾一下:

先看VSR和strongSwan一样的地方:第一阶段的协商模式默认都是主模式,第二阶段默认的加密模式都是ESP,报文封装模式默认都是隧道模式。

再看有差别的地方,strongSwan的ipsec.conf配置文件如下:

    cat etc/strongswan/ipsec.conf
      conn swan
       authby = psk
       keyexchange=ikev1
       left=12.1.1.1
       leftsubnet=11.1.1.0/24
       right=12.1.1.2
       rightsubnet=22.1.1.0/24
       auto=route

      这里面有隐藏的默认配置:

        conn swan
         leftid=12.1.1.1
         rightid=12.1.1.2
         ike = aes128-sha256-modp3072
         esp = aes128-sha256

        这里有个问题,就是IKE算法中的PRF-modp3072算法华三暂时不是支持的。同时strongSwan有依据说明,如果没有给出PRF,则为完整性定义的算法将用于PRF,所以我们把配置修改为ike = aes128-sha256试一下。

        到这里,strongSwan的配置就完成了。

          conn swan
           authby = psk
           keyexchange=ikev1
           left=12.1.1.1
           leftid=12.1.1.1
           leftsubnet=11.1.1.0/24
           right=12.1.1.2
           rightid=12.1.1.2
           rightsubnet=22.1.1.0/24
           auto=route
           ike = aes128-sha256
           esp = aes128-sha256
            cat /etc/strongswan/ipsec.secrets
              12.1.1.2 12.1.1.1 : PSK swan

              接下来就是比较拿手的H3C配置了,按照strongSwan的配置进行调整,直接上配置:

                #
                ike keychain swan
                pre-shared-key address 12.1.1.1 255.255.255.0 key simple swan
                #
                ike proposal 10
                encryption-algorithm aes-cbc-128
                authentication-algorithm sha256
                #
                ike profile swan
                keychain swan
                local-identity address 12.1.1.2
                match remote identity address 12.1.1.1 255.255.255.0
                proposal 10
                #
                acl advanced 3402
                rule 0 permit ip source 22.1.1.0 0.0.0.255 destination 11.1.1.0 0.0.0.255
                #
                ipsec transform-set swan
                esp encryption-algorithm aes-cbc-128
                esp authentication-algorithm sha256
                #
                ipsec policy swan 10 isakmp
                transform-set swan
                security acl 3402
                local-address 12.1.1.2
                remote-address 12.1.1.1
                ike-profile swan
                #
                interface GigabitEthernet3/0
                ipsec apply policy swan

                然后触发一下,发现IPsec协商失败,状态未知。

                在Linux端查看也是IKE SA建立失败。

                在VSR上进行debug,发现有报错,提示“No HASH in notification payload.”,翻译一下就是说通知有效负载中没有HASH。

                然后抓包看一下。

                我们发现DH组和生命周期信息还是存在一些差异,修改strongSwan的算法配置为ike = aes128-sha256-modp1024,对应的,调整VSR中ike proposal的DH组为2(1024-bit),命令dh group2。同时调整strongSwan的ikelifetime为86400(1天)。

                  ike = aes128-sha256-modp1024
                  ikelifetime=86400

                  再次触发一下,通了!

                  查看VSR上相关的SA信息。

                  查看strongSwan的相关状态信息。

                  报文交互也是正常。

                  看来strongSwan和H3C的IPsec对接也不难啊!

                  最后给一份完整的设备配置。

                    cat /etc/strongswan/ipsec.conf
                      conn swan
                       authby = psk
                       keyexchange=ikev1
                       left=12.1.1.1
                       leftid=12.1.1.1
                       leftsubnet=11.1.1.0/24
                       right=12.1.1.2
                       rightid=12.1.1.2
                       rightsubnet=22.1.1.0/24
                       auto=route
                       ike = aes128-sha256-modp1024
                       esp = aes128-sha256
                       ikelifetime=86400
                        cat /etc/strongswan/ipsec.secrets
                          12.1.1.1 12.1.1.2 : PSK swan

                          VSR配置:

                            #
                            interface GigabitEthernet3/0
                            ipsec apply policy swan
                            #
                            acl advanced 3402
                            rule 0 permit ip source 22.1.1.0 0.0.0.255 destination 11.1.1.0 0.0.0.255
                            #
                            ipsec transform-set swan
                            esp encryption-algorithm aes-cbc-128
                            esp authentication-algorithm sha256
                            #
                            ipsec policy swan 10 isakmp
                            transform-set swan
                            security acl 3402
                            local-address 12.1.1.2
                            remote-address 12.1.1.1
                            ike-profile swan
                            #
                            ike profile swan
                            keychain swan
                            local-identity address 12.1.1.2
                            match remote identity address 12.1.1.1 255.255.255.0
                            proposal 10
                            #
                            ike proposal 10
                            encryption-algorithm aes-cbc-128
                            dh group2
                            authentication-algorithm sha256
                            #
                            ike keychain swan
                            pre-shared-key address 12.1.1.1 255.255.255.0 key simple swan

                            挺简单的,不是吗?


                            打赏

                            本文链接:https://www.kinber.cn/post/3455.html 转载需授权!

                            分享到:


                            推荐本站淘宝优惠价购买喜欢的宝贝:

                            image.png

                             您阅读本篇文章共花了: 

                            群贤毕至

                            访客