Centos

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

  • November 18, 2018

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

使用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命令。

引用自:https://unix.stackexchange.com/questions/149144