我需要在 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
。