strongSwan长期安装笔记

前言

由于国家防火墙的不断升级,目前仅存的可访问诸如google.com的方式已经屈指可数,IKEv2由于使用证书加密依然能提供相对较高且比较稳定的速度,strongSwan是一个比较广泛的可提供IKEv2转发的软件服务。

去年2月,通过笔者Quericy前辈的教程,一键安装了5.51版本,但是此后再无更新,而strongSwan已经发布了5.63版本。由于对目前版本的不满意,以及准备更换KVM格式的VPS开BBR加速,便考虑了自主寻找安装配置strongSwan的方式。

索性,也是相当无奈的,bandwagon并不提供OpenVZ至KVM的转换,并且也已经超过了退款日期,于是笔者打算今年晚些时候再去购买一台新的VPS,再进行新版本strongSwan的搭建。在此之前,有相当充足的时间供阅读strongSwan的文档及查询问题。

计划

strongSwan,强壮天鹅,程序也如其名,官网提供了安装包,已经支持了目前大多数的系统,具体大致如下:

笔者对目前常用的系统为CentOS,如果不出意外,将来的安装方式也仅以此为例。

当前strongSwan的最新版本为5.6.3,官方在CentOS6中提供5.4.0的一键安装,在CentOS7提供5.6.2的安装,已经比较接近最新版本。笔者打算在腾讯云服务器搬家完成后,将其重装,进行测试安装,并记录安装过程。虽然目前仍有部分未搬迁完成,但并不妨碍测试安装的进行。

历程

根据目前官网提供的安装方式,需要先更新源。官方简单粗暴的扔了一个网站,但具体文件还是需要些时间寻找。

通过wget命令下载此文件:

wget http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-11.noarch.rpm

安装源:

rpm -Uvh epel-release-7-11.noarch.rpm

安装strongSwan:

yum install strongswan

至此strongSwan已经安装完成了,相对于编译安装,这种方式明显更简单,但具体是否影响使用还有待考证。

然后我像之前样输入以下代码,查看版本:

ipsec version

返回结果是找不到命令,查阅用户文档后才发现,程序命令已经换为其软件本名,原文如下:

While the ipsec.conf configuration file is well suited to define IPsec related configuration parameters, it is not useful for other strongSwan applications to read options from this file. The file is hard to parse and only ipsec starter is capable of doing so. As the number of components of the strongSwan project is continually growing, we needed a more flexible configuration file that is easy to extend and can be used by all components. The new configuration format consists of hierarchical sections and a list of key/value pairs in each section. Starting with the strongSwan 4.2.1release, a default strongswan.conf file is installed in your sysconfdir, e.g. /etc/strongswan.conf.

2018/5/30

于是,问题来了,接下来要做什么?

如文档所描述,强壮天鹅能提供的功能相当的多,仅场景应用就有400多,翻了翻文档可能还是需要学学专业课。那么好吧,先暂时停止一下转发功能的实现,多学习了解一下计算机网络。

《计算机网络》这本课本,基本是把虚拟专用网络该用到的理论都写在了书上,笔者之前考研时也有摸鱼看完了所有相关内容。课本上有提到IKEv2协议,但并没有详细讲解。根据其实现方式,笔者推测应当是非对称加密。

对于未来的一段时间内,笔者会多多学习此方面的内容,再逐渐结合一下实践,争取独立完成strongSwan的配置。

2018/5/31

今天才明白,原来iptables服务除了当作防火墙,还能做转发,充当NAT服务器,CentOS7上与此对应的Firewall服务也具备相同的功能。这就理解了为什么当初手动安装时,没配置防火墙,只能链接但上不去网的现象。

同时笔者在思考如下一件事情的可行性:

  • 如果将Quericy前辈的一键安装脚本中strongSwan的安装包链接替换成最新版的,安装是否可以顺利进行。

下载脚本:

wget –no-check-certificate https://raw.githubusercontent.com/quericy/one-key-ikev2-vpn/master/one-key-ikev2.sh

笔者尝试寻找脚本中有关strongSwan的链接,发现其是通过一个函数对版本进行寻找,大概在40%的位置,将原本的5.5.1修改成5.6.3,并在腾讯云的CentOS7的服务器上进行测试。

授权:

chmod +x one-key-ikev2.sh

运行脚本:

bash one-key-ikev2.sh

经过了几次调整,strongSwan得以成功安装,并且生成了证书,但有关虚拟专用网络的三个服务均没有开启。

根据猜测笔者认为有可能是如下原因(按可能性排序):

  1. strongSwan版本变动导致先前针对5.5.1的配置不能照搬操作;
  2. 笔者这台腾讯云主机上安装的软件过于繁多,修改过很多系统配置,对strongSwan的服务配置产生影响;
  3. Quericy前辈的脚本针对CentOS7.X有bug。
2018/6/1

今日进行了两次尝试,都是在腾讯云CentOS6.8下进行的。

首先是通过修改脚本中StrongSwan版本进行安装,安装成功并且可以连接,但不能访问任何网页,ping也是不通的。

怀疑是版本问题,便重装系统进行原脚本运行,但效果同上次相同。

笔者猜测是腾讯云主机不适配StrongSwan的代理服务,或者KVM与OpenVZ之间选择有误。

2018/6/25


7月6日当天,公司摸鱼日,直接去搬瓦工买了一个KVM的VPS,本着死马当活马医的原则,尝试了两次安装。

系统直接选择了搬瓦工CentOS6.8已开启bbr的版本,首先进行了一次原版本安装,尝试启动StrongSwan服务的时候,仅有一条

Starting strongSwan 5.5.1 IPsec [starter]…

不同于之前OpenVZ上弹出的

no netkey IPsec stack detected
no KLIPS IPsec stack detected
no known IPsec stack detected, ignoring!

但通过VPS访问外网是完全没问题的,方才明白这并不是三项服务,正确的安装本不该弹出如上的三条提醒。

然后笔者又如同上图一样对脚本文件进行了修改,并再次安装,同样可以完美上网。

但实际效果并不是非常尽人意,通过两个VPS之间观看4K视频的对比,KVM并没有比OpenVZ有多少提升,速度在同一数量级。

7月12日当天,上午,公司摸鱼日又进行了一次腾讯云服务器上的5.6.3安装,同样可以安装成功并代理上网。

至此最新版的StongSwan算是安装成功了,以后会整理一个手札方便日后安装。

但这个笔记仍未完结,因为当前尚未能解决的问题还是CentOS7.X上的StrongSwan安装问题。

2018/7/12