CentOS7--Firewalld防火牆


  Firewalld服務是紅帽RHEL7系統中默認的防火牆管理工具,特點是擁有運行時配置永久配置選項且能夠支持動態更新以及"zone"的區域功能概念,使用圖形化工具firewall-config或文本管理工具firewall-cmd

 

 配置文件的位置:

  firewalld 的配置儲存在 /usr/lib/firewalld/ 和 /etc/firewalld/ 里的各種 XML 文件里,firewalld 優先使用 /etc/firewalld/services/ 里的文件。

通過編輯 /etc/firewalld/services/ 中的 XML 文件,服務可以被增加和刪除,/usr/lib/firewalld/services/ 文件可以作為模板使用。

 

區域概念與作用:

  防火牆的網絡區域定義了網絡連接的可信等級,我們可以根據不同場景來調用不同的firewalld區域,區域規則有:

   特別需要注意的是firewalld服務有兩份規則策略配置記錄,必需要能夠區分:

    RunTime:當前正在生效的。

    Permanent:永久生效的。

 

當下面實驗修改的是永久生效的策略記錄時,必須執行"--reload"參數后才能立即生效,否則要重啟后再生效。

開啟firewalld

 

systemctl start firewalld
systemctl enable firewalld

 

查看當前的區域:

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

查詢網卡的區域:

[root@Centos7 ~]# firewall-cmd --get-zone-of-interface=eno16777736
public

在public中分別查詢ssh與http服務是否被允許:

[root@Centos7 ~]# firewall-cmd --zone=public --query-service=ssh
yes
[root@Centos7 ~]# firewall-cmd --zone=public --query-service=http
no

設置默認規則為dmz:

[root@Centos7 ~]# firewall-cmd --set-default-zone=dmz
success

讓“永久生效”的配置文件立即生效:

[root@Centos7 ~]# firewall-cmd --reload
success

啟動/關閉應急狀況模式,阻斷所有網絡連接:

應急狀況模式啟動后會禁止所有的網絡連接,一切服務的請求也都會被拒絕,當心,請慎用。

[root@Centos7 ~]# firewall-cmd --panic-on
success [root@Centos7~]# firewall-cmd --panic-off
success

 

實例:

模擬訓練A:允許https服務流量通過public區域,要求立即生效且永久有效:

  方法一:分別設置當前生效與永久有效的規則記錄:

[root@Centos7 ~]#  firewall-cmd --zone=public --add-service=https
success
[root@Centos7 ~]# firewall-cmd --permanent --zone=public --add-service=https
success

  方法二:設置永久生效的規則記錄后讀取記錄:

[root@Centos7 ~]# firewall-cmd --permanent --zone=public --add-service=https
success
[root@Centos7 ~]# firewall-cmd --reload
success

模擬訓練B:不再允許http服務流量通過public區域,要求立即生效且永久生效:

[root@Centos7 ~]# firewall-cmd --permanent --zone=public --remove-service=http
success

[root@Centos7 ~]# firewall-cmd --reload 
success

模擬訓練C:允許8080與8081端口流量通過public區域,立即生效且永久生效:

[root@Centos7 ~]# firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp
success
[root@Centos7 ~]# firewall-cmd --reload 
success

模擬訓練D:查看模擬實驗中的規則:

[root@Centos7 ~]# firewall-cmd --zone=public --list-services 
dhcpv6-client http https ssh
[root@Centos7 ~]# firewall-cmd --zone=public --list-ports 
8080-8081/tcp

模擬實驗F:設置富規則,拒絕192.168.10.0/24網段的用戶訪問ssh服務:

[root@Centos7 ~]# firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4" source address="192.168.10.0/24" service name="ssh" reject"
success

 模擬實驗G:將訪問主機888端口的請求轉發至22端口:

[root@Centos7 ~]# firewall-cmd --permanent --zone=public --add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.0.85
success
[root@Centos7 ~]# firewall-cmd --reload 
success

在別的機器訪問192.168.0.85(Centos7)

[root@wls12c ~]$ ssh -p 888 192.168.0.85
root@192.168.0.85's password: 
Last login: Mon Jan 16 17:22:42 2017 from 192.168.0.85
[root@Centos7 ~]# 

 

 圖形管理工具
執行 firewall-config命令即可看到firewalld的防火牆圖形化管理工具,真的很強大,可以完成很多復雜的工作。
 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM