firewalld防火牆

由於omv本身的防火牆功能較陽春(系統主動建立的連線設定問題多),改用firewalld防火牆

sudo apt remove --purge ufw
sudo apt install firewalld

sudo systemctl status firewalld 的錯誤訊息

debian 10 firewalld 0.6.3 Error: COMMAND_FAILED: '/usr/sbin/ip6tables-restore -w -n' failed: ip6tables-restore v1.8.2 (nf_tables): line 4: RULE_REPLACE failed (No such file or directory): rule in chain OUTPUT 解決辦法

vim /etc/firewalld/firewalld.conf

有個InvividualCalls=no 把它改成InvividualCalls=yes

儲存離開

sudo systemctl restart firewalld

# 啟動 firewalld 服務
systemctl start firewalld
# 停止 firewalld 服務
systemctl stop firewalld
# 設定開機自動啟動 firewalld 服務
systemctl enable firewalld
# 列出所有設定
sudo firewall-cmd --list-all

重要設置:白名單 IP 位址

方法一(推薦)

方法二

關閉白名單IP(請先把ssh服務開通,不然就通通不通)

指定zone的網路介面

cat /etc/firewalld/zones/public.xml

查詢區域設定

列出 firewalld 中已經定義好的區域,執行:

設定預設 ZONE

列出所有的區域與內容

查詢public zone永久設定值

區域簡介

firewalld 的區域(zone)可用來設定網路連線、介面等所處的運作環境,對內使用的區域其防火牆規則會較為寬鬆,反之若是對外的區域其規則會較為嚴謹。

一條網路連線或介面只能隸屬於一個區域,我們可以自訂區域的設定,也可以直接從 firewalld 預設的幾個區域中選擇:

區域

描述

drop

任何往內的封包都會被丟棄,只允許往外傳送的封包。

block

任何來自於外部的連線都會被阻擋,只允許自己系統主動建立的連線。

public

公開區域,預設不信任其他電腦與網路,只有被允許的連線才能進入。通常大部分的連線設定都會放在這裡。

external

公開區域,適用於 NAT 網路環境。

dmz

非軍事區域(demilitarized zone,有點像是放在外頭的危險區域),允許外部的連線進入,但其對內的連線則有限制,只有被允許的連線才能連進內部網路。

work

公司內部等工作區域,在此區域中不應該會有惡意的攻擊者。只有被允許的連線可以進入。

home

家裡頭的網路區域,在此區域中不應該會有惡意的攻擊者。只有被允許的連線可以進入。

internal

內部網路區域,在此區域中不應該會有惡意的攻擊者。只有被允許的連線可以進入。

trusted

完全信任的區域,接受所有連線。

列出預設區域

設定預設區域

列出預先定義的服務名稱

若要將指定的服務新增至指定的區域中,可執行:

上面這行指令只是暫時將 http 服務新增至 public 區域中,重新開機後這個設定就不見了,若測試沒問題,再將設定寫入設定檔,永久保存:

sudo firwall-cmd --permanent --add-port=8000/tcp 插入防火墻規則,放通8000端口。

埠號的部分也可以用範圍的方式指定,一次開通多個連接埠:

移除服務

若要將指定的服務從某個區域中移除,可以執行:

如果是要移除自訂的通訊協定與埠號,則執行:

新增服務名稱

除了直接指定通訊協定與埠號之外,我們也可以自訂新的服務名稱,加入 firewalld 的服務名稱清單中,這樣就可以使用服務名稱的方式來設定開啟的服務,這樣做的好處是可以讓防火牆的設定看起來更容易理解,清楚說明埠號的用途。

若要使用名稱(如之前的8000/tcp),可以參考/usr/lib/firewalld/services 添加cloudcmd.xml到/etc/firewalld/cloudcmd.xml

重新載入設定

cat /etc/firewalld/public.xml

firewall-cmd --zone=public --add-source=120.115.4.29

firewall-cmd --zone=public --remove-source=120.115.4.29

firewall-cmd --runtime-to-permanent

用於apt-get

Last updated

Was this helpful?