OpenVPN 的防火牆配置

OpenVPN 的防火牆配置

我正在嘗試在運行 Fedora Server 35 的 VPS 上設定 OpenVPN 伺服器。

這是我第一次管理防火牆,而且我也不是 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文檔,但沒有任何結果。我覺得我缺少底層的網路知識來解決這個問題,而且我不知道該搜尋什麼。

任何幫助、提示或指導將不勝感激!

答案1

您可以將服務新增至受信任區域,然後將接受度變更為丟棄例如僅允許 openvpn 和 ssh,您可以這樣

sudo firewall-cmd --zone=trusted --add-service={ssh,openvpn}
sudo firewall-cmd --zone=trusted --set-target=DROP
sudo firewall-cmd --reload

答案2

看來您走在正確的道路上,並且在 Fedora 35 上配置 OpenVPN 伺服器方面取得了良好的進展。

讓我們解決您的疑慮並提供一些指導:

預設區域:

出於不同的目的設置不同的區域是很常見的。如果將受信任的區域設為預設區域可以讓您的 VPN 正常運作,那就沒問題。但是,您正確地指出了對目標的擔憂:接受。在更安全的配置中,您希望僅限制對必要服務的存取。

Fedora 伺服器專區:

如果您想使用 FedoraServer 區域作為預設區域,則需要確保它允許 OpenVPN 所需的流量。您已經提到,當將受信任設為預設值時,OpenVPN 才能運作,因此比較兩個區域之間的設定可能會有所幫助。調整FedoraServer區域:

如果您決定使用 FedoraServer 區域作為預設區域,則需要新增規則以允許 OpenVPN 流量。例如:

防火牆cmd --zone=FedoraServer --add-service=openvpn --permanent 防火牆-cmd --reload

相關內容