簡單的「防火牆」設定,只是開個埠讓外界電腦可以連入,但是不能限制連入的電腦。以前有個軟體 FWBuilder 很好用,後來 Fedora 的「防火牆」改用 firewalld 以取代 IPTable 後,firewalld 附帶的編輯器愈來愈完整,設「分享器」也很方便。漸漸地 FWBuilder 也被從 Fedora 的「套件資料庫」中移除。
最近,除了 SSH 的埠(也換了埠號)外,也要開其它埠給別的「服務」使用(給不會設定 SSH 隧道的使用者),就要限制連入電腦的網路位址(IP address)。在 fieewall-config 中有個「豐富規則」(Rich Rules)的設定分頁,就是為了這個用途。
一、開啟「防火牆」設定程式 firewall-config
由「程式選單」的《系統》→《管理》→點選「防火牆」開啟 firewall-config,若不是以 root 權限開啟需要經過認證程序。在「界域」(Zones)分頁中點選欲設定「豐富規則」的「界域」名稱,再在右方設定項目的分頁點選「豐富規則」的分頁。第一次設定時看到的應該是空白,按下方【✚加入(A)】鈕設定一個新的規則。
二、設定「豐富規則」
假設欲設定之規則為:『接受』由網路位址 123.45.67.80 ~ 123.45.67.87 這些電腦,使用 IPv4 連入 HTTP 伺服器 (網址 123.45.67.100) 的連線,連線時在 /etc/log/message 中會記錄一段訊息,其前綴為『HTTP: 』。按【確定】鈕後,應該就會生效,但是仍無法連線。
三、設定成功,卻無作用?
剛開始以為是設定輸入時錯誤,所以不成功,用文字命令查詢「防火牆」的設定,[root@Core-i7 ~]# firewall-cmd --list-all上例的查詢結果中,rich rules: 項目下所列的「豐富規則」並無 accept 這個字,也就是說剛才「豐富規則」設定畫面中的 accept 這個設定,並沒有被設定成功,可能是 firewall-config 的程式錯誤。用文字命令增加豐富規則,同樣的規則設定為
public (active)
target: default
icmp-block-inversion: no
interfaces: enp2s0
sources:
services: mdns
ports: 5566/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule family="ipv4" source address="123.45.67.80/24" destination address="123.45.67.100/32" service name="http" log prefix="HTTP: " level="info"
[root@Core-i7 ~]# firewall-cmd --add-rich-rule='rule family="ipv4" source address="123.45.67.80/24" destination address="123.45.67.100/32" service name="http" log prefix="HTTP: " level="info" accept'文字命令查詢結果為
[root@Core-i7 ~]# firewall-cmd --list-all在查詢結果中可以看到「豐富規則」的最後有 accept ,表示設定成功,而這時外界的電腦可以連入。
public (active)
target: default
icmp-block-inversion: no
interfaces: enp2s0
sources:
services: mdns
ports: 5566/tcp
protocols:
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
rule family="ipv4" source address="123.45.67.80/24" destination address="123.45.67.100/32" service name="http" log prefix="HTTP: " level="info" accept
四、確認 firewall-config 的程式錯誤
為確認 firewall-config 的程式錯誤,將以文字命令設定成功的「豐富規則」,按 firewall-config 的【編輯】鈕以查詢設定內容,再按【確定】鈕儲存一次「豐富規則」,原本可以連線的設定又失效了。再用文字命令查詢,原本在「豐富規則」最後的 accept 這個設定又不見了。由這個測試可再一次確認這個 firewall-config 的程式錯誤,要設定「豐富規則 (Rich Rules)」只能暫時在「終端機」用「文字列命令」了。
已測試版本:
- Fedora: 27
- MATE 桌面: 1.19.3
沒有留言:
張貼留言
感謝你耐心看完本文,歡迎留下任何指正、建議,筆者會儘快回應。(English is also welcome.)