支持網絡區域所定義的網絡連接以及接口安全等級的動態防火牆管理工具linux
支持IPv四、IPv6
防火 牆設置以及以太網橋安全
支持服務或應用程序直接添加防火牆規則接口網絡
擁有兩種配置模式tcp
運行時配置ide
永久配置模塊化
netfilter
是Linux2.4.x
以後新一代的Linux
防火牆機制,是linux
內核的一個子系統netfilter
採用模塊化設計,具備良好的可擴充性工具
Linux
內核中的包過濾功能體系Linux
防火牆的「內核態」CentOS7
默認的管理防火牆規則的工具(Firewalld)
Linux
防火牆的「用戶態」- | Firewalld | iptables |
---|---|---|
配置文件 | /usr/lib/firewalld <br/>/etc/firewalld/ |
/etc/sysconfig/iptables |
對規則的修改 | 不須要所有刷新策略,不丟失現行鏈接 | 須要所有刷新策略,丟失鏈接 |
靜態防火牆 | 動態防火牆(靈活) | 靜態防火牆 |
區域 | 描述 |
---|---|
drop (丟棄) |
任何接收的網絡數據包都被丟棄,沒有任何回覆。僅能有發送出去的網絡鏈接 |
block (限制) |
任何接收的網絡鏈接都被lPv4的icmp-host-prohibited信息和IPv6的icmp6-adm-prohibited信息所拒絕 |
public (公共) |
在公共區域內使用,不能相信網絡內的其餘計算機不會對您的計算機形成危害,只能接收通過選取的鏈接 |
external (外部) |
特別是爲路由器啓用了假裝功能的外部網。您不能信任來自網絡的其餘計算,不能相信它們不會對您的計算機形成危害,只能接收通過選擇的鏈接 |
dmz (非軍事區) |
用於您的非軍事區內的電腦,此區域內可公開訪問,能夠有限地進入您的內部網絡,僅僅接收通過選擇的鏈接 |
work (工做) |
用於工做區。您能夠基本相信網絡內的其餘電腦不會危害您的電腦。僅僅接收通過選擇的鏈接 |
home (家庭) |
用於家庭網絡。您能夠基本信任網絡內的其餘計算機不會危害您的計算機。僅僅接收通過選擇的鏈接 |
internal (內部) |
用於內部網絡。您能夠基本上信任網絡內的其餘計算機不會威脅您的計算機。僅僅接受通過選擇的鏈接 |
trusted (信任) |
可接受全部的網絡鏈接 |
Firewalld
從新啓動或從新加載配置Firewalld
從新啓動或從新加載配置啓動、中止、查看 firewalld
服務命令行
systemctl start firewalld //啓動 firewalld systemctl enable firewalld //設置 firewalld 爲開機自啓動 systemctl status firewalld //查看 firewalld 狀態信息 firewall-cmd --state //查看 firewalld 狀態信息 systemctl stop firewalld //中止 firewalld systemctl disable firewalld //設置 firewalld 開機不自啓動
獲取預約義信息設計
firewall-cmd
預約義信息主要包括三種:可用的區域、可用的服務以及可用的 ICMP
阻塞類型firewall-cmd --get-zones //顯示預約義的區域 firewall-cmd --get-service //顯示預約義的服務 firewall-cmd --get-icmptypes //顯示預約義的 ICMP 類型
firewall-cmd --get-icmptypes
命令的執行結果中各類阻塞類型的含義destination-unreachable
:目的地址不可達。 code
echo-reply
:應答迴應(pong)。
parameter-problem
:參數問題。
redirect
:從新定向。
router-advertisement
:路由器通告。
router-solicitation
:路由器徵尋。
source-quench
:源端抑制。
time-exceeded
:超時。
timestamp-reply
:時間戳應答迴應。
timestamp-request
:時間戳請求。
區域管理
firewall-cmd
命令能夠實現獲取和管理區域,爲指定區域綁定網絡接口等功能。選項 | 說明 |
---|---|
--get -default -zone |
顯示網絡鏈接或接口的默認區域 |
--set -default -zone=<zone> |
設置網絡鏈接或接口的默認區域 |
--get -active -zones |
顯示已激活的全部區域 |
--get- zone -of -interface=<interface> |
顯示指定接口綁定的區域 |
--zone=<zone> --add-interface=<interface> |
爲指定接口綁定區域 |
--zone=<zone> --change-interface=<interface> |
爲指定的區域更改綁定的網絡接口 |
--zone=<zone> --remove-interface=<interface> |
爲指定的區域刪除綁定的網絡接口 |
--list-all-zones |
顯示全部區域及其規則 |
[--zone=<zone>] --list-a |
顯示全部指定區域的全部規則,省略--zone=<zone> 時表示僅 |
firewalld
預先定義了 很 多 服 務 ,存放在/usr/lib/firewalld/services/
目錄中,服務經過單個的 XML
配置文件來指定,這些配置文件則按如下格式命名:service-name.xml
,每一個文件對應一項具體的網絡服務,當默認提供的服務不適用或者須要自定義某項服務的端口時,咱們須要將 service
配置文件放置在 /etc/firewalld/services/
目錄中。service
配置優勢:經過服務名字來管理規則更加人性化、經過服務來組織端口分組的模式更加高效,若是一個服務使用了若干個網絡端口,則服 務的配置文件就至關於提供了到這些端口的規則管理的批量操做快捷方式。firewall-cmd
命令區域中服務管理的經常使用選項說明:選項 | 說明 |
---|---|
[--zone=<zone>] --list-services |
顯示指定區域內容許訪問的全部服務 |
[--zone=<zone>] --add-service=<service> |
爲指定區域設置容許訪問的某項服務 |
[--zone=<zone>] --remove-service=<service> |
刪除指定區域已設置的容許訪問的某項服務 |
[--zone=<zone>] --list-ports |
顯示指定區域內容許訪問的全部端口號 |
[--zone=<zone>] --add-port=<portid>[-<portid>]/<protocol> |
爲指定區域設置容許訪問的某個/某段端口號 (包括協議名) |
[--zone=<zone>] --remove-port=<portid>[-<portid>]/<protocol> |
刪除指定區域已設置的容許訪問的端口號(包括協議名) |
[--zone=<zone>] --list-icmp-blocks |
顯示指定區域內拒絕訪問的全部 ICMP 類型 |
[--zone=<zone>] --add-icmp-block=<icmptype> |
爲指定區域設置拒絕訪問的某項 ICMP 類型 |
[--zone=<zone>] --remove-icmp-block=<icmptype> |
刪除指定區域已設置的拒絕訪問的某項 ICMP 類 型,省略--zone=<zone> 時表示對默認區域操做 |
端口管理
firewall-cmd --zone=internal --add-port=443/tcp //再internal區域打開443端口 firewall-cmd --zone=internal --remove-port=443/tcp //再internal區域禁用443端口
firewall-cmd
命令工具備兩種配置模式:運行時模式(Runtime mode)
表示 當前內存中運行的防火牆配置,在系統或 firewalld
服務重啓、中止時配置將失效、永久模 式(Permanent mode)
表示重啓防火牆或從新加載防火牆時的規則配置,是永久存儲在配置 文件中的。 firewall-cmd
命令工具與配置模式相關的選項有三個:選項 | 說明 |
---|---|
--reload |
從新加載防火牆規則並保持狀態信息,即將永久配置應用爲運行時配置 |
--permanent |
帶有此選項的命令用於設置永久性規則,這些規則只有在從新啓動 firewalld 或從新加載防火牆規則時纔會生效;若不帶有此選項,表示用於設置運行時規則 |
--runtime-to-permanent |
將當前的運行時配置寫入規則配置文件中,使之成爲永久性 |
Firewalld
會優先使用/etc/firewalld
/中的配置,若是不存在配置文件,則使用/usr/lib/firewalld/
中的配置/etc/firewalld/
:用戶自定義配置文件,須要時能夠經過從/usr/lib/firewalld/
中拷貝/usr/lib/firewalld/
:默認配置文件,不建議修改,若恢復至默認配置,可直接刪除/etc/firewalld/
中的配置