一、背景
Openswan是用于构建site-to-site VPN服务的开源软件。Openswan历史较长,在主流Linux发行版上一般没有软件安装源,无法通过yum install一步执行安装。由此需要手工编译源代码,比较麻烦。
作为替代方案,可使用libreswan,这是一个从openswan 2.6版本fork出来的分支,在Amazon Linux 2(等同CentOS7)系统上有软件源,可以使用yum install libreswan
安装。
However,libreswan的配置和参数与openswan有细微差别,例如不支持auth=esp
等参数。由此,在与AWS托管的VPN网关对接时候,生成的配置文件还需要再做人工调整,以消除openswan和libreswan的配置差异。
由此本文将构建一个基于Graviton2处理器的Amazon Linux 2平台的openswan 3.0软件包,可用于在新的EC2上快速安装部署而无需从源代码编译。
二、rpm构建环境安装
启动一台使用Graviton 2处理器的Amazon Linux 2的EC2实例,选择EC2规格是T4g.small。执行如下命令将系统升级到最新,并重启系统以使用最新的内核加载。
yum update -y
reboot
安装依存性包:
yum install rpm-build rpm-level gcc gmp-devel bison flex xmlto links nss-devel nspr-devel -y
从openswan官网的github中下载源代码包,文件名叫做Openswan-3.0.0.tar.gz。
这里有个小问题,官网下载的文件包,首字母是大写的,因此需要重新解压缩并打包下才能继续制作rpm。执行如下命令:
tar zxvf Openswan-3.0.0.tar.gz
mv Openswan-3.0.0 openswan-3.0.0
tar zcvf openswan-3.0.0.tar.gz openswan-3.0.0
mv openswan-3.0.0.tar.gz /root/rpmbuild/SOURCES
cp openswan-3.0.0/packaging/rhel7/openswan.spec /root/rpmbuild/SPECS
三、构建rpm包
执行如下命令:
rpmbuild -ba /root/rpmbuild/SPECS/openswan.spec
即可获取两个主要文件:
- rpm 文件:/root/rpmbuild/RPMS/aarch64/openswanX-3.0.0-2.aarch64.rpm
- srpm文件:/root/rpmbuild/SRPMS/openswanX-3.0.0-2.src.rpm
在新的EC2上安装文件需要使用rpm文件。重新构建rpm包时候需要使用source rpm文件。请将这两个文件复制下来保存好。
四、安装和使用
将rpm文件复制要部署的EC2,执行如下命令:
yum localinstall openswanX-3.0.0-2.aarch64.rpm -y
即可完成安装。