国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Linux|Centos|Ubuntu|系統進程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務器之家 - 服務器系統 - Centos - CentOS7下Firewall防火墻配置用法詳解(推薦)

CentOS7下Firewall防火墻配置用法詳解(推薦)

2021-12-07 18:07centoscn Centos

centos 7中防火墻是一個非常的強大的功能了,這篇文章主要介紹了CentOS7下Firewall防火墻配置用法詳解(推薦),小編覺得挺不錯的,現在分享給大家,也給大家做個參考。

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

FirewallD 提供了支持網絡/防火墻區域(zone)定義網絡鏈接以及接口安全等級的動態防火墻管理工具。它支持 IPv4, IPv6 防火墻設置以及以太網橋接,并且擁有運行時配置和永久配置選項。它也支持允許服務或者應用程序直接添加防火墻規則的接口。 以前的 system-config-firewall/lokkit 防火墻模型是靜態的,每次修改都要求防火墻完全重啟。這個過程包括內核 netfilter 防火墻模塊的卸載和新配置所需模塊的裝載等。而模塊的卸載將會破壞狀態防火墻和確立的連接。

相反,firewall daemon 動態管理防火墻,不需要重啟整個防火墻便可應用更改。因而也就沒有必要重載所有內核防火墻模塊了。不過,要使用 firewall daemon 就要求防火墻的所有變更都要通過該守護進程來實現,以確保守護進程中的狀態和內核里的防火墻是一致的。另外,firewall daemon 無法解析由 ip*tables 和 ebtables 命令行工具添加的防火墻規則。

守護進程通過 D-BUS 提供當前激活的防火墻設置信息,也通過 D-BUS 接受使用 PolicyKit 認證方式做的更改。

“守護進程”
應用程序、守護進程和用戶可以通過 D-BUS 請求啟用一個防火墻特性。特性可以是預定義的防火墻功能,如:服務、端口和協議的組合、端口/數據報轉發、偽裝、ICMP 攔截或自定義規則等。該功能可以啟用確定的一段時間也可以再次停用。

通過所謂的直接接口,其他的服務(例如 libvirt )能夠通過 iptables 變元(arguments)和參數(parameters)增加自己的規則。

amanda 、ftp 、samba 和 tftp 服務的 netfilter 防火墻助手也被“守護進程”解決了,只要它們還作為預定義服務的一部分。附加助手的裝載不作為當前接口的一部分。由于一些助手只有在由模塊控制的所有連接都關閉后才可裝載。因而,跟蹤連接信息很重要,需要列入考慮范圍。

靜態防火墻(system-config-firewall/lokkit)

使用 system-config-firewall 和 lokkit 的靜態防火墻模型實際上仍然可用并將繼續提供,但卻不能與“守護進程”同時使用。用戶或者管理員可以決定使用哪一種方案。

在軟件安裝,初次啟動或者是首次聯網時,將會出現一個選擇器。通過它你可以選擇要使用的防火墻方案。其他的解決方案將保持完整,可以通過更換模式啟用。

firewall daemon 獨立于 system-config-firewall,但二者不能同時使用。

使用iptables和ip6tables的靜態防火墻規則

如果你想使用自己的 iptables 和 ip6tables 靜態防火墻規則, 那么請安裝 iptables-services 并且禁用 firewalld ,啟用 iptables 和ip6tables:

?
1
2
3
4
yum install iptables-services
systemctl mask firewalld.service
systemctl enable iptables.service
systemctl enable ip6tables.service

靜態防火墻規則配置文件是 /etc/sysconfig/iptables 以及 /etc/sysconfig/ip6tables .

注: iptables 與 iptables-services 軟件包不提供與服務配套使用的防火墻規則. 這些服務是用來保障兼容性以及供想使用自己防火墻規則的人使用的. 你可以安裝并使用 system-config-firewall 來創建上述服務需要的規則. 為了能使用 system-config-firewall, 你必須停止 firewalld.

為服務創建規則并停用 firewalld 后,就可以啟用 iptables 與 ip6tables 服務了:

?
1
2
3
systemctl stop firewalld.service
systemctl start iptables.service
systemctl start ip6tables.service

什么是區域?

網絡區域定義了網絡連接的可信等級。這是一個一對多的關系,這意味著一次連接可以僅僅是一個區域的一部分,而一個區域可以用于很多連接。

預定義的服務

服務是端口和/或協議入口的組合。備選內容包括 netfilter 助手模塊以及 IPv4、IPv6地址。

端口和協議

定義了 tcp 或 udp 端口,端口可以是一個端口或者端口范圍。

ICMP阻塞

可以選擇 Internet 控制報文協議的報文。這些報文可以是信息請求亦可是對信息請求或錯誤條件創建的響應。

偽裝

私有網絡地址可以被映射到公開的IP地址。這是一次正規的地址轉換。

端口轉發

端口可以映射到另一個端口以及/或者其他主機。

哪個區域可用?

由firewalld 提供的區域按照從不信任到信任的順序排序。

丟棄

任何流入網絡的包都被丟棄,不作出任何響應。只允許流出的網絡連接。

阻塞

任何進入的網絡連接都被拒絕,并返回 IPv4 的 icmp-host-prohibited 報文或者 IPv6 的 icmp6-adm-prohibited 報文。只允許由該系統初始化的網絡連接。

公開

用以可以公開的部分。你認為網絡中其他的計算機不可信并且可能傷害你的計算機。只允許選中的連接接入。(You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.)

外部

用在路由器等啟用偽裝的外部網絡。你認為網絡中其他的計算機不可信并且可能傷害你的計算機。只允許選中的連接接入。

隔離區(dmz)

用以允許隔離區(dmz)中的電腦有限地被外界網絡訪問。只接受被選中的連接。

工作

用在工作網絡。你信任網絡中的大多數計算機不會影響你的計算機。只接受被選中的連接。

家庭

用在家庭網絡。你信任網絡中的大多數計算機不會影響你的計算機。只接受被選中的連接。

內部

用在內部網絡。你信任網絡中的大多數計算機不會影響你的計算機。只接受被選中的連接。

受信任的

允許所有網絡連接。

我應該選用哪個區域?

例如,公共的 WIFI 連接應該主要為不受信任的,家庭的有線網絡應該是相當可信任的。根據與你使用的網絡最符合的區域進行選擇。

如何配置或者增加區域?
你可以使用任何一種 firewalld 配置工具來配置或者增加區域,以及修改配置。工具有例如 firewall-config 這樣的圖形界面工具, firewall-cmd 這樣的命令行工具,以及D-BUS接口。或者你也可以在配置文件目錄中創建或者拷貝區域文件。 @PREFIX@/lib/firewalld/zones 被用于默認和備用配置,/etc/firewalld/zones 被用于用戶創建和自定義配置文件。

如何為網絡連接設置或者修改區域

區域設置以 ZONE= 選項 存儲在網絡連接的ifcfg文件中。如果這個選項缺失或者為空,firewalld 將使用配置的默認區域。
如果這個連接受到 NetworkManager 控制,你也可以使用 nm-connection-editor 來修改區域。

由NetworkManager控制的網絡連接

防火墻不能夠通過 NetworkManager 顯示的名稱來配置網絡連接,只能配置網絡接口。因此在網絡連接之前 NetworkManager 將配置文件所述連接對應的網絡接口告訴 firewalld 。如果在配置文件中沒有配置區域,接口將配置到 firewalld 的默認區域。如果網絡連接使用了不止一個接口,所有的接口都會應用到 fiwewalld。接口名稱的改變也將由 NetworkManager 控制并應用到firewalld。

為了簡化,自此,網絡連接將被用作與區域的關系。

如果一個接口斷開了,NetworkManager也將告訴firewalld從區域中刪除該接口。

當firewalld由systemd或者init腳本啟動或者重啟后,firewalld將通知NetworkManager把網絡連接增加到區域。

由腳本控制的網絡

對于由網絡腳本控制的連接有一條限制:沒有守護進程通知 firewalld 將連接增加到區域。這項工作僅在 ifcfg-post 腳本進行。因此,此后對網絡連接的重命名將不能被應用到firewalld。同樣,在連接活動時重啟 firewalld 將導致與其失去關聯。現在有意修復此情況。最簡單的是將全部未配置連接加入默認區域。
區域定義了本區域中防火墻的特性:

使用firewalld

你可以通過圖形界面工具 firewall-config 或者命令行客戶端 firewall-cmd 啟用或者關閉防火墻特性。

使用firewall-cmd

命令行工具 firewall-cmd 支持全部防火墻特性。對于狀態和查詢模式,命令只返回狀態,沒有其他輸出。

一般應用

獲取 firewalld 狀態

?
1
firewall-cmd --state

此舉返回 firewalld 的狀態,沒有任何輸出。可以使用以下方式獲得狀態輸出:

?
1
firewall-cmd --state && echo "Running" || echo "Not running"

在 Fedora 19 中, 狀態輸出比此前直觀:

?
1
2
3
# rpm -qf $( which firewall-cmd )
firewalld-0.3.3-2.fc19.noarch# firewall-cmd --state
not running

在不改變狀態的條件下重新加載防火墻:

?
1
firewall-cmd --reload

如果你使用–complete-reload,狀態信息將會丟失。這個選項應當僅用于處理防火墻問題時,例如,狀態信息和防火墻規則都正常,但是不能建立任何連接的情況。

獲取支持的區域列表

?
1
firewall-cmd --get-zones

這條命令輸出用空格分隔的列表。

獲取所有支持的服務

?
1
firewall-cmd --get-services

這條命令輸出用空格分隔的列表。

獲取所有支持的ICMP類型

?
1
firewall-cmd --get-icmptypes

這條命令輸出用空格分隔的列表。

列出全部啟用的區域的特性

?
1
firewall-cmd --list-all-zones

輸出格式是:

?
1
2
3
4
5
6
<zone>
 interfaces: <interface1> ..
 services: <service1> ..
 ports: <port1> ..
 forward-ports: <forward port1> ..
 icmp-blocks: <icmp type1> ....

輸出區域 <zone> 全部啟用的特性。如果生略區域,將顯示默認區域的信息。

?
1
firewall-cmd [--zone=<zone>] --list-all

獲取默認區域的網絡設置

?
1
firewall-cmd --get-default-zone

設置默認區域

?
1
firewall-cmd --set-default-zone=<zone>

流入默認區域中配置的接口的新訪問請求將被置入新的默認區域。當前活動的連接將不受影響。

獲取活動的區域

?
1
firewall-cmd --get-active-zones

這條命令將用以下格式輸出每個區域所含接口:

<zone1>: <interface1> <interface2> ..<zone2>: <interface3> ..

根據接口獲取區域

?
1
firewall-cmd --get-zone-of-interface=<interface>

這條命令將輸出接口所屬的區域名稱。

將接口增加到區域

?
1
firewall-cmd [--zone=<zone>] --add-interface=<interface>

如果接口不屬于區域,接口將被增加到區域。如果區域被省略了,將使用默認區域。接口在重新加載后將重新應用。

修改接口所屬區域

?
1
firewall-cmd [--zone=<zone>] --change-interface=<interface>

這個選項與 –add-interface 選項相似,但是當接口已經存在于另一個區域的時候,該接口將被添加到新的區域。

從區域中刪除一個接口

?
1
firewall-cmd [--zone=<zone>] --remove-interface=<interface>

查詢區域中是否包含某接口

?
1
firewall-cmd [--zone=<zone>] --query-interface=<interface>

返回接口是否存在于該區域。沒有輸出。

列舉區域中啟用的服務

?
1
firewall-cmd [ --zone=<zone> ] --list-services

啟用應急模式阻斷所有網絡連接,以防出現緊急狀況

?
1
firewall-cmd --panic-on

禁用應急模式

?
1
firewall-cmd --panic-off

應急模式在 0.3.0 版本中發生了變化

在 0.3.0 之前的 FirewallD版本中, panic 選項是 –enable-panic 與 –disable-panic.

查詢應急模式

?
1
firewall-cmd --query-panic

此命令返回應急模式的狀態,沒有輸出。可以使用以下方式獲得狀態輸出:

?
1
firewall-cmd --query-panic && echo "On" || echo "Off"

處理運行時區域

運行時模式下對區域進行的修改不是永久有效的。重新加載或者重啟后修改將失效。

啟用區域中的一種服務

?
1
firewall-cmd [--zone=<zone>] --add-service=<service> [--timeout=<seconds>]

此舉啟用區域中的一種服務。如果未指定區域,將使用默認區域。如果設定了超時時間,服務將只啟用特定秒數。如果服務已經活躍,將不會有任何警告信息。

例: 使區域中的ipp-client服務生效60秒:

?
1
firewall-cmd --zone=home --add-service=ipp-client --timeout=60

例: 啟用默認區域中的http服務:

?
1
firewall-cmd --add-service=http

禁用區域中的某種服務

?
1
firewall-cmd [--zone=<zone>] --remove-service=<service>

此舉禁用區域中的某種服務。如果未指定區域,將使用默認區域。

例: 禁止home區域中的http服務:

?
1
firewall-cmd --zone=home --remove-service=http

區域種的服務將被禁用。如果服務沒有啟用,將不會有任何警告信息。

查詢區域中是否啟用了特定服務

?
1
firewall-cmd [--zone=<zone>] --query-service=<service>

如果服務啟用,將返回1,否則返回0。沒有輸出信息。

啟用區域端口和協議組合

?
1
firewall-cmd [--zone=<zone>] --add-port=<port>[-<port>]/<protocol> [--timeout=<seconds>]

此舉將啟用端口和協議的組合。端口可以是一個單獨的端口 <port> 或者是一個端口范圍 <port>-<port> 。協議可以是 tcp 或 udp。

禁用端口和協議組合

?
1
firewall-cmd [--zone=<zone>] --remove-port=<port>[-<port>]/<protocol>

查詢區域中是否啟用了端口和協議組合

?
1
firewall-cmd [--zone=<zone>] --query-port=<port>[-<port>]/<protocol>

如果啟用,此命令將有返回值。沒有輸出信息。

啟用區域中的IP偽裝功能

?
1
firewall-cmd [--zone=<zone>] --add-masquerade

此舉啟用區域的偽裝功能。私有網絡的地址將被隱藏并映射到一個公有IP。這是地址轉換的一種形式,常用于路由。由于內核的限制,偽裝功能僅可用于IPv4。

禁用區域中的IP偽裝

?
1
firewall-cmd [--zone=<zone>] --remove-masquerade

查詢區域的偽裝狀態

?
1
firewall-cmd [--zone=<zone>] --query-masquerade

如果啟用,此命令將有返回值。沒有輸出信息。

啟用區域的ICMP阻塞功能

?
1
firewall-cmd [--zone=<zone>] --add-icmp-block=<icmptype>

此舉將啟用選中的Internet控制報文協議(ICMP)報文進行阻塞。ICMP報文可以是請求信息或者創建的應答報文,以及錯誤應答。

禁止區域的ICMP阻塞功能

?
1
firewall-cmd [--zone=<zone>] --remove-icmp-block=<icmptype>

查詢區域的ICMP阻塞功能

?
1
firewall-cmd [--zone=<zone>] --query-icmp-block=<icmptype>

如果啟用,此命令將有返回值。沒有輸出信息。

例: 阻塞區域的響應應答報文:

?
1
firewall-cmd --zone=public --add-icmp-block=echo-reply

在區域中啟用端口轉發或映射

?
1
firewall-cmd [--zone=<zone>] --add-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }

端口可以映射到另一臺主機的同一端口,也可以是同一主機或另一主機的不同端口。端口號可以是一個單獨的端口 <port> 或者是端口范圍 <port>-<port> 。協議可以為 tcp 或udp 。目標端口可以是端口號 <port> 或者是端口范圍 <port>-<port> 。目標地址可以是 IPv4 地址。受內核限制,端口轉發功能僅可用于IPv4。

禁止區域的端口轉發或者端口映射

?
1
firewall-cmd [--zone=<zone>] --remove-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }

查詢區域的端口轉發或者端口映射

?
1
firewall-cmd [--zone=<zone>] --query-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }

如果啟用,此命令將有返回值。沒有輸出信息。

例: 將區域home的ssh轉發到127.0.0.2

?
1
firewall-cmd --zone=home --add-forward-port=port=22:proto=tcp:toaddr=127.0.0.2

處理永久區域

永久選項不直接影響運行時的狀態。這些選項僅在重載或者重啟服務時可用。為了使用運行時和永久設置,需要分別設置兩者。 選項 –permanent 需要是永久設置的第一個參數。

獲取永久選項所支持的服務

?
1
firewall-cmd --permanent --get-services

獲取永久選項所支持的ICMP類型列表

?
1
firewall-cmd --permanent --get-icmptypes

獲取支持的永久區域

?
1
firewall-cmd --permanent --get-zones

啟用區域中的服務

?
1
firewall-cmd --permanent [--zone=<zone>] --add-service=<service>

此舉將永久啟用區域中的服務。如果未指定區域,將使用默認區域。

禁用區域中的一種服務

?
1
firewall-cmd --permanent [--zone=<zone>] --remove-service=<service>

查詢區域中的服務是否啟用

?
1
firewall-cmd --permanent [--zone=<zone>] --query-service=<service>

如果服務啟用,此命令將有返回值。此命令沒有輸出信息。

例: 永久啟用 home 區域中的 ipp-client 服務

?
1
firewall-cmd --permanent --zone=home --add-service=ipp-client

永久啟用區域中的一個端口-協議組合

?
1
firewall-cmd --permanent [--zone=<zone>] --add-port=<port>[-<port>]/<protocol>

永久禁用區域中的一個端口-協議組合

?
1
firewall-cmd --permanent [--zone=<zone>] --remove-port=<port>[-<port>]/<protocol>

查詢區域中的端口-協議組合是否永久啟用

?
1
firewall-cmd --permanent [--zone=<zone>] --query-port=<port>[-<port>]/<protocol>

如果服務啟用,此命令將有返回值。此命令沒有輸出信息。

例: 永久啟用 home 區域中的 https (tcp 443) 端口

?
1
firewall-cmd --permanent --zone=home --add-port=443/tcp

永久啟用區域中的偽裝

?
1
firewall-cmd --permanent [--zone=<zone>] --add-masquerade

此舉啟用區域的偽裝功能。私有網絡的地址將被隱藏并映射到一個公有IP。這是地址轉換的一種形式,常用于路由。由于內核的限制,偽裝功能僅可用于IPv4。

永久禁用區域中的偽裝

?
1
firewall-cmd --permanent [--zone=<zone>] --remove-masquerade

查詢區域中的偽裝的永久狀態

?
1
firewall-cmd --permanent [--zone=<zone>] --query-masquerade

如果服務啟用,此命令將有返回值。此命令沒有輸出信息。

永久啟用區域中的ICMP阻塞

?
1
firewall-cmd --permanent [--zone=<zone>] --add-icmp-block=<icmptype>

此舉將啟用選中的 Internet 控制報文協議 (ICMP) 報文進行阻塞。 ICMP 報文可以是請求信息或者創建的應答報文或錯誤應答報文。

永久禁用區域中的ICMP阻塞

?
1
firewall-cmd --permanent [--zone=<zone>] --remove-icmp-block=<icmptype>

查詢區域中的ICMP永久狀態

?
1
firewall-cmd --permanent [--zone=<zone>] --query-icmp-block=<icmptype>

如果服務啟用,此命令將有返回值。此命令沒有輸出信息。

例: 阻塞公共區域中的響應應答報文:

?
1
firewall-cmd --permanent --zone=public --add-icmp-block=echo-reply

在區域中永久啟用端口轉發或映射

?
1
firewall-cmd --permanent [--zone=<zone>] --add-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }

端口可以映射到另一臺主機的同一端口,也可以是同一主機或另一主機的不同端口。端口號可以是一個單獨的端口 <port> 或者是端口范圍 <port>-<port> 。協議可以為 tcp 或udp 。目標端口可以是端口號 <port> 或者是端口范圍 <port>-<port> 。目標地址可以是 IPv4 地址。受內核限制,端口轉發功能僅可用于IPv4。

永久禁止區域的端口轉發或者端口映射

?
1
firewall-cmd --permanent [--zone=<zone>] --remove-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }

查詢區域的端口轉發或者端口映射狀態

?
1
firewall-cmd --permanent [--zone=<zone>] --query-forward-port=port=<port>[-<port>]:proto=<protocol> { :toport=<port>[-<port>] | :toaddr=<address> | :toport=<port>[-<port>]:toaddr=<address> }

如果服務啟用,此命令將有返回值。此命令沒有輸出信息。

例: 將 home 區域的 ssh 服務轉發到 127.0.0.2

?
1
firewall-cmd --permanent --zone=home --add-forward-port=port=22:proto=tcp:toaddr=127.0.0.2

直接選項

直接選項主要用于使服務和應用程序能夠增加規則。 規則不會被保存,在重新加載或者重啟之后必須再次提交。傳遞的參數 <args> 與 iptables, ip6tables 以及 ebtables 一致。

選項–direct需要是直接選項的第一個參數。

將命令傳遞給防火墻。參數 <args> 可以是 iptables, ip6tables 以及 ebtables 命令行參數。

?
1
firewall-cmd --direct --passthrough { ipv4 | ipv6 | eb } <args>

為表 <table> 增加一個新鏈 <chain> 。

?
1
firewall-cmd --direct --add-chain { ipv4 | ipv6 | eb } <table> <chain>

從表 <table> 中刪除鏈 <chain> 。

?
1
firewall-cmd --direct --remove-chain { ipv4 | ipv6 | eb } <table> <chain>

查詢 <chain> 鏈是否存在與表 <table>. 如果是,返回0,否則返回1.

?
1
firewall-cmd --direct --query-chain { ipv4 | ipv6 | eb } <table> <chain>

如果啟用,此命令將有返回值。此命令沒有輸出信息。

獲取用空格分隔的表 <table> 中鏈的列表。

?
1
firewall-cmd --direct --get-chains { ipv4 | ipv6 | eb } <table>

為表 <table> 增加一條參數為 <args> 的鏈 <chain> ,優先級設定為 <priority>。

?
1
firewall-cmd --direct --add-rule { ipv4 | ipv6 | eb } <table> <chain> <priority> <args>

從表 <table> 中刪除帶參數 <args> 的鏈 <chain>。

?
1
firewall-cmd --direct --remove-rule { ipv4 | ipv6 | eb } <table> <chain> <args>

查詢帶參數 <args> 的鏈 <chain> 是否存在表 <table> 中. 如果是,返回0,否則返回1.

?
1
firewall-cmd --direct --query-rule { ipv4 | ipv6 | eb } <table> <chain> <args>

如果啟用,此命令將有返回值。此命令沒有輸出信息。

獲取表 <table> 中所有增加到鏈 <chain> 的規則,并用換行分隔。

?
1
firewall-cmd --direct --get-rules { ipv4 | ipv6 | eb } <table> <chain>

當前的firewalld特性

D-BUS接口

D-BUS 接口提供防火墻狀態的信息,使防火墻的啟用、停用或查詢設置成為可能。

區域

網絡或者防火墻區域定義了連接的可信程度。firewalld 提供了幾種預定義的區域。區域配置選項和通用配置信息可以在firewall.zone(5)的手冊里查到。

服務

服務可以是一系列本讀端口、目的以及附加信息,也可以是服務啟動時自動增加的防火墻助手模塊。預定義服務的使用使啟用和禁用對服務的訪問變得更加簡單。服務配置選項和通用文件信息在 firewalld.service(5) 手冊里有描述。

ICMP類型

Internet控制報文協議 (ICMP) 被用以交換報文和互聯網協議 (IP) 的錯誤報文。在 firewalld 中可以使用 ICMP 類型來限制報文交換。 ICMP 類型配置選項和通用文件信息可以參閱 firewalld.icmptype(5) 手冊。

直接接口

直接接口主要用于服務或者應用程序增加特定的防火墻規則。這些規則并非永久有效,并且在收到 firewalld 通過 D-Bus 傳遞的啟動、重啟、重載信號后需要重新應用。

運行時配置

運行時配置并非永久有效,在重新加載時可以被恢復,而系統或者服務重啟、停止時,這些選項將會丟失。

永久配置

永久配置存儲在配置文件種,每次機器重啟或者服務重啟、重新加載時將自動恢復。

托盤小程序

托盤小程序 firewall-applet 為用戶顯示防火墻狀態和存在的問題。它也可以用來配置用戶允許修改的設置。

圖形化配置工具

firewall daemon 主要的配置工具是 firewall-config 。它支持防火墻的所有特性(除了由服務/應用程序增加規則使用的直接接口)。 管理員也可以用它來改變系統或用戶策略。

命令行客戶端

firewall-cmd是命令行下提供大部分圖形工具配置特性的工具。

對于ebtables的支持

要滿足libvirt daemon的全部需求,在內核 netfilter 級上防止 ip*tables 和 ebtables 間訪問問題,ebtables 支持是需要的。由于這些命令是訪問相同結構的,因而不能同時使用。

/usr/lib/firewalld中的默認/備用配置

該目錄包含了由 firewalld 提供的默認以及備用的 ICMP 類型、服務、區域配置。由 firewalld 軟件包提供的這些文件不能被修改,即使修改也會隨著 firewalld 軟件包的更新被重置。 其他的 ICMP 類型、服務、區域配置可以通過軟件包或者創建文件的方式提供。

/etc/firewalld中的系統配置設置
存儲在此的系統或者用戶配置文件可以是系統管理員通過配置接口定制的,也可以是手動定制的。這些文件將重載默認配置文件。

為了手動修改預定義的 icmp 類型,區域或者服務,從默認配置目錄將配置拷貝到相應的系統配置目錄,然后根據需求進行修改。

如果你加載了有默認和備用配置的區域,在 /etc/firewalld下的對應文件將被重命名為 <file>.old 然后啟用備用配置。

正在開發的特性

富語言

富語言特性提供了一種不需要了解iptables語法的通過高級語言配置復雜 IPv4 和 IPv6 防火墻規則的機制。
Fedora 19 提供了帶有 D-Bus 和命令行支持的富語言特性第2個里程碑版本。第3個里程碑版本也將提供對于圖形界面 firewall-config 的支持。

鎖定

鎖定特性為 firewalld 增加了鎖定本地應用或者服務配置的簡單配置方式。它是一種輕量級的應用程序策略。

Fedora 19 提供了鎖定特性的第二個里程碑版本,帶有 D-Bus 和命令行支持。第3個里程碑版本也將提供圖形界面 firewall-config 下的支持。

永久直接規則

這項特性處于早期狀態。它將能夠提供保存直接規則和直接鏈的功能。通過規則不屬于該特性。

從ip*tables和ebtables服務遷移

這項特性處于早期狀態。它將盡可能提供由iptables,ip6tables 和 ebtables 服務配置轉換為永久直接規則的腳本。此特性在由firewalld提供的直接鏈集成方面可能存在局限性。
此特性將需要大量復雜防火墻配置的遷移測試。

計劃和提議功能

防火墻抽象模型

在 ip*tables 和 ebtables 防火墻規則之上添加抽象層使添加規則更簡單和直觀。要抽象層功能強大,但同時又不能復雜,并不是一項簡單的任務。為此,不得不開發一種防火墻語言。使防火墻規則擁有固定的位置,可以查詢端口的訪問狀態、訪問策略等普通信息和一些其他可能的防火墻特性。

對于conntrack的支持

要終止禁用特性已確立的連接需要 conntrack 。不過,一些情況下終止連接可能是不好的,如:為建立有限時間內的連續性外部連接而啟用的防火墻服務。

用戶交互模型

這是防火墻中用戶或者管理員可以啟用的一種特殊模式。應用程序所有要更改防火墻的請求將定向給用戶知曉,以便確認和否認。為一個連接的授權設置一個時間限制并限制其所連主機、網絡或連接是可行的。配置可以保存以便將來不需通知便可應用相同行為。 該模式的另一個特性是管理和應用程序發起的請求具有相同功能的預選服務和端口的外部鏈接嘗試。服務和端口的限制也會限制發送給用戶的請求數量。

用戶策略支持

管理員可以規定哪些用戶可以使用用戶交互模式和限制防火墻可用特性。

端口元數據信息(由 Lennart Poettering 提議)

擁有一個端口獨立的元數據信息是很好的。當前對 /etc/services 的端口和協議靜態分配模型不是個好的解決方案,也沒有反映當前使用情況。應用程序或服務的端口是動態的,因而端口本身并不能描述使用情況。

元數據信息可以用來為防火墻制定簡單的規則。下面是一些例子:

  1. 允許外部訪問文件共享應用程序或服務
  2. 允許外部訪問音樂共享應用程序或服務
  3. 允許外部訪問全部共享應用程序或服務
  4. 允許外部訪問 torrent 文件共享應用程序或服務
  5. 允許外部訪問 http 網絡服務

這里的元數據信息不只有特定應用程序,還可以是一組使用情況。例如:組“全部共享”或者組“文件共享”可以對應于全部共享或文件共享程序(如:torrent 文件共享)。這些只是例子,因而,可能并沒有實際用處。

這里是在防火墻中獲取元數據信息的兩種可能途徑:

第一種是添加到 netfilter (內核空間)。好處是每個人都可以使用它,但也有一定使用限制。還要考慮用戶或系統空間的具體信息,所有這些都需要在內核層面實現。

第二種是添加到 firewall daemon 中。這些抽象的規則可以和具體信息(如:網絡連接可信級、作為具體個人/主機要分享的用戶描述、管理員禁止完全共享的應歸則等)一起使用。

第二種解決方案的好處是不需要為有新的元數據組和納入改變(可信級、用戶偏好或管理員規則等等)重新編譯內核。這些抽象規則的添加使得 firewall daemon 更加自由。即使是新的安全級也不需要更新內核即可輕松添加。

sysctld

現在仍有 sysctl 設置沒有正確應用。一個例子是,在 rc.sysinit 正運行時,而提供設置的模塊在啟動時沒有裝載或者重新裝載該模塊時會發生問題。

另一個例子是 net.ipv4.ip_forward ,防火墻設置、libvirt 和用戶/管理員更改都需要它。如果有兩個應用程序或守護進程只在需要時開啟 ip_forwarding ,之后可能其中一個在不知道的情況下關掉服務,而另一個正需要它,此時就不得不重啟它。

sysctl daemon 可以通過對設置使用內部計數來解決上面的問題。此時,當之前請求者不再需要時,它就會再次回到之前的設置狀態或者是直接關閉它。

防火墻規則

netfilter 防火墻總是容易受到規則順序的影響,因為一條規則在鏈中沒有固定的位置。在一條規則之前添加或者刪除規則都會改變此規則的位置。 在靜態防火墻模型中,改變防火墻就是重建一個干凈和完善的防火墻設置,且受限于 system-config-firewall / lokkit 直接支持的功能。也沒有整合其他應用程序創建防火墻規則,且如果自定義規則文件功能沒在使用 s-c-fw / lokkit 就不知道它們。默認鏈通常也沒有安全的方式添加或刪除規則而不影響其他規則。

動態防火墻有附加的防火墻功能鏈。這些特殊的鏈按照已定義的順序進行調用,因而向鏈中添加規則將不會干擾先前調用的拒絕和丟棄規則。從而利于創建更為合理完善的防火墻配置。

下面是一些由守護進程創建的規則,過濾列表中啟用了在公共區域對 ssh , mdns 和 ipp-client 的支持:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
*filter
:INPUT ACCEPT [0:0]:FORWARD ACCEPT [0:0]:OUTPUT ACCEPT [0:0]:FORWARD_ZONES - [0:0]:FORWARD_direct - [0:0]:INPUT_ZONES - [0:0]:INPUT_direct - [0:0]:IN_ZONE_public - [0:0]:IN_ZONE_public_allow - [0:0]:IN_ZONE_public_deny - [0:0]:OUTPUT_direct - [0:0]-A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -j INPUT_direct
-A INPUT -j INPUT_ZONES
-A INPUT -p icmp -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
-A FORWARD -i lo -j ACCEPT
-A FORWARD -j FORWARD_direct
-A FORWARD -j FORWARD_ZONES
-A FORWARD -p icmp -j ACCEPT
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
-A OUTPUT -j OUTPUT_direct
-A IN_ZONE_public -j IN_ZONE_public_deny
-A IN_ZONE_public -j IN_ZONE_public_allow
-A IN_ZONE_public_allow -p tcp -m tcp --dport 22 -m conntrack --ctstate NEW -j ACCEPT
-A IN_ZONE_public_allow -d 224.0.0.251/32 -p udp -m udp --dport 5353 -m conntrack --ctstate NEW -j ACCEPT
-A IN_ZONE_public_allow -p udp -m udp --dport 631 -m conntrack --ctstate NEW -j ACCEPT

使用 deny/allow 模型來構建一個清晰行為(最好沒有沖突規則)。例如: ICMP塊將進入 IN_ZONE_public_deny 鏈(如果為公共區域設置了的話),并將在 IN_ZONE_public_allow 鏈之前處理。

該模型使得在不干擾其他塊的情況下向一個具體塊添加或刪除規則而變得更加容易。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:http://www.centoscn.com/CentOS/Intermediate/2015/0313/4879.html

延伸 · 閱讀

精彩推薦
  • CentosCentOS 6.6實現永久修改DNS地址的方法

    CentOS 6.6實現永久修改DNS地址的方法

    這篇文章主要介紹了CentOS 6.6實現永久修改DNS地址的方法,涉及針對CentOS配置文件的相關設置技巧,具有一定參考借鑒價值,需要的朋友可以參考下 ...

    Linux社區4472020-08-21
  • CentosCentos 7開啟網卡自動獲取IP的詳細方法

    Centos 7開啟網卡自動獲取IP的詳細方法

    本篇文章主要介紹了Centos 7開啟網卡自動獲取IP的詳細方法,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧...

    凌鋒8972021-12-29
  • CentosCentOS7設置日期和時間方法以及基本概念介紹

    CentOS7設置日期和時間方法以及基本概念介紹

    這篇文章主要介紹了CentOS7設置日期和時間方法以及基本概念介紹,本文講解使用CentOS7中的新命令timedatectl設置日期時間方法,需要的朋友可以參考下 ...

    CentOS之家6522019-09-19
  • Centoscentos不小心刪除/root目錄該如何解決?

    centos不小心刪除/root目錄該如何解決?

    一些朋友最近在問小編centos不小心刪除/root目錄該如何解決?今天小編就為大家分享centos不小心刪除/root目錄解決辦法;希望對大家會有幫助,有需要的朋友...

    腳本之家8022019-05-29
  • CentosCentOS下Uptime命令詳解

    CentOS下Uptime命令詳解

    在Linux下,我們可以使用uptime命令,而且此命令不必使用root權限。uptime命令在系統中已經默認安裝了。今天小編為大家帶來的是CentOS下Uptime命令詳解;希望...

    CentOS之家11482019-06-19
  • CentosCentOS6.5下Redis安裝與配置詳細步驟

    CentOS6.5下Redis安裝與配置詳細步驟

    本篇文章主要介紹了CentOS6.5下Redis安裝與配置詳細步驟,詳細介紹redis單機單實例安裝與配置,服務及開機自啟動。有興趣的可以了解一下。...

    飛流11452021-12-24
  • CentosCentos7運用/dev/shm進行網站優化

    Centos7運用/dev/shm進行網站優化

    這篇文章主要介紹了LINUX中Centos7運用/dev/shm進行網站優化相關知識點,對此有興趣的朋友參考學習下。...

    彬菌9912022-03-02
  • Centoscentos 安裝與操作方法

    centos 安裝與操作方法

    這篇文章主要介紹了centos 安裝與操作方法,需要的朋友可以參考下...

    centos之家5272019-07-11
主站蜘蛛池模板: 中文字幕亚洲欧美 | 国产一区二区精品 | 成人精品免费视频 | 久草视频免费在线播放 | 一区二区三区免费观看 | 在线视频 中文字幕 | 日本在线中文 | 国产干干干 | 免费看国产片在线观看 | 激情五月婷 | 黄网免费看 | 国产精品乱码人人做人人爱 | 成人av免费在线播放 | 黄小视频| 欧美黑人xx | 日韩在线电影一区 | 国产美女自拍视频 | 激情五月婷婷 | 亚洲精品一区 | 国产美女精品视频 | 91色视频在线观看 | 在线观看亚洲视频 | 欧美成人a∨高清免费观看 亚洲国产精品尤物yw在线观看 | 国产一区二区三区在线 | 欧美日韩在线视频观看 | 亚洲午夜在线 | 美女搞黄网站 | 国产精品亚洲一区二区三区在线 | 国产成人精品一区二区三区网站观看 | 久热精品视频 | 欧美成视频 | 一级毛片视频 | 欧美国产在线观看 | 自拍偷拍 亚洲 | 三及毛片 | 久久久免费电影 | 国产999精品久久久久久麻豆 | 爱色av.com| 欧美日韩91 | 欧美激情一区二区 | 日本黄色a视频 |