在 Centos 7 上配置 OpenVPN 以使用 Firewalld 而不是 iptables

在 Centos 7 上配置 OpenVPN 以使用 Firewalld 而不是 iptables

我需要在 Centos 7 上使用firewalld.

我在 Centos 6.5 上使用 iptables,只需将以下行添加到/etc/sysconfig/iptables

-A POSTROUTING -s "10.0.0.0/24" -o "wlan0" -j MASQUERADE 
-A FORWARD -p tcp -s 10.0.0.0/24 -d 0.0.0.0/0 -j ACCEPT 
run the command: echo 1 > /proc/sys/net/ipv4/ip_forward 
open port 443.

答案1

使用firewall-cmd命令。

假设您在默认区域上向 OpenVPN 打开防火墙,请执行以下命令。如果您在非默认区域上运行它,请添加--zone=<zone>到命令中。

注意:如果您的外部网络适配器使用默认public区域,那么您的环回接口也可能被伪装(取决于网络适配器的版本)firewalld),如果您正在运行被访问的服务(例如 mySQL),这可能会导致问题本地。

首先,列出当前开放的内容:

# firewall-cmd --list-services
http https ssh

接下来,添加openvpn服务:

# firewall-cmd --add-service openvpn
success

快速检查:

# firewall-cmd --list-services
http https openvpn ssh

以上将允许openvpn工作,您现在可以测试。但是,它不会在重新启动后持续。要使其永久,请添加--permanent选项:

# firewall-cmd --permanent --add-service openvpn`
success

请注意,最后一个命令在下次重新启动之前不会打开端口,因此您需要使用这两个命令。

最后,添加伪装:

# firewall-cmd --add-masquerade
success

并在重新启动后使其永久化:

# firewall-cmd --permanent --add-masquerade
success

确认它:

# firewall-cmd --query-masquerade
yes

请注意,如果您传入的 OpenVPN 连接与面向 Internet 的连接位于不同的区域,则伪装应该位于后者,并且您需要--zone=<zone>在命令中使用该选项--add-masquerade

相关内容