Linux防火牆基礎(Firewalld命令的使用)

Firewalld概述

Firewalld簡介

(1)支持網絡區域所定義的網絡鏈接以及接口安全的動態防火牆管理工具。
(2)支持IPv四、IPv6防火牆設置以及以太網橋接
(3)支持服務或應運程序直接添加防火牆規則口
(4)擁有兩種配置模式
運行時配置
永久配置mysql

Firewalld和iptables的關係

在這裏插入圖片描述

netfilter

(1)位於linux內核中的包過濾功能體系
(2)稱爲Linux防火牆的「內核態」linux

Firewalld/iptables

(1)Centos7默認的管理防火牆規則的工具(Firewalld)
(2)稱爲linux防火牆的「用戶態」sql

Firewalld和iptables的區別

Firewalld iptables
配置文件 /usr/lib/firewalld/、/etc/firewalld/ /etc/sysconfig/iptables
對規則的修改 不須要所有刷新策略,不丟失現行鏈接 須要所有刷新策略,丟失鏈接
防火牆類型 動態防火牆(靈活) 靜態防火牆

Firewalld網絡區域

區域介紹
區域 描述
drop(丟失) 任何接收的網絡數據包都被丟棄,沒有任何回覆。僅能有發送出去的網絡練鏈接
block(限制) 任何接收的網絡鏈接都被IPv4的icmp-host-prohibited信息和icmp6-adm-prohibited信息所拒絕
public (公共) 在公共區域內使用,不能相信網絡內的其餘計算機不會對您的計算機形成危害,只能接收通過選取的鏈接
external (外部) 特別是爲路由器啓用了假裝功能的外部網。您不能信任來自網絡的其餘計算,不能相信它們不會對您的計算機形成危害,只能接收通過選擇的鏈接
dmz (非軍事區) 用於您的非軍事區內的電腦,此區域內可公開訪問,能夠有限地進入您的內部網絡,僅僅接收通過選擇的鏈接
work (工做) 用於工做區。您能夠基本相信網絡內的其餘電腦不會危害您的電腦。僅僅接收通過選擇的鏈接用於家庭網絡。
home (家庭) 您能夠基本信任網絡內的其餘計算機不會危害您的計算機。僅僅接收通過選擇的鏈接
internal (內部) 用於內部網絡。您能夠基本上信任網絡內的其餘計算機不會威脅您的計算機。僅僅接受通過選擇的鏈接
trusted (信任) 可接受全部的網絡鏈接

Firewalld網絡區域

區域介紹

(1)區域如同進入主機的安全門,每一個區域都具備不一樣限制程度的規則
(2)可使用一我的或多個區域,可是任何一個活躍區域至少須要關聯源地址或接口
(3)默認狀況下,public區域是默認區域,包含全部接口(網卡)shell

Firewalld數據處理流程

檢查數據來源的源地址
(1)若源地址關聯到特定的區域,則執行該區域所指定的規則
(2)若源地址未關聯到特定的區域,則使用傳入網絡接口的區域並執行該區域所指定的規則。
(3)若網絡接口未關聯到特定的區域,則使用默認區域並執行該區域所指定的規則安全

Firewalld防火牆的配置方法

運行時配置

(1)實時生效,並持續至Firewalld從新啓動或從新加載配置
(2)不中斷現有鏈接
(3)不能修改服務配置網絡

永久配置

(1)不當即生效。除非Firewalld從新啓動或從新加載配置
(2)中斷現有鏈接
(3)能夠修改服務配置ssh

Firewalld-config圖形工具

運行時配置/永久配置

在這裏插入圖片描述

從新加載防火牆

更改永久配置並生效
在這裏插入圖片描述tcp

關聯網卡到指定區域
「區域」選項卡

(1)「服務」 子選項卡
(2)「端口」子選項卡
(3)「協議」子選項卡
(4)「源端口」子選項卡
(5)「假裝」子選項卡
(6)「端口轉發」子選項卡
(7)「ICMP過濾器」子選項卡
在這裏插入圖片描述ide

「服務」選項卡

(1)「模塊」子選項卡
(2)「目標地址」子選項卡工具

修改默認區域
鏈接狀態

Firewalld-cmd命令行工具

1)啓動、中止、查看 firewalld 服務

啓動 firewalld

[root@localhost ~]# systemctl start firewalld

設置 firewalld 爲開機自啓動

[root@localhost ~]# systemctl enable firewalld

若是 firewalld 正在運行,經過 systemctl status firewalld 或 firewall-cmd 命令 能夠查看其運行狀態

[root@localhost ~]# systemctl status firewalld

在這裏插入圖片描述

2)獲取預約義信息

firewall-cmd 預約義信息主要包括三種:可用的區域、可用的服務以及可用的 ICMP 阻
塞類型
顯示預約義的區域

[root@localhost ~]# firewall-cmd --get-zones

在這裏插入圖片描述
顯示預約義的服務

[root@localhost ~]# firewall-cmd --get-services

在這裏插入圖片描述
顯示預約義的 ICMP 類型

[root@localhost ~]# firewall-cmd --get-icmptypes

在這裏插入圖片描述
firewall-cmd --get-icmptypes 命令的執行結果中各類阻塞類型的含義分別以下所示。
(1) destination-unreachable:目的地址不可達。
(2)echo-reply:應答迴應(pong)。
(3) parameter-problem:參數問題。
(4) redirect:從新定向。
(5) router-advertisement:路由器通告。
(6) router-solicitation:路由器徵尋。
(7)source-quench:源端抑制。
(8) time-exceeded:超時。
(9) timestamp-reply:時間戳應答迴應。
(10) timestamp-request:時間戳請求。

3)區域管理

使用 firewall-cmd 命令能夠實現獲取和管理區域,爲指定區域綁定網絡接口等功能
(1)--get-default-zone 顯示網絡鏈接或接口的默認區域
(2)--set-default-zone=<zone> 設置網絡鏈接或接口的默認區域
(3)--get-active-zones 顯示已激活的全部區域
(4)--get-zone-of-interface=<interface> 顯示指定接口綁定的區域
(5)--zone=<zone> --add-interface=<interface> 爲指定接口綁定區域
(6)--zone=<zone> --change-interface=<interface> 爲指定的區域更改綁定的網絡接口
(7)--zone=<zone> --remove-interface=<interface> 爲指定的區域刪除綁定的網絡接口
(8)--list-all-zones 顯示全部區域及其規則
(9)[--zone=<zone>] --list-all 顯示全部指定區域的全部規則,省略--zone=<zone>時表示僅 對默認區域操做
1)顯示當前系統中的默認區域。

[root@localhost ~]# firewall-cmd --get-default-zone

在這裏插入圖片描述
2)顯示默認區域的全部規則

[root@localhost ~]# firewall-cmd --list-all

在這裏插入圖片描述
3)顯示網絡接口 ens33 對應區域

[root@localhost ~]# firewall-cmd --get-zone-of-interface=ens33

在這裏插入圖片描述
4)將網絡接口 ens33 對應區域更改成 internal 區域。

[root@localhost ~]# firewall-cmd --zone=internal --change-interface=ens33

在這裏插入圖片描述
5)顯示全部激活區域。

[root@localhost ~]# firewall-cmd --get-active-zones

在這裏插入圖片描述

4)服務管理

爲 了 方 便 管 理 , firewalld 預 先 定 義 了 很 多 服 務 , 存 放 在 /usr/lib/firewalld/services/ 目錄中,服務經過單個的 XML 配置文件來指定。這些配置文件則按如下格式命名:service-name.xml,每一個文件對應一項具體的網絡服務,如 ssh 服
務等。與之對應的配置文件中記錄了各項服務所使用的 tcp/udp 端口。在最新版本的 firewalld 中默認已經定義了 70 多種服務供咱們使用,對於每一個網絡區域,都可以配置允 許訪問的服務。當默認提供的服務不適用或者須要自定義某項服務的端口時,咱們須要將 service 配置文件放置在 /etc/firewalld/services/ 目錄中。service 配置具備如下優勢。
(1) 經過服務名字來管理規則更加人性化。
(2) 經過服務來組織端口分組的模式更加高效,若是一個服務使用了若干個網絡端口,則服 務的配置文件就至關於提供了到這些端口的規則管理的批量操做快捷方式。
一、[--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>時表示對默認區域操做
(1)爲默認區域設置容許訪問的服務。
顯示默認區域內容許訪問的全部服務:

[root@localhost ~]# firewall-cmd --list-services

在這裏插入圖片描述
設置默認區域容許訪問 http 服務success

[root@localhost ~]# firewall-cmd --add-service=http

在這裏插入圖片描述
設置默認區域容許訪問 https 服務

[root@localhost ~]#firewall-cmd --add-service=https

在這裏插入圖片描述
(2)爲 internal 區域設置容許訪問的服務。
設置 internal 區域容許訪問 mysql 服務

[root@localhost ~]# firewall-cmd --zone=internal --add-service=mysql

在這裏插入圖片描述
設置 internal 區域不容許訪問 samba-client 服務

[root@localhost~]#firewall-cmd --zone=internal --remove-service=samba-client

在這裏插入圖片描述
顯示 internal 區域內容許訪問的全部服務

[root@localhost ~]# firewall-cmd --zone=internal --list-services

在這裏插入圖片描述

5)端口管理

在進行服務配置時,預約義的網絡服務可使用服務名配置,服務所涉及的端口就會自
動打開。可是,對於非預約義的服務只能手動爲指定的區域添加端口。例如,執行如下操做
便可實如今 internal 區域打開 443/TCP 端口。

[root@localhost ~]# firewall-cmd --zone=internal --add-port=443/tcp

在這裏插入圖片描述
若想實如今 internal 區域禁止 443/TCP 端口訪問,可執行如下命令。

[root@localhost ~]#firewall-cmd --zone=internal --remove-port=443/tcp

在這裏插入圖片描述

6)兩種配置模式

前面提到 firewall-cmd 命令工具備兩種配置模式:運行時模式(Runtime mode)表示 當前內存中運行的防火牆配置,在系統或 firewalld 服務重啓、中止時配置將失效;永久模 式(Permanent mode)表示重啓防火牆或從新加載防火牆時的規則配置,是永久存儲在配置 文件中的。
firewall-cmd 命令工具與配置模式相關的選項有三個。
(1) --reload:從新加載防火牆規則並保持狀態信息,即將永久配置應用爲運行時配置。
(2) --permanent:帶有此選項的命令用於設置永久性規則,這些規則只有在從新啓動 firewalld 或從新加載防火牆規則時纔會生效;若不帶有此選項,表示用於設置運行時 規則。
(3)--runtime-to-permanent:將當前的運行時配置寫入規則配置文件中,使之成爲永久性

/etc/firewalld/中的配置文件

(1)Firewalld會優先使用/etc/fireewalld/中的配置,若是不存在配置作文件,則使用/usr/bin/firewalld/中的配置(2)/etc/firewalld/:用戶自定義配置文件,須要時可經過從/usr/bin/firewalld/中拷貝(3)/usr/bin/firewalld/:默認配置文件,不建議修改,若恢復至默認配置,可直接刪除/etc/firewalld/中的配置

相關文章
相關標籤/搜索