CentOS 7防火牆firewalld管理基礎

基本概念

CentOS 7及以上的版本,默認的防火牆是firewalld,所以如果你輸入iptables配置防火牆報找不到命令時,你就要考慮用firewalld來管理防火牆了。
firewalld文檔連接

  • firewalld】:firewall daemon,提供動態管理防火牆的能力,並支持對網絡以及與其關聯的連接、接口和源定義信任級別
  • firewall-cmd】:firewalld的命令行管理工具,CentOS上防火牆的管理即主要依賴該命令
  • Runtime ConfigurationPermanent Configuration】:firewalld有兩種類型的配置:一種是運行時配置,另一種是持久化的配置。持久化配置在防火牆啓動或者重加載(reload)時加載爲運行時配置(所以防火牆真正生效的是運行時配置)。防火牆停止運行,運行時配置隨即失效;當防火牆重新啓動時,運行時配置即重新自持久化配置中加載。運行時配置不會被自動持久化,但是可以藉助命令將其持久化。
  • 【systemctl restart firewalld 與 firewall-cmd --reload】:前者是重啓firewalld服務,後者是重載firewalld的配置

firewalld結構:
在這裏插入圖片描述

firewalld服務啓停

啓動firewalld服務

systemctl start firewalld

關閉firewalld服務

systemctl stop firewalld

檢查firewalld服務狀態

systemctl status firewalld

注:查看firewalld啓動記錄
重啓firewalld服務

systemctl reload firewalld

注:修改了持久化的配置之後即需要重啓服務

查看frewalld狀態和配置

檢查firewalld運行狀態

firewall-cmd --state

注:查看firewalld是否運行
檢查firewalld配置內容

firewall-cmd --list-all

注:查看配置的服務、端口、目標、源等信息
重載firewalld配置內容

firewall-cmd --reload

注:修改的運行時的配置會在重載之後失效
查看firewalld版本

firewall-cmd -V
或者
firewall-cmd --version

配置firewalld

說明:

  • 如果要做持久化的配置,則加上 “–permanent” 參數;否則不加
  • 非持久化的配置,會立即生效,但是配置信息會在服務重啓、重載配置之後丟失
  • 持久化的配置,不會立即生效,需要服務重啓、或者重載配置之後纔會生效

下面會以持久化的配置爲例

端口配置

新增端口配置:

firewall-cmd --permanent --add-port 7001/tcp
firewall-cmd --reload

刪除端口配置:

firewall-cmd --permanent --remove-port 7001/tcp
firewall-cmd --reload

服務配置

新增服務配置:

firewall-cmd --permanent --add-service telnet
firewall-cmd --reload

刪除服務配置:

firewall-cmd --permanent --remove-service telnet
firewall-cmd --reload

查看服務信息:

firewall-cmd --info-service telnet

協議配置

增加協議配置:

firewall-cmd --permanent --add-protocol icmp
firewall-cmd --reload

刪除服務配置:

firewall-cmd --permanent --remove-protocol icmp
firewall-cmd --reload

rich rules配置

rich rules可以配置一些更加複雜的場景,–add-rich-rule的值就是具體的規則,例如允許來自某個IP的所有流量:

firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="192.168.2.1" accept"

禁止某個IP以某種協議訪問某個端口:

firewall-cmd --zone=drop --add-rich-rule="rule family="ipv4" source address="192.168.2.0/24" port protocol="tcp" port="22" reject"

firewall-cmd提供的配置能力非常豐富,具體的可以參考:
firewall-cmd man page

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章