新聞中心
centos 7中防火墻是一個非常的強大的功能了,但對于CentOS 7中在防火墻中進行了升級了,下面我們一起來詳細的看看關(guān)于CentOS 7中防火墻使用方法。

創(chuàng)新互聯(lián)建站主營桓臺網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,手機APP定制開發(fā),桓臺h5小程序定制開發(fā)搭建,桓臺網(wǎng)站營銷推廣歡迎桓臺等地區(qū)企業(yè)咨詢
FirewallD 提供了支持網(wǎng)絡(luò)/防火墻區(qū)域(zone)定義網(wǎng)絡(luò)鏈接以及接口安全等級的動態(tài)防火墻管理工具。它支持 IPv4, IPv6 防火墻設(shè)置以及以太網(wǎng)橋接,并且擁有運行時配置和永久配置選項。它也支持允許服務(wù)或者應(yīng)用程序直接添加防火墻規(guī)則的接口。 以前的 system-config-firewall/lokkit 防火墻模型是靜態(tài)的,每次修改都要求防火墻完全重啟。這個過程包括內(nèi)核 netfilter 防火墻模塊的卸載和新配置所需模塊的裝載等。而模塊的卸載將會破壞狀態(tài)防火墻和確立的連接。
相反,firewall daemon 動態(tài)管理防火墻,不需要重啟整個防火墻便可應(yīng)用更改。因而也就沒有必要重載所有內(nèi)核防火墻模塊了。不過,要使用 firewall daemon 就要求防火墻的所有變更都要通過該守護進程來實現(xiàn),以確保守護進程中的狀態(tài)和內(nèi)核里的防火墻是一致的。另外,firewall daemon 無法解析由 ip*tables 和 ebtables 命令行工具添加的防火墻規(guī)則。
守護進程通過 D-BUS 提供當(dāng)前激活的防火墻設(shè)置信息,也通過 D-BUS 接受使用 PolicyKit 認(rèn)證方式做的更改。
“守護進程”
應(yīng)用程序、守護進程和用戶可以通過 D-BUS 請求啟用一個防火墻特性。特性可以是預(yù)定義的防火墻功能,如:服務(wù)、端口和協(xié)議的組合、端口/數(shù)據(jù)報轉(zhuǎn)發(fā)、偽裝、ICMP 攔截或自定義規(guī)則等。該功能可以啟用確定的一段時間也可以再次停用。
通過所謂的直接接口,其他的服務(wù)(例如 libvirt )能夠通過 iptables 變元(arguments)和參數(shù)(parameters)增加自己的規(guī)則。
amanda 、ftp 、samba 和 tftp 服務(wù)的 netfilter 防火墻助手也被“守護進程”解決了,只要它們還作為預(yù)定義服務(wù)的一部分。附加助手的裝載不作為當(dāng)前接口的一部分。由于一些助手只有在由模塊控制的所有連接都關(guān)閉后才可裝載。因而,跟蹤連接信息很重要,需要列入考慮范圍。
靜態(tài)防火墻(system-config-firewall/lokkit)
使用 system-config-firewall 和 lokkit 的靜態(tài)防火墻模型實際上仍然可用并將繼續(xù)提供,但卻不能與“守護進程”同時使用。用戶或者管理員可以決定使用哪一種方案。
在軟件安裝,初次啟動或者是首次聯(lián)網(wǎng)時,將會出現(xiàn)一個選擇器。通過它你可以選擇要使用的防火墻方案。其他的解決方案將保持完整,可以通過更換模式啟用。
firewall daemon 獨立于 system-config-firewall,但二者不能同時使用。
使用iptables和ip6tables的靜態(tài)防火墻規(guī)則
如果你想使用自己的 iptables 和 ip6tables 靜態(tài)防火墻規(guī)則, 那么請安裝 iptables-services 并且禁用 firewalld ,啟用 iptables 和ip6tables:
yum install iptables-services
systemctl mask firewalld.service
systemctl enable iptables.service
systemctl enable ip6tables.service
靜態(tài)防火墻規(guī)則配置文件是 /etc/sysconfig/iptables 以及 /etc/sysconfig/ip6tables .
注: iptables 與 iptables-services 軟件包不提供與服務(wù)配套使用的防火墻規(guī)則. 這些服務(wù)是用來保障兼容性以及供想使用自己防火墻規(guī)則的人使用的. 你可以安裝并使用 system-config-firewall 來創(chuàng)建上述服務(wù)需要的規(guī)則. 為了能使用 system-config-firewall, 你必須停止 firewalld.
為服務(wù)創(chuàng)建規(guī)則并停用 firewalld 后,就可以啟用 iptables 與 ip6tables 服務(wù)了:
systemctl stop firewalld.service
systemctl start iptables.service
systemctl start ip6tables.service
什么是區(qū)域?
網(wǎng)絡(luò)區(qū)域定義了網(wǎng)絡(luò)連接的可信等級。這是一個一對多的關(guān)系,這意味著一次連接可以僅僅是一個區(qū)域的一部分,而一個區(qū)域可以用于很多連接。
預(yù)定義的服務(wù)
服務(wù)是端口和/或協(xié)議入口的組合。備選內(nèi)容包括 netfilter 助手模塊以及 IPv4、IPv6地址。
端口和協(xié)議
定義了 tcp 或 udp 端口,端口可以是一個端口或者端口范圍。
ICMP阻塞
可以選擇 Internet 控制報文協(xié)議的報文。這些報文可以是信息請求亦可是對信息請求或錯誤條件創(chuàng)建的響應(yīng)。
偽裝
私有網(wǎng)絡(luò)地址可以被映射到公開的IP地址。這是一次正規(guī)的地址轉(zhuǎn)換。
端口轉(zhuǎn)發(fā)
端口可以映射到另一個端口以及/或者其他主機。
哪個區(qū)域可用?
由firewalld 提供的區(qū)域按照從不信任到信任的順序排序。
丟棄
任何流入網(wǎng)絡(luò)的包都被丟棄,不作出任何響應(yīng)。只允許流出的網(wǎng)絡(luò)連接。
阻塞
任何進入的網(wǎng)絡(luò)連接都被拒絕,并返回 IPv4 的 icmp-host-prohibited 報文或者 IPv6 的 icmp6-adm-prohibited 報文。只允許由該系統(tǒng)初始化的網(wǎng)絡(luò)連接。
公開
用以可以公開的部分。你認(rèn)為網(wǎng)絡(luò)中其他的計算機不可信并且可能傷害你的計算機。只允許選中的連接接入。(You do not trust the other computers on networks to not harm your computer. Onlyselected incoming connections are accepted.)
外部
用在路由器等啟用偽裝的外部網(wǎng)絡(luò)。你認(rèn)為網(wǎng)絡(luò)中其他的計算機不可信并且可能傷害你的計算機。只允許選中的連接接入。
隔離區(qū)(dmz)
用以允許隔離區(qū)(dmz)中的電腦有限地被外界網(wǎng)絡(luò)訪問。只接受被選中的連接。
工作
用在工作網(wǎng)絡(luò)。你信任網(wǎng)絡(luò)中的大多數(shù)計算機不會影響你的計算機。只接受被選中的連接。
家庭
用在家庭網(wǎng)絡(luò)。你信任網(wǎng)絡(luò)中的大多數(shù)計算機不會影響你的計算機。只接受被選中的連接。
內(nèi)部
用在內(nèi)部網(wǎng)絡(luò)。你信任網(wǎng)絡(luò)中的大多數(shù)計算機不會影響你的計算機。只接受被選中的連接。
受信任的
允許所有網(wǎng)絡(luò)連接。
我應(yīng)該選用哪個區(qū)域?
例如,公共的 WIFI 連接應(yīng)該主要為不受信任的,家庭的有線網(wǎng)絡(luò)應(yīng)該是相當(dāng)可信任的。根據(jù)與你使用的網(wǎng)絡(luò)最符合的區(qū)域進行選擇。
如何配置或者增加區(qū)域?
你可以使用任何一種 firewalld 配置工具來配置或者增加區(qū)域,以及修改配置。工具有例如 firewall-config 這樣的圖形界面工具, firewall-cmd 這樣的命令行工具,以及D-BUS接口。或者你也可以在配置文件目錄中創(chuàng)建或者拷貝區(qū)域文件。 @PREFIX@/lib/firewalld/zones 被用于默認(rèn)和備用配置,/etc/firewalld/zones 被用于用戶創(chuàng)建和自定義配置文件。
如何為網(wǎng)絡(luò)連接設(shè)置或者修改區(qū)域
區(qū)域設(shè)置以 ZONE= 選項 存儲在網(wǎng)絡(luò)連接的ifcfg文件中。如果這個選項缺失或者為空,firewalld 將使用配置的默認(rèn)區(qū)域。
如果這個連接受到 NetworkManager 控制,你也可以使用 nm-connection-editor 來修改區(qū)域。
由NetworkManager控制的網(wǎng)絡(luò)連接
防火墻不能夠通過 NetworkManager 顯示的名稱來配置網(wǎng)絡(luò)連接,只能配置網(wǎng)絡(luò)接口。因此在網(wǎng)絡(luò)連接之前 NetworkManager 將配置文件所述連接對應(yīng)的網(wǎng)絡(luò)接口告訴 firewalld 。如果在配置文件中沒有配置區(qū)域,接口將配置到 firewalld 的默認(rèn)區(qū)域。如果網(wǎng)絡(luò)連接使用了不止一個接口,所有的接口都會應(yīng)用到 fiwewalld。接口名稱的改變也將由 NetworkManager 控制并應(yīng)用到firewalld。
為了簡化,自此,網(wǎng)絡(luò)連接將被用作與區(qū)域的關(guān)系。
如果一個接口斷開了,NetworkManager也將告訴firewalld從區(qū)域中刪除該接口。
當(dāng)firewalld由systemd或者init腳本啟動或者重啟后,firewalld將通知NetworkManager把網(wǎng)絡(luò)連接增加到區(qū)域。
由腳本控制的網(wǎng)絡(luò)
對于由網(wǎng)絡(luò)腳本控制的連接有一條限制:沒有守護進程通知 firewalld 將連接增加到區(qū)域。這項工作僅在 ifcfg-post 腳本進行。因此,此后對網(wǎng)絡(luò)連接的重命名將不能被應(yīng)用到firewalld。同樣,在連接活動時重啟 firewalld 將導(dǎo)致與其失去關(guān)聯(lián)?,F(xiàn)在有意修復(fù)此情況。最簡單的是將全部未配置連接加入默認(rèn)區(qū)域。
區(qū)域定義了本區(qū)域中防火墻的特性:
使用firewalld
你可以通過圖形界面工具 firewall-config 或者命令行客戶端 firewall-cmd 啟用或者關(guān)閉防火墻特性。
使用firewall-cmd
命令行工具 firewall-cmd 支持全部防火墻特性。對于狀態(tài)和查詢模式,命令只返回狀態(tài),沒有其他輸出。
一般應(yīng)用
獲取 firewalld 狀態(tài)
firewall-cmd --state
此舉返回 firewalld 的狀態(tài),沒有任何輸出??梢允褂靡韵路绞将@得狀態(tài)輸出:
firewall-cmd --state && echo "Running" || echo "Not running"
在 Fedora 19 中, 狀態(tài)輸出比此前直觀:
# rpm -qf $( which firewall-cmd )
firewalld-0.3.3-2.fc19.noarch# firewall-cmd --state
not running
在不改變狀態(tài)的條件下重新加載防火墻:
firewall-cmd --reload
如果你使用–complete-reload,狀態(tài)信息將會丟失。這個選項應(yīng)當(dāng)僅用于處理防火墻問題時,例如,狀態(tài)信息和防火墻規(guī)則都正常,但是不能建立任何連接的情況。
獲取支持的區(qū)域列表
firewall-cmd --get-zones
這條命令輸出用空格分隔的列表。
獲取所有支持的服務(wù)
firewall-cmd --get-services
這條命令輸出用空格分隔的列表。
獲取所有支持的ICMP類型
firewall-cmd --get-icmptypes
這條命令輸出用空格分隔的列表。
列出全部啟用的區(qū)域的特性
firewall-cmd --list-all-zones
輸出格式是:
interfaces:
services:
ports:
forward-ports:
icmp-blocks:
輸出區(qū)域
firewall-cmd [--zone=
獲取默認(rèn)區(qū)域的網(wǎng)絡(luò)設(shè)置
firewall-cmd --get-default-zone
設(shè)置默認(rèn)區(qū)域
firewall-cmd --set-default-zone=
流入默認(rèn)區(qū)域中配置的接口的新訪問請求將被置入新的默認(rèn)區(qū)域。當(dāng)前活動的連接將不受影響。
獲取活動的區(qū)域
firewall-cmd --get-active-zones
這條命令將用以下格式輸出每個區(qū)域所含接口:
根據(jù)接口獲取區(qū)域
firewall-cmd --get-zone-of-interface=
這條命令將輸出接口所屬的區(qū)域名稱。
將接口增加到區(qū)域
firewall-cmd [--zone=
如果接口不屬于區(qū)域,接口將被增加到區(qū)域。如果區(qū)域被省略了,將使用默認(rèn)區(qū)域。接口在重新加載后將重新應(yīng)用。
修改接口所屬區(qū)域
firewall-cmd [--zone=
這個選項與 –add-interface 選項相似,但是當(dāng)接口已經(jīng)存在于另一個區(qū)域的時候,該接口將被添加到新的區(qū)域。
從區(qū)域中刪除一個接口
firewall-cmd [--zone=
查詢區(qū)域中是否包含某接口
firewall-cmd [--zone=
返回接口是否存在于該區(qū)域。沒有輸出。
列舉區(qū)域中啟用的服務(wù)
firewall-cmd [ --zone=
啟用應(yīng)急模式阻斷所有網(wǎng)絡(luò)連接,以防出現(xiàn)緊急狀況
firewall-cmd --panic-on
禁用應(yīng)急模式
firewall-cmd --panic-off
代碼如下 復(fù)制代碼
應(yīng)急模式在 0.3.0 版本中發(fā)生了變化
在 0.3.0 之前的 FirewallD版本中, panic 選項是 –enable-panic 與 –disable-panic.
查詢應(yīng)急模式
firewall-cmd --query-panic
此命令返回應(yīng)急模式的狀態(tài),沒有輸出??梢允褂靡韵路绞将@得狀態(tài)輸出:
firewall-cmd --query-panic && echo "On" || echo "Off"
處理運行時區(qū)域
運行時模式下對區(qū)域進行的修改不是永久有效的。重新加載或者重啟后修改將失效。
啟用區(qū)域中的一種服務(wù)
firewall-cmd [--zone=
此舉啟用區(qū)域中的一種服務(wù)。如果未指定區(qū)域,將使用默認(rèn)區(qū)域。如果設(shè)定了超時時間,服務(wù)將只啟用特定秒數(shù)。如果服務(wù)已經(jīng)活躍,將不會有任何警告信息。
例: 使區(qū)域中的ipp-client服務(wù)生效60秒:
firewall-cmd --zone=home --add-service=ipp-client --timeout=60
例: 啟用默認(rèn)區(qū)域中的http服務(wù):
firewall-cmd --add-service=http
禁用區(qū)域中的某種服務(wù)
firewall-cmd [--zone=
此舉禁用區(qū)域中的某種服務(wù)。如果未指定區(qū)域,將使用默認(rèn)區(qū)域。
例: 禁止home區(qū)域中的http服務(wù):
firewall-cmd --zone=home --remove-service=http
區(qū)域種的服務(wù)將被禁用。如果服務(wù)沒有啟用,將不會有任何警告信息。
查詢區(qū)域中是否啟用了特定服務(wù)
firewall-cmd [--zone=
如果服務(wù)啟用,將返回1,否則返回0。沒有輸出信息。
啟用區(qū)域端口和協(xié)議組合
firewall-cmd [--zone=
此舉將啟用端口和協(xié)議的組合。端口可以是一個單獨的端口
禁用端口和協(xié)議組合
firewall-cmd [--zone=
查詢區(qū)域中是否啟用了端口和協(xié)議組合
firewall-cmd [--zone=
如果啟用,此命令將有返回值。沒有輸出信息。
啟用區(qū)域中的IP偽裝功能
firewall-cmd [--zone=
此舉啟用區(qū)域的偽裝功能。私有網(wǎng)絡(luò)的地址將被隱藏并映射到一個公有IP。這是地址轉(zhuǎn)換的一種形式,常用于路由。由于內(nèi)核的限制,偽裝功能僅可用于IPv4。
禁用區(qū)域中的IP偽裝
firewall-cmd [--zone=
查詢區(qū)域的偽裝狀態(tài)
firewall-cmd [--zone=
如果啟用,此命令將有返回值。沒有輸出信息。
啟用區(qū)域的ICMP阻塞功能
firewall-cmd [--zone=
此舉將啟用選中的Internet控制報文協(xié)議(ICMP)報文進行阻塞。ICMP報文可以是請求信息或者創(chuàng)建的應(yīng)答報文,以及錯誤應(yīng)答。
禁止區(qū)域的ICMP阻塞功能
firewall-cmd [--zone=
查詢區(qū)域的ICMP阻塞功能
firewall-cmd [--zone=
如果啟用,此命令將有返回值。沒有輸出信息。
例: 阻塞區(qū)域的響應(yīng)應(yīng)答報文:
firewall-cmd --zone=public --add-icmp-block=echo-reply
在區(qū)域中啟用端口轉(zhuǎn)發(fā)或映射
firewall-cmd [--zone=
端口可以映射到另一臺主機的同一端口,也可以是同一主機或另一主機的不同端口。端口號可以是一個單獨的端口
禁止區(qū)域的端口轉(zhuǎn)發(fā)或者端口映射
firewall-cmd [--zone=
查詢區(qū)域的端口轉(zhuǎn)發(fā)或者端口映射
firewall-cmd [--zone=
如果啟用,此命令將有返回值。沒有輸出信息。
例: 將區(qū)域home的ssh轉(zhuǎn)發(fā)到127.0.0.2
firewall-cmd --zone=home --add-forward-port=port=22:proto=tcp:toaddr=127.0.0.2
處理永久區(qū)域
永久選項不直接影響運行時的狀態(tài)。這些選項僅在重載或者重啟服務(wù)時可用。為了使用運行時和永久設(shè)置,需要分別設(shè)置兩者。 選項 –permanent 需要是永久設(shè)置的第一個參數(shù)。
獲取永久選項所支持的服務(wù)
firewall-cmd --permanent --get-services
獲取永久選項所支持的ICMP類型列表
firewall-cmd --permanent --get-icmptypes
獲取支持的永久區(qū)域
firewall-cmd --permanent --get-zones
啟用區(qū)域中的服務(wù)
firewall-cmd --permanent [--zone=
此舉將永久啟用區(qū)域中的服務(wù)。如果未指定區(qū)域,將使用默認(rèn)區(qū)域。
禁用區(qū)域中的一種服務(wù)
firewall-cmd --permanent [--zone=
查詢區(qū)域中的服務(wù)是否啟用
firewall-cmd --permanent [--zone=
如果服務(wù)啟用,此命令將有返回值。此命令沒有輸出信息。
例: 永久啟用 home 區(qū)域中的 ipp-client 服務(wù)
firewall-cmd --permanent --zone=home --add-service=ipp-client
永久啟用區(qū)域中的一個端口-協(xié)議組合
firewall-cmd --permanent [--zone=
永久禁用區(qū)域中的一個端口-協(xié)議組合
firewall-cmd --permanent [--zone=
查詢區(qū)域中的端口-協(xié)議組合是否永久啟用
firewall-cmd --permanent [--zone=
如果服務(wù)啟用,此命令將有返回值。此命令沒有輸出信息。
例: 永久啟用 home 區(qū)域中的 https (tcp 443) 端口
firewall-cmd --permanent --zone=home --add-port=443/tcp
永久啟用區(qū)域中的偽裝
firewall-cmd --permanent [--zone=
此舉啟用區(qū)域的偽裝功能。私有網(wǎng)絡(luò)的地址將被隱藏并映射到一個公有IP。這是地址轉(zhuǎn)換的一種形式,常用于路由。由于內(nèi)核的限制,偽裝功能僅可用于IPv4。
永久禁用區(qū)域中的偽裝
firewall-cmd --permanent [--zone=
查詢區(qū)域中的偽裝的永久狀態(tài)
firewall-cmd --permanent [--zone=
如果服務(wù)啟用,此命令將有返回值。此命令沒有輸出信息。
永久啟用區(qū)域中的ICMP阻塞
firewall-cmd --permanent [--zone=
此舉將啟用選中的 Internet 控制報文協(xié)議 (ICMP) 報文進行阻塞。 ICMP 報文可以是請求信息或者創(chuàng)建的應(yīng)答報文或錯誤應(yīng)答報文。
永久禁用區(qū)域中的ICMP阻塞
firewall-cmd --permanent [--zone=
查詢區(qū)域中的ICMP永久狀態(tài)
firewall-cmd --permanent [--zone=
如果服務(wù)啟用,此命令將有返回值。此命令沒有輸出信息。
例: 阻塞公共區(qū)域中的響應(yīng)應(yīng)答報文:
firewall-cmd --permanent --zone=public --add-icmp-block=echo-reply
在區(qū)域中永久啟用端口轉(zhuǎn)發(fā)或映射
firewall-cmd --permanent [--zone=
端口可以映射到另一臺主機的同一端口,也可以是同一主機或另一主機的不同端口。端口號可以是一個單獨的端口
永久禁止區(qū)域的端口轉(zhuǎn)發(fā)或者端口映射
firewall-cmd --permanent [--zone=
查詢區(qū)域的端口轉(zhuǎn)發(fā)或者端口映射狀態(tài)
firewall-cmd --permanent [--zone=
如果服務(wù)啟用,此命令將有返回值。此命令沒有輸出信息。
例: 將 home 區(qū)域的 ssh 服務(wù)轉(zhuǎn)發(fā)到 127.0.0.2
firewall-cmd --permanent --zone=home --add-forward-port=port=22:proto=tcp:toaddr=127.0.0.2
直接選項
直接選項主要用于使服務(wù)和應(yīng)用程序能夠增加規(guī)則。 規(guī)則不會被保存,在重新加載或者重啟之后必須再次提交。傳遞的參數(shù)
選項–direct需要是直接選項的第一個參數(shù)。
將命令傳遞給防火墻。參數(shù)
firewall-cmd --direct --passthrough { ipv4 | ipv6 | eb }
為表


咨詢
建站咨詢
