Linux配置strongSwan

简介: Linux配置strongSwan

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


通过上次的配置,我们现在已经有配置strongSwan的环境了,就是两台开启了IP转发功能的Linux主机。

1677234376680.jpg

安装strongSwan


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

yum install -y strongswan

1677234397531.jpg

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

1677234410391.jpg

 

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

1677234416003.jpg

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

1677234425768.jpg


配置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就是对应的私网网段,如果有多个,用逗号隔开就行了,如果要指定端口号,就写到方括号里面,在(配置)中已经介绍过了。

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);第二阶段就是快速模式(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

1677234581910.jpg

同理,配置主机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测试。

1677234613458.jpg

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

strongswan status

1677234627842.jpg

strongswan statusall

1677234640807.jpg

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

相关文章
|
7月前
|
安全 Linux 开发工具
【Linux】vim使用与配置教程
Vim是一款功能强大的文本编辑器,广泛应用于Linux环境,是开发者和系统管理员的必备工具。本文介绍了Vim的基本操作与简单配置,涵盖命令模式、插入模式和底行模式的使用方法,以及光标定位、复制粘贴、搜索替换等常用技巧。同时,文章还提供了实用的分屏操作和代码注释方法,并分享了通过`.vimrc`文件进行个性化配置(如显示行号、语法高亮、自动缩进等)的技巧,帮助用户提升文本编辑效率。掌握这些内容,能让Vim更好地服务于日常工作与开发需求。
450 3
|
5月前
|
关系型数据库 MySQL Java
安装和配置JDK、Tomcat、MySQL环境,以及如何在Linux下更改后端端口。
遵循这些步骤,你可以顺利完成JDK、Tomcat、MySQL环境的安装和配置,并在Linux下更改后端端口。祝你顺利!
355 11
|
4月前
|
Linux 网络安全 开发工具
在Linux下配置gitee与Github的远程仓库
注意,git push后,是输入你的账号与密码。这个步骤可以通过特殊设置省去,但是一开始还是不要太省。
198 0
|
6月前
|
安全 Linux 网络安全
在Linux(CentOS和AWS)上安装更新的git2的方法并配置github-ssh
经过以上这些步骤,你现在就能在GitHub上顺利往返,如同海洋中的航海者自由驰骋。欢迎你加入码农的世界,享受这编程的乐趣吧!
222 10
|
7月前
|
Java Linux 应用服务中间件
在Rocky Linux 9上安装JDK并配置环境变量!
本教程介绍在Rocky Linux 9上安装JDK并配置环境变量的完整步骤。首先更新系统,清理旧版本JDK相关包及残留文件,确保环境干净。接着搜索并安装所需版本的JDK(如OpenJDK 17),验证安装是否成功。然后查找JDK安装路径,配置全局环境变量`JAVA_HOME`和`PATH`,最后验证环境变量设置。按照此流程操作,可顺利完成Java开发环境搭建,支持多版本切换(如JDK 8/11/17)。生产环境请谨慎操作,避免影响现有服务。
1070 21
|
6月前
|
人工智能 Kubernetes Ubuntu
linux配置IP
linux配置IP
516 1
|
7月前
|
监控 Shell Linux
Android调试终极指南:ADB安装+多设备连接+ANR日志抓取全流程解析,覆盖环境变量配置/多设备调试/ANR日志分析全流程,附Win/Mac/Linux三平台解决方案
ADB(Android Debug Bridge)是安卓开发中的重要工具,用于连接电脑与安卓设备,实现文件传输、应用管理、日志抓取等功能。本文介绍了 ADB 的基本概念、安装配置及常用命令。包括:1) 基本命令如 `adb version` 和 `adb devices`;2) 权限操作如 `adb root` 和 `adb shell`;3) APK 操作如安装、卸载应用;4) 文件传输如 `adb push` 和 `adb pull`;5) 日志记录如 `adb logcat`;6) 系统信息获取如屏幕截图和录屏。通过这些功能,用户可高效调试和管理安卓设备。
|
8月前
|
Linux Shell
问题记录:解决Linux登录故障,/etc/passwd配置受损该怎么操作
修复/etc/passwd文件是解决Linux登录故障的重要步骤。通过进入单用户模式、挂载文件系统、恢复或手动修复/etc/passwd文件,可以有效解决该问题。保持定期备份系统配置文件是预防此类问题的最佳实践。
238 13
|
8月前
|
Linux Shell
问题记录:解决Linux登录故障,/etc/passwd配置受损该怎么操作
修复/etc/passwd文件是解决Linux登录故障的重要步骤。通过进入单用户模式、挂载文件系统、恢复或手动修复/etc/passwd文件,可以有效解决该问题。保持定期备份系统配置文件是预防此类问题的最佳实践。
237 5
|
10月前
|
Ubuntu Unix Linux
Linux网络文件系统NFS:配置与管理指南
NFS 是 Linux 系统中常用的网络文件系统协议,通过配置和管理 NFS,可以实现跨网络的文件共享。本文详细介绍了 NFS 的安装、配置、管理和常见问题的解决方法,希望对您的工作有所帮助。通过正确配置和优化 NFS,可以显著提高文件共享的效率和安全性。
1988 7