1. 程式人生 > >Linux系統中Firewalld防火牆

Linux系統中Firewalld防火牆

一.Firewalld防火牆概述

動態防火牆後臺程式firewalld提供了一個動態管理的防火牆,用以支援網路"zones",以分配對一個網路及其相關連結和介面一定程度的信任。它具備對IPv4和IPv6防火牆設定的支援。它支援乙太網橋,並有分離執行時間和永久性配置選擇。它還具備一個通向服務或者應用程式以直接增加防火牆規則的介面。

系統提供了影象化的配置工具firewall-config,system-config-firewall.提供命令列客戶端firewall-cmd,用以配置firewalld永久性或非永久性執行時間的改變。依次用iptables工具與執行資料包篩選的核心中的Netfilter通行
在這裡插入圖片描述

資料包的流通有三道防線:
1.server服務本身
如果服務埠沒開,資料出不來的。
2.perm 許可權(rwx)
服務埠開了,資料可以進來,但是許可權被限制。
3.selinux
firewall表格資料能否通過
底層命令iptables 網路過濾功能
input output限制資料包的進出

二.Firewalld啟動和控制管理

yum install -y firewalld firewall-config
systemctl start firewalld	##開啟防火牆
systemctl enable firewalld	##防火牆開機自啟
systemctl disable firewalld	##防火牆開機不自啟
systemctl stop firewalld	##關閉防火牆
systemctl mask firewalld	##凍結防火牆

三.Firewalld所有的域

在這裡插入圖片描述

四.使用命令列介面配置防火牆

firewall-cmd --state			##檢視防火牆狀態
firewall-cmd --get-active-zones		##檢視防火牆正在使用活躍的域

在這裡插入圖片描述

firewall-cmd --get-default-zone		##檢視防火牆預設使用的域

在這裡插入圖片描述

firewall-cmd --set-default-zone=dmz	##設定預設域為dmz(非軍事區)

在這裡插入圖片描述

firewall-cmd --get-zones		##檢視防火牆所有的域
firewall-cmd --zone=public --list-all	##檢視public域的資訊
firewall-cmd --zone=work --list-all 	##檢視work域的資訊
firewall-cmd --list-all-zones		##檢視所有的域的資訊

在這裡插入圖片描述

firewall-cmd --get-services		##檢視防火牆支援的服務名稱

在這裡插入圖片描述

systemctl start httpd
firewall-cmd --permanent --add-service=http ##防火牆永久允許http服務
firewall-cmd --reload	##重新整理防火牆

此時所有機器都可以訪問服務端的http服務
在這裡插入圖片描述

firewall-cmd --permanent --remove-service=http ##防火牆永久移除http服務
firewall-cmd --reload	##重新整理防火牆

在這裡插入圖片描述 此時所有機器都不可以訪問服務端的http服務
在這裡插入圖片描述

firewall-cmd --permanent --zone=trusted --add-source=172.25.254.77 ##特定ip永久新增
firewall-cmd --reload 

在這裡插入圖片描述 172.25.254.77可以訪問,其他未新增的ip主機不可以訪問
在這裡插入圖片描述

firewall-cmd --permanent --remove-source=172.25.254.77  --zone=trusted

在這裡插入圖片描述

firewall-cmd --zone=block --add-source=172.25.254.77
firewall-cmd --reload

在這裡插入圖片描述
172.25.254.77主機ping不通172.25.254.110。但是給迴應:
在這裡插入圖片描述

firewall-cmd --remove-source=172.25.254.77 --zone-drop

在這裡插入圖片描述

firewall-cmd --zone=drop --add-source=172.25.254.77
firewall-cmd --reload

172.25.254.77主機ping不通172.25.254.110。但是不給迴應,卡到那個介面不動了
在這裡插入圖片描述

firewall-cmd --remove-interface=eth0 --zone=public

在這裡插入圖片描述
在這裡插入圖片描述

firewall-cmd --change-interface=eth0 --zone=public
firewall-cmd --list-all

在這裡插入圖片描述

firewall-cmd --change-interface=eth0 --zone=trusted
firewall-cmd --list-all --zone=trusted

在這裡插入圖片描述
服務是/usr/lib/firewalld/services/目錄中以xml檔案格式寫的
在這裡插入圖片描述
http服務是以http.xml檔案控制的
在這裡插入圖片描述
在這裡插入圖片描述
設定http8080這個服務
在這裡插入圖片描述
在這裡插入圖片描述

firewall-cmd --permanent --remove-service=ssh

在這裡插入圖片描述
可以正常使用ssh服務
在這裡插入圖片描述

firewall-cmd --permanent --remove-service=ssh
firewall-cmd --reload                	##ssh服務移除後,不影響之前連線的ssh服務

在這裡插入圖片描述
在這裡插入圖片描述

  firewall-cmd --complete-reload		##ssh服務移除之後,影響之前和之後的ssh服務。已經連線ssh服務shell會卡到那