构建Graviton2处理器的Amazon Linux 2平台的openswan 3.0软件包

一、背景

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

即可完成安装。