我正在尝试在运行 Fedora Server 35 的 VPS 上设置 OpenVPN 服务器。我已设置 VPN 并正常工作,但遇到了防火墙设置问题。
这是我第一次管理防火墙,而且我也不是 Linux 本地人,但我正在努力学习。我遵循了 CentOS 实例的指南,但由于 CentOS 已不再存在,所以我选择了 Contabo 中的 Fedora 映像。
该指南依赖于firewalld
,并且由于它已经安装并在我的 VPS 上进行了部分设置,因此我也做了同样的事情。我知道这firewalld
就是问题所在,因为当我关闭它时,VPN 客户端可以正常连接。
配置了 2 个活动区域,FedoraServer
并且trusted
。该FedoraServer
区域预先配置了 VPS 映像,并且被设置为默认区域。我按照指南使用以下命令来更改配置:
firewall-cmd --zone=trusted --add-service openvpn
firewall-cmd --zone=trusted --add-service openvpn --permanent
firewall-cmd --add-masquerade
firewall-cmd --add-masquerade --permanent
VAR=$(ip route get 1.1.1.1 | awk 'NR==1 {print $(NF-2)}')
firewall-cmd --permanent --direct --passthrough ipv4 -t nat -A POSTROUTING -s 10.8.0.0/24 -o $VAR -j MASQUERADE
firewall-cmd --reload
当前区域信息如下:
[~]# firewall-cmd --info-zone=FedoraServer
FedoraServer (active)
target: default
icmp-block-inversion: no
interfaces: eth0
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
forward: no
masquerade: yes
forward-ports:
source-ports:
icmp-blocks:
rich rules:
[~]# firewall-cmd --info-zone=trusted
trusted (active)
target: ACCEPT
icmp-block-inversion: no
interfaces: tun0
sources:
services: openvpn
ports:
protocols:
forward: yes
masquerade: yes
forward-ports:
source-ports:
icmp-blocks:
rich rules:
有趣的是,当我设置trusted
为默认区域时,我能够连接到正在firewalld
运行的 VPN、NAT 工作并可以访问互联网。
现在,你可以说问题解决了。但由于我缺乏知识,我担心我可能会在安全方面留下漏洞,因为该trusted
区域使用target: ACCEPT
.
我在 StackExchange、Fedora 论坛和 OpenVPN 论坛上阅读了无数的帖子以及firewalld
文档,但没有任何结果。我觉得我缺少底层的网络知识来解决这个问题,而且我不知道该搜索什么。
任何帮助、提示或指导将不胜感激!