帮助中心

立即注册 咨询客服

当前位置:首页 > 帮助中心> 如何在CentOS / RHEL 8上使用Strongswan设置基于IPsec的VPN

如何在CentOS / RHEL 8上使用Strongswan设置基于IPsec的VPN

发布时间:2020年04月02日 08:53:36    来源: A5互联

在本文中,您将了解到如何在CentOS / RHEL 8服务器上使用strongSwan设置站点到站点IPsec VPN网关。这使对等方可以使用强大的预共享密钥(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.首先在两个VPN网关上的/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帮助页面。