在 CentOS 7 上使用 StrongSwan 5.7.2 建立 IPSec VPN 连接,可以按照以下步骤进行配置:
准备3台服务器:
A:192.168.3.209,私网172.18.1.0/24
B:192.168.3.29,私网172.18.2.0/24
C:192.168.3.154,私网10.10.10.0/24
目标如下:
A与B的2个私网网段相互通信,
A与C的2个私网网段相互通信,
B与C的2个私网网段不能通信
1. 安装 StrongSwan 软件包:在两台 CentOS 7 服务器上都需要安装 StrongSwan 软件包。可以使用以下命令安装 StrongSwan:
sudo yum install strongswan
2. 3台服务器都配置路由转发
vi /etc/sysctl.confnet.ipv4.ip_forward = 1
net.ipv4.conf.all.accept_redirects = 0
net.ipv4.conf.all.send_redirects = 0sysctl -p
3. 配置服务器 A:在服务器 A 上,编辑 StrongSwan 的配置文件 `/etc/ipsec.conf`,并添加以下内容:
#编辑 StrongSwan 的配置文件 `/etc/ipsec.conf`,并添加以下内容:
[root]# cat ipsec.conf
config setup# strictcrlpolicy=yes# uniqueids = no
conn swanleft=192.168.3.209leftsubnet=172.18.1.0/24right=192.168.3.29rightsubnet=172.18.2.0/24authby=secretauto=startconn swan2left=192.168.3.209leftsubnet=172.18.1.0/24right=192.168.3.154rightsubnet=10.10.10.0/24authby=secretauto=start
#其中,`left` 是本地服务器的 IP 地址,`right` 是远程服务器的 IP 地址。`leftsubnet` 是本地服务器的子网地址,`rightsubnet` 是远程服务器的子网地址。`authby` 指定使用的认证方式,这里使用预共享密钥。`auto` 指定 StrongSwan 自动启动该连接。#然后,编辑 StrongSwan 的预共享密钥文件 `/etc/ipsec.secrets`,并添加以下内容:[root]# cat ipsec.secrets
# ipsec.secrets - strongSwan IPsec secrets file
192.168.3.209 192.168.3.29 : PSK "ffffffff"
192.168.3.209 192.168.3.154 : PSK "ffffffff"#其中,`192.168.1.100` 是本地服务器的 IP 地址,`192.168.2.100` 是远程服务器的 IP 地址。`mysecret` 是预共享密钥。
4.配置服务器 B:在服务器 B 上,执行与服务器 A 相同的步骤,但是需要将 `left` 和 `right` 的值交换。例如,在 `/etc/ipsec.conf` 文件中
[root]# cat ipsec.conf
# ipsec.conf - strongSwan IPsec configuration file# basic configurationconfig setup# strictcrlpolicy=yes# uniqueids = no# Add connections here.# Sample VPN connections#conn sample-self-signed
# leftsubnet=10.1.0.0/16
# leftcert=selfCert.der
# leftsendcert=never
# right=192.168.0.2
# rightsubnet=10.2.0.0/16
# rightcert=peerCert.der
# auto=start#conn sample-with-ca-cert
# leftsubnet=10.1.0.0/16
# leftcert=myCert.pem
# right=192.168.0.2
# rightsubnet=10.2.0.0/16
# rightid="C=CH, O=Linux strongSwan CN=peer name"
# auto=startconn swanleft=192.168.3.29leftsubnet=172.18.2.0/24right=192.168.3.209rightsubnet=172.18.1.0/24authby=secretauto=start
[root]# cat ipsec.secrets
# ipsec.secrets - strongSwan IPsec secrets file
192.168.3.29 192.168.3.209 : PSK "ffffffff"
5.配置服务器 C:在服务器 B 上,执行与服务器 A 相同的步骤,但是需要将 `left` 和 `right` 的值交换。例如,在 `/etc/ipsec.conf` 文件中
[root]# cat ipsec.conf
# ipsec.conf - strongSwan IPsec configuration file# basic configurationconfig setup# strictcrlpolicy=yes# uniqueids = no# Add connections here.# Sample VPN connections#conn sample-self-signed
# leftsubnet=10.1.0.0/16
# leftcert=selfCert.der
# leftsendcert=never
# right=192.168.0.2
# rightsubnet=10.2.0.0/16
# rightcert=peerCert.der
# auto=start#conn sample-with-ca-cert
# leftsubnet=10.1.0.0/16
# leftcert=myCert.pem
# right=192.168.0.2
# rightsubnet=10.2.0.0/16
# rightid="C=CH, O=Linux strongSwan CN=peer name"
# auto=start
conn swan2left=192.168.3.154leftsubnet=10.10.10.0/24right=192.168.3.209rightsubnet=172.18.1.0/24authby=secretauto=start
您在 /var/spool/mail/root 中有新邮件
[root]# cat ipsec.secrets
# ipsec.secrets - strongSwan IPsec secrets file
192.168.3.154 192.168.3.209 : PSK "ffffffff"
6. 各台服务器都启动,注意优先启动A服务器,其次再启动B与C
#启动 StrongSwan 服务:在两台服务器上都启动 StrongSwan 服务,使用以下命令:
sudo systemctl start strongswan
7. 查看链接信息
strongswan statusall
3.209的
3.29的
3.154的
8. 通信检测
A:192.168.3.209,私网172.18.1.0/24
B:192.168.3.29,私网172.18.2.0/24
C:192.168.3.154,私网10.10.10.0/24
在A上可以ping通,B和C的私网
在B上可以ping通A,但是不通C的私网
在C上可以ping通A,但是不通B的私网