09
2023
01
09:50:40

对比华三设备配置,讲解Linux主机如何配置strongSwan



推荐点击下面图片,通过本站淘宝优惠价购买:

image.png

strongSwan是一个开源的基于IPsec的VPN解决方案,最近要用到strongSwan来对接其他系统的IPsec,不能贸然行动,先在Linux环境下测试一下相同环境下如何配置。

通过上次的配置(如果把Linux主机作为路由器转发流量,性能可靠吗?),我们现在已经有配置strongSwan的环境了,就是两台开启了IP转发功能的Linux主机。

安装strongSwan

strongSwan的安装还是很简单的,可以直接从yum仓库安装。

    yum install -y strongswan

    查看一下strongSwan命令,还是很简单的,只有为数不多的命令。

    检查一下软件版本,可以看到使用yum安装的版本为5.7.3,而官网最新版本是5.9.5,应该差别不大吧。

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

    配置strongSwan

    在ipsec.conf配置中,给了一个简单的配置实例。

      conn snt
       left=192.168.0.1
       leftsubnet=10.1.0.0/16
       right=192.168.0.2
       rightsubnet=10.1.0.0/16
       keyingtries=%forever
       auto=add

      简单理解一下,配置文件中的left表示为本端,right表示为对端leftsubnet和rightsubnet就是对应的私网网段,如果有多个,用逗号隔开就行了,如果要指定端口号,就写到方括号里面,在(strongSwan之ipsec.conf配置手册)中已经介绍过了。

        leftsubnet=10.0.0.1[tcp/http],10.0.0.2[6/80]

        keyingtries表示在放弃协商之前应该进行多少次尝试,默认值为3;auto表示IPsec在启动时应自动执行什么操作,add表示加载连接而不启动它。更推荐使用route, 表示加载连接并安装到内核,如果检测到本端子网和对端子网之间的流量,则建立连接

        在回顾一下通过IKE建立IPsec的过程,IKE为IPsec协商建立SA,并把建立的参数交给IPsec,IPsec使用IKE建立的SA对IP报文加密或认证处理。IKE协商分为两个阶段,第一阶段建立IKE SA,协商模式可分为主模式(Main Mode)野蛮模式(Aggressive Mode)第二阶段建立IPsec SA,就是快速模式(Quick Mode)

        第一阶段

        如果是华三路由器,我们在第一阶段要选择协商模式,默认为主模式,strongSwan也一样,如果要使用野蛮模式,要配置aggressive = yes。

        还要配置默认的安全提议,包括认证方式,我们一般配置PSK,但是strongSwan默认是带公钥的密钥,需要修改为PSK,命令为authby=psk。还要配置对端信息,常用配置命令如下:

          #
          ike keychain swan
           pre-shared-key address 12.1.1.2 255.255.255.0 key simple swan
          #
          ike profile swan
           keychain swan
           match remote identity address 12.1.1.2 255.255.255.0

          放到strongSwan中,要配置2个文件,ipsec.secrets中配置预共享密钥。

            vi etc/strongswan/ipsec.secrets
              12.1.1.1 12.1.1.2 : PSK swan

              ipsec.conf中配置认证方式和IKE版本,指定本端和对端身份信息,因为leftid默认是取left的值,所以如果没有特殊要求,可以不必重复配置。

                vi etc/strongswan/ipsec.conf
                  conn swan
                   authby=psk
                   keyexchange=ikev1
                   left=12.1.1.1
                   right=12.1.1.2

                  再一个比较关键的配置就是算法,包括加密算法、验证算法、密钥加密算法。strongSwan中,默认的算法为ike = aes128-sha256-modp3072,其中aes128指aes-cbc-128,为加密算法;sha256就是sha256,为验证算法;modp3072为密钥加密算法。当然,这个可以直接使用默认配置。

                  第二阶段

                  如果是华三路由器,我们在第二阶段要配置IPsec策略的相关信息,比如感兴趣流ACL。在strongSwan中,是通过配置本端私网和对端私网来实现的。

                    #
                    acl advanced 3402
                     rule 0 permit ip source 11.1.1.0 0.0.0.255 destination 22.1.1.0 0.0.0.255

                    在strongSwan中,是通过配置本端私网和对端私网来实现的。

                      conn swan
                       leftsubnet=11.1.1.0/24
                       rightsubnet=22.1.1.0/24

                      然后就是加密模式和加密算法,华三路由器默认的加密模式为ESP,默认是未采用任何加密算法的,需要手工配置。

                        #
                        ipsec transform-set swan
                         esp encryption-algorithm aes-cbc-128
                         esp authentication-algorithm sha1

                        strongSwan默认也是使用ESP,但是不像华三设备一样支持同时使用AH+ESP,仅能使用其中一种,ESP的默认加密算法-验证算法为aes128-sha256。当然,这个也可以直接使用默认配置。

                        再有就是报文封装模式,两者默认都是隧道(tunnel)模式,因为传输(transport)模式不符合使用场景。

                        如果是华三设备,还要再把配置组装一遍,像下面这样。

                          #
                          ipsec policy swan 10 isakmp
                           transform-set swan
                           security acl 3402
                           local-address 192.168.1.216
                           remote-address 192.168.1.143
                           ike-profile swan
                          #
                           interface GigabitEthernet1/0
                           ipsec apply policy swan

                          但是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

                              ipsec.secrets配置文件如下:

                                cat /etc/strongswan/ipsec.secrets
                                  12.1.1.1 12.1.1.2 : PSK swan

                                  验证配置

                                  配置完成之后启动strongSwan服务并使能开机自启。

                                    systemctl start strongswan
                                    systemctl enable strongswan

                                    同理,配置主机Linux2。

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

                                        直接用Host1向Host2发起ping测试。

                                        可以看到,也是丢了第一个包,应该是去出发IKE SA和IPsec SA的建立了。查看strongSwan状态信息。

                                          strongswan status

                                            strongswan statusall

                                            这里面,Security Associations就是安全联盟SA,后面是1的就是一阶段,也就是对应的IKE SA;后面是2的就是二阶段,也就是对应的IPsec SA。


                                            本文链接:https://hqyman.cn/post/3458.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

                                            分享到:





                                            休息一下,本站随机推荐观看栏目:


                                            « 上一篇 下一篇 »

                                            发表评论:

                                            ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

                                            您的IP地址是: