firewalld 提供動態管理的防火牆,支援網路或防火牆區域定義網路連線或介面的信任等級。它支援 IPv4、IPv6 防火牆設定和乙太網路橋,以及運行時和永久配置選項的分離。它還為服務或應用程式提供直接新增 ip*tables 和 ebtables 規則的介面。
若要查看來源儲存庫,您可以使用:
git 複製 https://github.com/firewalld/firewalld.git
這將建立儲存庫的本機副本。
貢獻者行為準則可以在 CODE_OF_CONDUCT.md 中找到
Firewalld 使用 GNU gettext 來提供在地化支援。可以使用 Fedora 的 Weblate 實例來完成翻譯。翻譯會定期合併到主firewalld儲存庫。
這些是運行時相依性:
linux >= 5.3 python >= 3.8 python3-dbus python3-gobject python3-nftables >= 0.9.4
注意:不支援 python2。
這些依賴項可能會增強firewalld 的功能,但它們不是必需的。
ebtables ipset iptables polkit python3-capng (libcap-ng-python3)
除了運行時依賴項之外,還需要從原始碼建置其他一些依賴項:
desktop-file-utils: /usr/bin/desktop-file-install gettext intltool glib2: /usr/bin/glib-compile-schemas glib2-devel: /usr/share/aclocal/gsettings.m4 systemd-units pytest
為了能夠從 docbook 文件建立手冊頁和文件:
docbook-style-xsl libxslt
使用通常的 autoconf/automake 咒語來產生 makefile
./autogen.sh ./配置
您可以透過傳遞 PYTHON 變數來使用特定的 python 解釋器。測試套件也使用它。
./configure PYTHON=/path/to/python3
使用
製作
建立文件並更新 po 文件。
使用
進行檢查
運行測試套件。測試在網路命名空間內運行,不會幹擾主機運行的firewalld。它們還可以透過將標誌傳遞給自動測試來並行運行。
檢查 TESTSUITEFLAGS="-j4"
測試套件還使用關鍵字來允許運行測試特定區域的子集。例如:
進行檢查 TESTSUITEFLAGS="-k rich -j4"
輸出:
24:豐富的規則審核ok 25:豐富的規則優先確定 26:富有的規則不好也沒關係 53:豐富的規則審核ok 23:豐富的規則 好的 好的 55:富有的規則不好也沒關係 74:重新載入後刪除轉送連接埠即可
您可以獲得測試和關鍵字列表
make -C src/tests 檢查 TESTSUITEFLAGS="-l"
或者只是關鍵字
make -C src/tests 檢查 TESTSUITEFLAGS="-l" |awk '/^[[:space:]]*[[:digit:]]+/{getline; print $0}' |tr ' ' 'n' |sort |uniq
有整合測試。目前這包括 NetworkManager。這些可能對宿主具有破壞性。在一次性虛擬機器或容器中運行它們。
進行檢查集成
還有一個檢查容器目標,它將在各種 podman/docker 容器內運行測試套件。這對於覆蓋多個發行版非常有用。它還運行可能對主機造成破壞的測試,例如整合測試。
使檢查容器TESTSUITEFLAGS =“-j4”
作為dist
建置目標的一部分,產生 OCI 容器映像。它與正常版本 tarball 一起分發。它可用於從容器運行firewalld。容器化的firewalld不會與主機整合(例如podman、libvirt、NetworkManager)。
手動將容器映像載入到您的環境中:
podman load -i .../path/to/firewalld-oci-<ver>.tar
從 quay.io 取得影像:
podman pull quay.io/firewalld/firewalld:<ver>
其中<ver>
是可選的,如果省略,將使用最新版本。
啟動守護程式/容器:
podman run -d --網站主機 --privileged --name my-firewalld 防火牆
Firewalld 的配置將駐留在容器內。因此,用戶可能偶爾希望podman commit
映像。
使用firewalld的CLI應該在守護程序/容器啟動後透過podman exec來完成:
podman 執行 my-firewalld 防火牆-cmd ...
相同的容器映像可用於與主機執行的NetworkManager、podman、libvirt等整合。
dbus 政策可以從位於config/FirewallD.conf
firewalld 原始碼樹中取得。
cp config/FirewallD.conf /usr/share/dbus-1/system.d/FirewallD.conf
一旦 dbus 策略就位,容器就可以這樣啟動:
podman運行-d -v /run/dbus/system_bus_socket:/run/dbus/system_bus_socket --網站主機--特權 --name my-firewalld 防火牆 防火牆--nofork--nopid
唯一的補充是:卷安裝、顯式 CMD。
可以使用某些方法將firewalld的設定檔儲存在主機上。
podman運行-d -v /run/dbus/system_bus_socket:/run/dbus/system_bus_socket -v /etc/firewalld:/etc/firewalld --網站主機--特權 --name my-firewalld 防火牆 防火牆--nofork--nopid
對於基於 Fedora 和 RHEL 的發行版,來源儲存庫中有一個名為firewalld.spec 的規格檔案。這應該適用於 Fedora 版本 >= 16 和 RHEL >= 7。
首頁:http://firewalld.org
回報錯誤:https://github.com/firewalld/firewalld/issues
Git 儲存庫瀏覽器:https://github.com/firewalld/firewalld
Git 倉庫:https://github.com/firewalld/firewalld.git
文件:http://firewalld.org/documentation/
使用方法:https://lists.fedorahosted.org/archives/list/[email protected]/
用於開發:https://lists.fedorahosted.org/archives/list/[email protected]/
目錄 | 內容 |
---|---|
配置/ | 設定檔 |
配置/icmp類型/ | 預定義的 ICMP 類型 |
配置/服務/ | 預定義服務 |
配置/xmlschema/ | XML 模式檢查設定檔 |
配置/區域/ | 預定義區域 |
配置/ipsets/ | 預定義的 IP 集 |
文件/ | 文件 |
文檔/人/ | 手冊頁的基底目錄 |
文檔/人/人1/ | 手冊(1) 頁 |
文件/人/man5/ | 手冊(5) 頁 |
寶/ | 翻譯 |
shell 完成/ | 自動完成腳本的基底目錄 |
原始碼/ | 原始碼樹 |
src/防火牆/ | 服務和所有應用程式的導入樹 |
src/圖標/ | 圖示尺寸:16、22、24、32、48 和可縮放 |
src/測試/ | 測試套件 |