Linux系統中Firewalld防火牆
阿新 • • 發佈:2018-12-13
一.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會卡到那