爲什麼要學習firewalld--學習筆記

防火牆作爲公網和內網之間的保護屏障,對於保護服務器和數據的安全有着至關重要的作用,我們不能直接管理和修改服務器上的防火牆規則,只能通過管理工具去管理。在衆多的管理工具中,iptables和firewalld只是啓動的兩個工具而已,在redhat7之前一直使用的是iptables工具去管理服務器上的防火牆,但是在redhat7之後捨棄了iptables,取而代之的是firewalld。這就是爲什麼要去學習使用firewalld。

firewalld
簡介
firewalld擁有基於CLI(命令行界面)和GUI(圖形化界面)兩種管理方式。
和之前的iptables相比,firewalld支持動態更新技術並加入了區域(zone)的概念。區域就是firewalld提前準備好了幾套防火牆的規則模板,用戶可以根據不同的工作場景對模板進行動態切換,因爲不同的工作場景對安全的要求是不一樣的。避免了每次都手動去修改每一條防火牆的規則,這點確實是提高了效率。
fiewalld中常用的區域(模板):

區域(模板) 默認的規則
trusted 允許所有的數據報
home 拒絕流入的流量,除非與流出的流量有關;而如果流量與ssh mdns ipp-client amba-client dhcpv6-client服務有關,則允許流量
internal 等同於home
work 拒絕流入的流量,除非與流出的流量有關;而如果流量與ssh ipp-client dhcpv6-client服務有關,則允許流量
public 拒絕流入的流量,除非與流出的流量有關;而如果流量與ssh dhcpv6-client服務有關,則允許流量
external 拒絕流入的流量,除非與流出的流量有關;而如果流量與ssh服務有關,則允許流量
dmz 拒絕流入的流量,除非與流出的流量有關;而如果流量與ssh服務有關,則允許流量
block 拒絕流入的流量,除非與流出的流量有關
drop 拒絕流入的流量,除非與流出的流量有關
firewall-cmd管理工具
firewall-cmd是firewalld防火牆配置管理工具的CLI版本,參數支持tab補齊,firewalld配置有兩種模式:

運行時模式(Runtime),又叫做當前生效模式,在這個模式下配置的規則會立即生效,但是系統重啓會失效。
永久模式(Permanent),在添加規則是加上 --permanent參數,就可以配置到永久模式,但是永久模式的規則,需要下次重啓系統時纔會生效,如果想要是永久配置立即生效,可以手動執行 firewalld-cmd --reload 命令。

常用參數如下:

參數 作用
–get-default-zone 查詢默認的區域名稱
–set-default-zone=<區域名稱> 設置默認的區域,使其永久生效
–get-zones 顯示可用的區域
–get-services 顯示預先定義的服務
–get-active-zones 顯示當前正在使用的區域與網卡名稱
–add-source= 將源自此IP或者子網的流量導向指定的區域
–remove-source= 將此IP從指定區域刪除
–add-interface=<網卡名稱> 將源自這個網卡的所有流量都導向某個指定區域
–change-interface=<網卡名稱> 將某個網卡與區域進行關聯
–list-all 顯示當前區域的網卡配置參數、資源、端口以及服務信息
–list-all-zones 顯示所有區域的網卡配置參數、資源、端口以及服務信息
–add-service=<服務名> 設置默認區域允許該服務的流量
–add-port=<端口/協議> 設置默認區域允許該端口的流量
–remove-service=<服務名> 設置默認區域不允許該服務的流量
–remove-port=<端口/協議> 設置默認區域不允許該端口的流量
–reload 讓“永久生效”的配置規則立即生效,並覆蓋當前的配置規則
–panic-on 開啓應急狀況模式
–panic-off 關閉應急狀況模式
命令演示
查看當前所在的區域

[root@localhost Desktop]# firewall-cmd --get-default-zone
public
查詢網卡eno16777736所在的區域

[root@localhost Desktop]# firewall-cmd --get-zone-of-interface=eno16777736
public
將網卡eno16777736的默認區域修改爲external,並在系統重啓後生效。分別查看網卡eno16777736 在當前模式和用戶模式下的區域:

[root@localhost Desktop]# firewall-cmd --permanent --zone=external --change-interface=eno16777736
success
[root@localhost Desktop]# firewall-cmd --get-zone-of-interface=eno16777736
public
[root@localhost Desktop]# firewall-cmd --get-zone-of-interface=eno16777736 --permanent
external
把firewall服務的當前默認區域設置成public

[root@localhost Desktop]# firewall-cmd --set-default-zone=public
success
[root@localhost Desktop]# firewall-cmd --get-default-zone
public
啓動、關閉firewalld防火牆的應急狀況模式,阻斷一些網絡連接(當遠程控制服務器時慎用、慎用、慎用)

[root@localhost Desktop]# firewall-cmd --panic-on
success
[root@localhost Desktop]# firewall-cmd --panic-off
success
查詢public區域是否允須ssh和https協議的流量

[root@localhost Desktop]# firewall-cmd --zone=public --query-service=ssh
yes
[root@localhost Desktop]# firewall-cmd --zone=public --query-service=https
no
將https協議設置爲永久允許,並立即生效

[root@localhost Desktop]# firewall-cmd --permanent --zone=public --add-service=https
success
[root@localhost Desktop]# firewall-cmd --reload
success
將http洗衣設置爲永久拒絕,並立即生效

[root@localhost Desktop]# firewall-cmd --permanent --zone=public --remove-service=http
success
[root@localhost Desktop]# firewall-cmd --reload
success
將8080和8081端口設置爲允許,僅當前生效

[root@localhost Desktop]# firewall-cmd --zone=public --add-port=8080/tcp
success
[root@localhost Desktop]# firewall-cmd --zone=public --add-port=8081/tcp
success
[root@localhost Desktop]# firewall-cmd --list-ports
8081/tcp 8080/tcp
將本機的888端口轉發到222端口,當前和永久生效

端口轉發的格式:
firewall-cmd --permanent --zone=<區域名> --add-forward-port=port=<源端口>:proto=<協議>:toport=<目標端口>:toaddr=<目標IP地址>

[root@localhost Desktop]# firewall-cmd --permanent --zone=public --add-forward-port=port=888:proto=tcp:toport=22:toadr=192.168.137.10
success
添加一條富規則,使其拒絕192.168.10.0/24網段訪問本機的22端口

富規則表示更細緻、更詳細的防火牆策略配置,可以針對系統服務、端口、源地址和目標地址等多種信息進行配置,它的優先級在所有防火牆策略中也是最高的

[root@localhost Desktop]# firewall-cmd --permanent --zone=public --add-rich-rule=“rule family=“ipv4” source address=“192.168.10.0/24” service name=“ssh” reject”
success
圖形界面的配置
打開圖形界面的命令式firewall-config

[root@localhost Desktop]# firewall-config
爲什麼要學習firewalld–學習筆記

選擇模式
選擇區域
對服務進行設置,點擊服務前面的方框即可生效
對端口進行配置
開啓snat
設置端口轉發
管理ICMP
設置富規則
對網卡進行關聯設置
圖形界面比較簡單,在runtime模式下,設置完立即生效,不用其他操作
如果是在permanent模式設置的,最後需要點擊左上角菜單中的“Options”-“Reload Firewalld”,是永久配置立即生效。
這就是我對firwalld的簡單瞭解和基本的操作

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