Firewall基礎命令

2021-10-23 10:52:00 字數 3733 閱讀 8733

firewall-cmd 命令

啟動、停止、檢視 firewalld 服務

[root@localhost ~]

# systemctl start firewalld //啟動 firewalld

[root@localhost ~]

# systemctl enable firewalld //設定 firewalld 為開機自啟動

如果 firewalld 正在執行,通過 systemctl status firewalld 或 firewall-cmd 命令 可以檢視其執行狀態。

[root@localhost ~]

# systemctl status firewalld

[root@localhost ~]

# firewall-cmd --state

如果想要禁用 firewalld,執行以下命令即可實現。

[root@localhost ~]

# systemctl stop firewalld //停止 firewalld

[root@localhost ~]

#systemctl disable firewalld //設定 firewalld 開機不自啟動

獲取預定義資訊

firewall-cmd 預定義資訊主要包括三種:可用的區域、可用的服務以及可用的 icmp 阻 塞型別,具體的檢視命令如下所示。

[root@localhost ~]

# firewall-cmd --get-zones //顯示預定義的區域

[root@localhost ~]

# firewall-cmd --get-service //顯示預定義的服務

[root@localhost ~]

# firewall-cmd --get-icmptypes //顯示預定義的 icmp 型別

firewall-cmd --get-icmptypes 命令的執行結果中各種阻塞型別的含義分別如下所示。

echo-reply:應答回應

parameter-problem:引數問題

edirect:重新定向

router-advertisement:路由器通告

router-solicitation:路由器徵尋

ource-quench:源端抑制

time-exceeded:超時

timestamp-reply:時間戳應答回應

timestamp-request:時間戳請求

區域管理

使用 firewall-cmd 命令可以實現獲取和管理區域,為指定區域繫結網路介面等功能,firewall-cmd 命令的區域管理選項說明如下。

具體操作如下所示。

顯示當前系統中的預設區域

[root@localhost ~]

# firewall-cmd --get-default-zone

顯示預設區域的所有規則
[root@localhost ~]

# firewall-cmd --list-all

顯示網路介面 ens33 對應區域
[root@localhost ~]

# firewall-cmd --get-zone-of-inte***ce=ens33

將網路介面 ens33 對應區域更改為 internal 區域
[root@localhost ~]

# firewall-cmd --zone=internal --change-inte***ce=ens33

the inte***ce is under control of networkmanager, setting zone to 'internal'

.success

[root@localhost ~]

# firewall-cmd --zone=internal --list-inte***ces

ens33

[root@localhost ~]

# firewall-cmd --get-zone-of-inte***ce=ens33

internal

顯示所有啟用區域
[root@localhost ~]

# firewall-cmd --get-active-zones

服務管理

為 了 方 便 管 理 , firewalld 預 先 定 義 了 很 多 服 務 , 存 放 在 /usr/lib/firewalld/services/ 目錄中,服務通過單個的 xml 配置檔案來指定。這些配置檔案則按以下格式命名:service-name.xml,每個檔案對應一項具體的網路服務,如 ssh 服 務等。與之對應的配置檔案中記錄了各項服務所使用的 tcp/udp 埠。在最新版本的 firewalld 中預設已經定義了 70 多種服務供我們使用,對於每個網路區域,均可以配置允 許訪問的服務。當預設提供的服務不適用或者需要自定義某項服務的埠時,我們需要將 service 配置檔案放置在 /etc/firewalld/services/ 目錄中。service 配置具有以下優點。

具體操作如下所示

為預設區域設定允許訪問的服務

[root@localhost ~]

# firewall-cmd --list-services //顯示預設區域內允許訪問的所有服務

[root@localhost ~]

# firewall-cmd --add-service=http //設定預設區域允許訪問 http 服務success

[root@localhost ~]

#firewall-cmd --add-service=https //設定預設區域允許訪問 https 服務

[root@localhost ~]

# firewall-cmd --list-services

[root@localhost ~]

# firewall-cmd --zone=internal --add-service=mysql //設定 internal 區域允許訪問 mysql 服務

[root@localhost~]

#firewall-cmd --zone=internal --remove-service=samba-client //設定 internal 區域不允許訪問 samba-client 服務

[root@localhost ~]

# firewall-cmd --zone=internal --list-services //顯示 internal 區域內允許訪問的所有服務

埠管理

在進行服務配置時,預定義的網路服務可以使用服務名配置,服務所涉及的埠就會自 動開啟。但是,對於非預定義的服務只能手動為指定的區域新增埠。例如,執行以下操作 即可實現在 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

兩種配置模式

firewall 常用命令

關閉防火牆 systemctl stop firewalld.service 停止firewall systemctl disable firewalld.service 禁止firewall開機啟動 開啟埠 firewall cmd zone public add port 80 tcp perm...

firewall 常用命令 update

允許指定ip到指定埠 firewall cmd permanent add rich rule rule family ipv4 source address 192.168.x.x port protocol tcp port 8080 accept firewall cmd permanent ...

Linux防火牆Firewall基礎詳細解讀

firewalld防火牆是centos7系統預設的防火牆管理工具,取代了之前的iptables防火牆,也是工作在網路層,屬於包過濾防火牆 firewalld和iptables都是用來管理防火牆的工具 屬於使用者態 來定義防火牆的各種規則功能,內部結構都指向netfilter網路過濾子系統 屬於核心態...