如何在CentOS / RHEL 8上使用Strongswan设置基于IPsec的
在本文中,您将了解到如何在CentOS / RHEL 8服务器上使用strongSwan设置站点到站点IPsec 网关。这使对等方可以使用强大的预共享密钥(PSK)相互进行身份验证。站点到站点的设置意味着每个安全网关后面都有一个子网。
测试环境
在遵循建议的同时,不要忘记在配置过程中使用您的真实IP地址。
站点1网关
公用IP:192.168.56.7
专用IP:10.10.1.1/24
专用子网:10.10.1.0/24
站点2网关
公用IP:192.168.56.6
专用IP:10.20.1.1/24
专用子网:10.20.1.0/24
步骤1:在CentOS 8中启用内核IP转发
1.首先在两个网关上的/etc/sysctl.conf配置文件中启用内核IP转发功能。
# vi /etc/sysctl.conf
将这些行添加到文件中。
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0
2.将更改保存到文件中后,运行以下命令以在运行时加载新的内核参数。
# sysctl -p
3.接下来,在两个安全网关上的文件/ etc / sysconfig / network-scripts / route-eth0中创建永久静态路由。
# vi /etc/sysconfig/network-scripts/route-eth0
在文件中添加以下行。
#Site 1 Gateway
10.20.1.0/24 via 192.168.56.7
#Site 2 Gateway
10.10.1.0/24 via 192.168.56.6
4.然后重新启动网络管理器以应用新的更改。
# systemctl restart NetworkManager
步骤2:在CentOS 8中安装strongSwan
5.该strongswan包在所提供的EPEL库。要安装它,您需要启用EPEL存储库,然后在两个安全网关上都安装Strongwan。
# dnf install epel-release
# dnf install strongswan
6.要检查两个网关上安装的Strongswan版本,请运行以下命令。
# strongswan version
7.接下来,启动Strongswan服务,并使它在系统启动时自动启动。然后在两个安全网关上验证状态。
# systemctl start strongswan
# systemctl enable strongswan
# systemctl status strongswan
注:CentOS/REHL 8中最新版本的strongswan支持swanctl(一种新的、可移植的命令行实用工具,由strongswan 5.2.0引入,用于使用vici插件配置、控制和监控IKE守护进程Charon)和starter(或ipsec)实用工具,后者使用了不推荐的stroke插件。
8.主配置目录是/ etc / strongswan /,其中包含两个插件的配置文件:
# ls /etc/strongswan/
对于本建议,我们将使用IPsec实用程序,该实用程序是通过Strongswan命令和Stroke接口调用的。因此,我们将使用以下配置文件:
/etc/strongswan/ipsec.conf – strongSwan IPsec子系统的配置文件。
/etc/strongswan/ipsec.secrets –机密文件。
步骤3:配置安全网关
9.在此步骤中,您需要使用/etc/strongswan/ipsec.conf strongswan配置文件在每个站点的每个安全网关上配置连接配置文件。
配置站点1连接配置文件
# cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
# vi /etc/strongswan/ipsec.conf
将以下配置复制并粘贴到文件中。
config setup
charondebug="all"
uniqueids=yes
conn ateway1-to-gateway2
type=tunnel
auto=start
keyexchange=ikev2
authby=secret
left=192.168.56.7
leftsubnet=10.10.1.1/24
right=192.168.56.6
rightsubnet=10.20.1.1/24
ike=aes256-sha1-modp1024!
esp=aes256-sha1!
aggressive=no
keyingtries=%forever
ikelifetime=28800s
lifetime=3600s
dpddelay=30s
dpdtimeout=120s
dpdaction=restart
配置站点2连接配置文件
# cp /etc/strongswan/ipsec.conf /etc/strongswan/ipsec.conf.orig
# vi /etc/strongswan/ipsec.conf
将以下配置复制并粘贴到文件中:
config setup
charondebug="all"
uniqueids=yes
conn 2gateway-to-gateway1
type=tunnel
auto=start
keyexchange=ikev2
authby=secret
left=192.168.56.6
leftsubnet=10.20.1.1/24
right=192.168.56.7
rightsubnet=10.10.1.1/24
ike=aes256-sha1-modp1024!
esp=aes256-sha1!
aggressive=no
keyingtries=%forever
ikelifetime=28800s
lifetime=3600s
dpddelay=30s
dpdtimeout=120s
dpdaction=restart
让我们简要描述上面的每个配置参数:
config setup –定义适用于所有连接的IPSec的常规配置信息。
charondebug –指定应记录多少Charon调试输出。
uniqueids –定义特定的参与者ID是否应保持唯一。
conn gateway1-to-gateway2 –用于设置连接名称。
type –定义连接类型。
Auto –用于声明启动或重新启动IPSec时如何处理连接。
keyexchange –声明要使用的IKE协议的版本。
authby –指定对等方应如何相互认证。
left –声明左参与者的公共网络接口的IP地址。
leftsubnet –在左参与者后面声明私有子网。
right –声明正确参与者的公共网络接口的IP地址。
rightsubnet –在左参与者后面声明私有子网。
ike –用于声明要使用的IKE / ISAKMP SA加密/认证算法的列表。请注意,这可以是逗号分隔的列表。
esp –指定用于连接的ESP加密/认证算法的列表。
aggressive –声明使用进阶还是主模式。
keyingtries –声明协商连接的尝试次数。
ikelifetime –指定重新协商连接的密钥通道之前应持续多长时间。
lifetime –指定特定的连接实例应从成功协商到到期的持续时间。
dpddelay –声明将R_U_THERE消息/信息交换发送到对等方的时间间隔。
dpdtimeout –用于声明超时间隔,在此间隔之后,如果不活动,将删除与对等方的所有连接。
dpdaction –指定如何使用Dead Peer Detection(DPD)协议来管理连接。
通过阅读ipsec.conf手册页,可以找到strongSwan IPsec子系统的所有配置参数的描述。
# man ipsec.conf
步骤4:配置PSK以进行对等身份验证
10.接下来,您需要生成一个强大的PSK,以供对等方用于身份验证,如下所示。
#head -c 24 / dev / urandom | base64
11.在两个安全网关上的/etc/strongswan/ipsec.conf文件中添加PSK 。
# vi /etc/strongswan/ipsec.secrets
在文件中输入以下行。
#Site 1 Gateway
192.168.56.7 192.168.56.6 : PSK "0GE0dIEA0IOSYS2o22wYdicj/lN4WoCL"
#Site 1 Gateway
192.168.56.6 192.168.56.7 : PSK "0GE0dIEA0IOSYS2o22wYdicj/lN4WoCL"
12.然后启动Strongsan服务并检查连接状态。
# systemctl restart strongswan
# strongswan status
检查Strongswan连接
13.通过运行ping命令测试是否可以从任一安全网关访问专用子网。
# ping 10.20.1.1
# ping 10.10.1.1
Ping安全网关
14.最后,要了解更多有关手动启动/关闭连接的strongswan命令,可使用# strongswan --help,查阅strongswan帮助页面。