移至主內容
DarkRanger's Secret Area

主導覽

  • 首頁
  • 關於本站
  • Linux
  • 程式開發
  • N900
  • 譯文
  • 資訊技術辭典

文章分類

  • 影劇
  • 遊戲
  • 筆記
  • 雜文
  • 資訊技術
  • 站務訊息

最新內容

  • How-To:Linux 安裝 DevilutionX
  • 於 2012 年建立的一份音樂播放清單
  • How-To:Linux 安裝 Medal of Honor: Allied Assault
  • Fallout 4 (2015)
  • How-To:Linux 安裝 Blood
  • 《終極動員令》系列早期作品原始碼釋出
  • How-To:Linux 安裝 Doom 3
  • Nausicaä of the Valley of the Wind (1984)
  • Intel 內顯與 Linux 桌面死當問題排解
  • 《哥吉拉 -1.0》心得補遺

RHEL 9 與 WireGuard

發表日期:星期五, 02/10/2023 - 19:47

有別於先前的 RHEL/CentOS 7/8,這回 RHEL 9 因為 Linux 內核版本較新(5.14)的緣故,已內建對於 WireGuard 的支援。而無須再找尋第三方套件庫,或者是得動手自行編譯模組。所以同樣的支援狀態也適用於 RHEL 的複製品,如 AlmaLinux 及 Rocky Linux 等。

 

話說 DR 打算利用一部放置在 Amazon EC2 上的 RHEL 9 主機,作為備用的 VPN 伺服器。於是便參照以往在 CentOS 7 及 CentOS Stream 8 上的作業流程來進行設定。其中因為系統已內建 wireguard 模組的緣故,因此已無須再自行安裝模組。然而卻在設定完畢後,遇到了一個問題:WireGuard 客戶端連接伺服器正常,但各個客戶端彼此是無法通訊的。倘若客戶端之間嘗試互 ping,會從伺服器端出現「Packet filtered」的結果。

 

看起來像是被伺服器防火牆擋住了,但比對防火牆設定的內容,卻是看不出問題來,都是沿用先前有效的設定。於是在網路上搜尋了一陣,找到 Red Hat Bugzilla – Bug 2029211 裡的討論。發現主要的差異,是在於 firewalld 防火牆工具自 v1.0.0 以後的變化(Default target is now similar to reject),禁止了以往會被許可的連線。對此情形,有不只一種調整方式,而其中一種可行的解法,是將 WireGuard 網路介面(例如 wg0)加入到 trusted 區域中:

  • firewall-cmd --permanent --zone=trusted --add-interface=wg0
  • firewall-cmd --reload

 

在 WireGuard 伺服器上執行前述指令後,所連接的客戶端就能夠彼此通訊了,而本站的 How-To 文件也已做相應的補充。總結來說,firewalld v1.0.0 算是重大改版,其實在 RHEL 9 發佈以前,已經有先出現在 Fedora 35 上(見 Changes/firewalld-1.0.0)。不過雖然 DR 自己也是 Fedora 使用者,但因為主要是桌面系統的用途,所以恐怕也是沒什麼機會能夠預先發覺到此問題。

 

筆記