• strongSwan对接H3C


    strongSwan是一个开源的基于IPsec的VPN解决方案,经过前面几篇文章的铺垫,今天终于可以测试strongSwan和华三设备的对接情况了。

    strongSwan的默认安装路径是/etc/strongswan/,这里面比较重要的就是ipsec.conf和ipsec.secrets这两个配置文件了。这两个文件的配置已经指导过了,有需要的小伙伴可以参考()和()。

    对组网拓扑稍作调整,用一台华三VSR替换掉Linux2主机,使Linux服务器和VSR直接对接,如下图所示:

    在(文章)中,我们已经对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

    挺简单的,不是吗?

  • 相关阅读:
    利用Jmeter做接口测试(功能测试)全流程分析
    Python垃圾回收和GC模块
    mybatis查询PostgreSQL报错:无法确定参数 $1 的数据类型
    一文5000字从0到1使用Jmeter实现轻量级的接口自动化测试(图文并茂)
    java基于springboot+nodejs+vue网上投标招标系统ssm项目介绍
    Spring使用RestTemplate返回的嵌套实体对象为空,转换json报错
    作为一名普通的java程序员,我想和大家分享一下4年来的工作内容
    高性能 MySQL(十二):分区表
    module ‘torch‘ has no attribute ‘_six‘
    企业级日志分析系统ELK(如果事与愿违那一定另有安排)
  • 原文地址:https://blog.csdn.net/gtj0617/article/details/126033511