佛跳墙 v
首页 基础设施 CentOS, pfSense: 使用 strongswan 和 pfSense 的站点到站点 VPN 隧道

佛跳墙 v

克利缅特-安德烈耶夫
15.9K观点

我写过很多关于 pfSense 和不同类型 VPN 场景(AWS、Azure)的文章,但从未写过一篇关于使用运行 strongswan 和 pfSense 的 CentOS 的站点到站点 VPN 隧道的文章。 这里描述的情况适用于 CentOS,但也适用于任何其他 Linux 或 BSD 发行版。 strongswan 的语法是一样的,只是不同发行版的配置文件名和位置不同而已。

佛跳墙 v

none
佛跳墙 v
none
佛跳墙 v

佛跳墙 v

我使用的是 CentOS 7。 首先,我们必须安装 strongswan 并暂时禁用防火墙。

yum -y install epel-release yum -y install strongswan systemctl enable strongswan systemctl stop firewalld systemctl disable firewalld

安装后,更改这些系统变量,以便允许 IP 转发并防止 ICMP 重定向。

echo "net.ipv4.ip_forward=1" >> /etc/sysctl.conf echo "net.ipv4.conf.all.accept_redirects=0" >> /etc/sysctl.conf echo "net.ipv4.conf.all.send_redirects=0" >>/etc/sysctl.conf。conf echo "net.ipv4.conf.all.send_redirects=0" >> /etc/sysctl.conf sysctl -p /etc/sysctl.conf

在 CentOS 上,strongswan 将其配置放在/etc/strongswan目录。 我们将使用带有预共享密钥的配置,因为它更容易实现。 因此,编辑/etc/strongswan/ipsec.conf文件,删除其中的所有内容并粘贴此配置。 当然,前提是你的文件中没有任何正在运行的配置。 现在,请看高亮显示的几行。 在这里,你必须用你的值替换 IP 和子网。 例如,第 13 行是 CentOS 服务器的私有 IP,第 14 行是子网,第 15 行是服务器的 ID(IP 或主机名),第 17 行是 pfSense 服务器的外部 IP,第 18 行是子网,第 19 行是 pfSense 服务器的 ID(IP 或主机名)。 这时,上面的小电子表格就派上用场了。

config setup conn %default ikelifetime=60m keylife=20m rekeymargin=3m keyingtries=1 authby=secret keyxchange=ikev2 mobike=no conn net-net left=148.27.56.195 leftsubnet=10.1.96.0/20 leftid=148.27.56.195 leftfirewall=no right=23.183.125.249 rightsubnet=192.168.1.1/24 rightid=23.183.125.249 ike=aes256-sha256-modp2048! esp=aes256-sha256! pfs=no auto=start lifetime=1h

然后,编辑/etc/strongswan/ipsec.secret文件,并指定预共享密钥。 这是服务器用来验证身份的密码。 确保在生产中使用更复杂的密码。 在我的例子中,密码是"秘密“.

none

佛跳墙 v

既然 CentOS 强天鹅盒子已经配置好了,我们就可以配置 pfSense 了。 在 pfSense 中,转到VPN | IPSec然后点击none按钮。 填写一般信息部分,所以看起来像这样。
佛跳墙 v
正如您所看到的,我们使用IKEv2而我们的远程网关是148.27.56.195这就是 CentOS 强天鹅系统。
对于nonenone
佛跳墙 v
从上面的截图中可以看到,这些值与 ipsec.conf 文件中的值一致。
对于高级选项部分,请使用默认值。
佛跳墙 v
点击拯救然后从主IPSec | 隧道菜单,点击添加 P2按钮。
对于第 2 阶段,请填写以下值一般信息节。
佛跳墙 v
更改本地网络远程网络none
对于第 2 阶段建议(SA/密钥交换)部分,选择这些值。
佛跳墙 v
对于高级配置部分,你可以保持原样,或者输入 CentOS 盒子的私有 IP,这样 IPSec 协议就会发送 keep-alive pings。 这不是强制性的,但如果你的隧道经常出现故障,你可以配置这个字段。
佛跳墙 v
点击拯救这样,VPN 配置就完成了。 但是,我们必须告诉 pfSense 允许 IPSec 流量。 因此,从菜单转到防火墙规则并点击IPSec子菜单。 点击添加并填写表格,使其看起来像这样。
佛跳墙 v
......还有这个。
佛跳墙 v
点击拯救并返回 CentOS 操作系统。

佛跳墙 v

此时,您就可以启动 VPN 了。

systemctl start strongswan

如果一切正常,日志将如下所示。

tail -f /var/log/messages Mar 9 16:15:00 titan charon: 09[NET] sending packet: from 148.27.56.195[500] to 23.183.125.249[500] (256 bytes) Mar 9 16:15:00 titan charon: 10[NET] received packet: from 23.183.125.249[500] 到 148.27.56.195[500] (224 字节) Mar 9 16:15:00 titan charon: 10[ENC] 解析了 IKE_AUTH 响应 1 [ IDr AUTH N(ESP_TFC_PAD_N) SA TSi TSr ] Mar 9 16:15:00 titan charon: 10[IKE] 验证 '23.183.125.249' 使用预共享密钥验证成功 Mar 9 16:15:00 titan charon: 10[IKE] IKE_SA net-net[1] 在 148.27.56.195[148.27.56.195]...23.183.125.249[23.183.125.249] Mar 9 16:15:00 titan charon: 10[IKE] scheduling reauthentication in 3350s Mar 9 16:15:00 titan charon: 10[IKE] maximum IKE_SA lifetime 3530s Mar 9 16:15:00 titan charon: 10[IKE] received ESP_TFC_PADDING_NOT_SUPPORTED, not using ESPv3 TFC padding Mar 9 16:15:00 titan charon: 10[CFG] selected proposal: ESP:AES_CBC_256/HMAC_SHA2_256_128/NO_EXT_SEQ Mar 9 16:15:00 titan charon: 10[IKE] CHILD_SA net-net{1} established with SPIs c82fdbae_i ce57b856_o and TS 10.1.96.0/20 === 192.168.1.0/24

检查状态。

strongswan status 安全关联(1 启动,0 正在连接): net-net[3]: ESTABLISHED 3 minutes ago, 148.27.56.195[148.27.56.195]...23.183.125.249[23.183.125.249] net-net{3}: INSTALLED, TUNNEL, reqid 2, ESP SPIs: c818e2d7_i c34c4c3d_o net-net{3}: 10.1.96.0/20 === 192.168.1.0/24

如果当前的 CentOS 不是后面服务器的互联网网关,则必须添加一条静态路由到 pfSense 子网。 因此,在 CentOS 后面的每台服务器上都要这样做。

route add 192.168.1.0 mask 255.255.255.255.0 10.1.96.3 -p

查看其他操作系统的文档。 您必须告诉操作系统使用 10.1.96.3(内部强网关 IP)作为 192.168.1.0 子网的网关。 因为我的 pfSense 盒子也是我的网关,所以我不需要做这些更改。

佛跳墙 v

现在,一切都正常运行,但我们禁用了防火墙,CentOS 盒子暴露在互联网上。 这可不妙。 为了解决这个问题,我们必须做一些更改,允许 IPSec 协议流经防火墙。

#@#systemctl enable firewalld systemctl start firewalld firewall-cmd --set-default-zone=dmz firewall-cmd --zone=dmz --permanent --add-rich-rule='rule protocol value="esp" accept' firewall-cmd --zone=dmz --permanent --add-rich-rule='rule protocol value="ah" accept' firewall-cmd --zone=dmz --permanent --add-port=500/udp firewall-cmd --zone=dmz --permanent --add-port=4500/udp firewall-cmd --permanent --add-service="ipsec" firewall-cmd --zone=dmz --permanent --add-masquerade firewall-cmd --permanent --direct --add-rule ipv4 nat POSTROUTING 0 -m policy --pol ipsec --dir out -j ACCEPT firewall-cmd --reload#@#

......就可以了。

佛跳墙 v

佛跳墙 v

佛跳墙 v
克莱门-胡梅尔卡 2019 年 9 月 23 日 - 上午 4:36

你好、
谢谢你的教程。 我有一个问题。 我的 centos 只有一个网卡(eth0,公共 IP)。 如何连接到 pfsense 网络?
谢谢

克利缅特-安德烈耶夫 2019 年 9 月 23 日 - 下午 12:10

你好,这是用于站点到站点的 VPN 隧道。 您需要的是移动客户端的 VPN 隧道。
查看我的其他职位为此。

佛跳墙 v
马里亚诺-古乔内 2019 年 10 月 31 日 - 上午 11:38

您好,我按照您的说明进行了操作,隧道已经开通,但我无法访问任何描述域,所以我的问题是,我是否需要在 pfsense 中添加任何路由? 我有一个装有 swtrongswan 的 centos 7.5,另一个 DC 有一个 pfesense,我需要建立一个站点到站点的 IPsec。 我漏掉了什么?

非常感谢
谨致问候

克利缅特-安德烈耶夫 2019 年 10 月 31 日 - 下午 2:29

不,您不需要 pfSense 中的任何路由。 您只需更改防火墙,允许 IPSec 流量。 请尝试禁用 CentOS 一侧的防火墙。 此外,请尝试禁用 CentOS 后面实例的防火墙,看看能否从 pfSense ping 到它。

佛跳墙 v

本网站使用 cookie 改善您的体验。 我们假定您可以接受,但如果您愿意,也可以选择退出。接受 阅读更多

设ssr星际加速器官网ssr和ssvpn极速电脑如何上推特
韩国代理ip购买代理ip技术代理获取ip美国免费ip地址代理稳定的ip代理推荐国外ip代理地址国外ip代理安卓版日本代理ip地址免费的代理ip日本代理ip酷通加速器vip破解ip代理服务器软件ip代理软件免费在线代理ipip代理工具ip代理服务器动态代理ip服务器好的ip代理软件免费代理ip接口佛跳墙 v佛跳墙pc版破解佛跳墙最新破解版佛跳墙官方网下载佛跳墙电脑版破解佛跳墙app官网佛跳墙 破解版佛跳墙npc佛跳墙怎么下载不了佛跳墙vbn佛跳墙是佛跳墙pc破解佛跳墙翻墙官网佛跳墙v官网佛跳墙连不上电脑佛跳墙佛跳墙下载好怎么安装佛跳墙连接不上佛跳墙apk百度云