簡介
-
Firewalld提供更加智能化的防火牆管理規則,優化策略配置方案,支持網絡“zones(域)”,併爲網絡及其關聯的鏈接、接口或源分配信任級別,不同信任級別默認開放服務不同。
-
支持IPV4,IPV6,以太網橋以及IPSET防火牆設置。
-
運行時態與永久配置分離,運行時態可手動更改,重置後回到永久配置(文件配置)
-
優化iptables添加規則,還支持圖形界面(本文不介紹),除了iptables,還有ip6tables和ebtables規則。
概念及架構
空間架構分爲上下兩層。
- 上層:firewalld D-Bus:命令主接口,修改防火牆配置主要方式。
firewall-cmd:主要命令行操作方式。
firewall-config:離線命令行操作模式,因爲直接作用於firewalld永久配置中,所以在firewall運行時不建議直接操作。
firewall-config:圖形配置模式。
firewall-applet:防火牆小程序。
- 下層(核心層):負責處理配置和後端,並含有iptables,ip6tables,ebtables,ipset模塊加載器。
核心組成
區域:
ZONE(防火牆區域定義鏈接、接口或源地址綁定的信任級別),共10(還有一種爲default)種,直接爲網域種的其他計算機建立信任關係度,不用進行麻煩的配置操作,只需要選擇一個zone即可,如若不滿足需要,還可手動添加信任服務。
Drop : 任何傳入的網絡的數據包都被丟棄
Block : 任何傳入網絡的數據包都被拒絕(包括ICMP),只能啓動網絡鏈接
Public : 在公共區域內使用,近接受選定的傳入鏈接(默認:僅ssh或dhcpv6-client服務鏈接)
External : 用於僞裝,出去的ipv4網絡鏈接通過此區域僞裝和轉發(默認:僅接受ssh服務鏈接)
Dmz : 對內部網絡訪問權限限制(默認:僅接受ssh服務鏈接)
Work : 用於工作區(默認:僅接受ssh,ipp-client或dhcpv6-client服務鏈接 )
Home : 用於家庭區(默認:僅接受ssh,mdns,ipp-client,samba-client或dhcpv6-client服務鏈接)
Internal : 內部,對網絡上的其他計算機信任的較高,默認大部分服務
Trusted : 最高信任級別,接受所有網絡鏈
區域 | 默認規則策略 |
---|---|
trusted | 允許所有的數據包 |
home | 拒絕流入的流量,除非與流出的流量相關,如果流量與ssh、mdns、ipp-client、amba-client、與dhcpv6-client服務相關,則允許流量 |
iinternal | 等同於home區域 |
work | 拒絕流入的流量,除非與流出的流量相關,如果流量與ssh、ipp-client與dhcpv6-client服務相關,則允許流量 |
public | 拒絕流入的流量,除非與流出的流量相關;如果流量與ssh、dhcpv6-client服務相關,則允許流量 |
external | 除非與流出的流量相關;如果流量與ssh服務先關,則允許流量 |
dmz | 拒絕流量,除非與流出的流量先關;如果流量與ssh服務相關,則允許流量 |
–get-default-zone | 查詢默認區域名稱 |
---|---|
–set-zone =<區域名稱> | 設置默認的區域,使其永久生效 |
–get-zones | 顯示可用區域 |
–get-services | 顯示預先定義的服務 |
–get-active-zones | 顯示當前正在使用的區域與網卡名稱 |
–add-source=xx | 將源自此ip或子網的流量到指定的區域 |
–remove-source=xx | 不再將源自此ip或子網的流量導向某個指定區域 |
–change-interface=<網卡名稱> | 將某個網卡與區域相關聯 |
–list-all | 顯示當前區域的網卡配置參數、資源、端口機服務等信息 |
–list-all-zones | 顯示所有區域的網卡配置參數、資源、端口機服務等信息 |
–add-service=<服務名> | 設置默認區域允許的該服務的流量 |
–add-port=<端口號/協議> | 設置默認區域允許的該端口的流量 |
–remove-port=<端口號/協議> | 設置默認區域不在允改端口的流量 |
–reload | 讓“永久生效”配置的規則立即生效,並覆蓋當前的配置規則 |
–panic-on | 開啓應急狀況模式 |
panic-off | 關閉應急狀況模式 |
-
當前生效模式(RUNtime)
-
永久生效 (Permanent)
案列
- 查看當前區域
[root@client_13 ~]# firewall-cmd --get-default-zone
public
[root@client_13 ~]#
[root@client_13 ~]#
- 網卡在哪個區域
[root@client_13 ~]#
[root@client_13 ~]# firewall-cmd --get-zone-of-interface=ens33
public
[root@client_13 ~]#
- 網卡改變到external區域 – 重啓仍然生效(永久模式)
[root@client_13 ~]# firewall-cmd --permanent --zone=external --change-interface=eht0
- 把firewalld服務的當前默認區域設置爲public
[root@client_13 ~]# firewall-cmd --set-default-zone=public
Warning: ZONE_ALREADY_SET: public
success
[root@client_13 ~]#
- 把firewalld服務設置爲應急模式(慎用)-- 相當於緊急模式(windows安全模式)
完全斷網狀態
[root@client_13 ~]# firewall-cmd --panic-off
- 查詢public區域是夠允許ssh和http服務
[root@client_13 ~]# firewall-cmd --zone=public --query-service=ssh
yes
[root@client_13 ~]# firewall-cmd --zone=public --query-service=http
http https
[root@client_13 ~]# firewall-cmd --zone=public --query-service=http
no
[root@client_13 ~]#
- 設置http爲永久允許
[root@client_13 ~]# firewall-cmd --permanent --zone=public --add-service=http
success
[root@client_13 ~]# firewall-cmd --reload
success
[root@client_13 ~]# firewall-cmd --permanent --zone=public --add-port=8080-8090/tcp
success
[root@client_13 ~]# firewall-cmd --zone=public --list-ports
[root@client_13 ~]# firewall-cmd --reload
success
[root@client_13 ~]# firewall-cmd --zone=public --list-ports
8080-8090/tcp
[root@client_13 ~]#
[root@client_13 ~]#
語法:
firewall-cmd --permanent --zone=public --add-forward-port=prot=888:proto=tcp:toport=22:roaddr=目的IP
[root@client_13 ~]# firewall-cmd --permanent --zone=public --add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.170.13
success
圖形界面使用
若果你是最小安裝,則先安裝圖形界面,然後再次執行
[root@client_13 ~]# yum -y groupinstall "Server with GUI" --- RHEL7.x
yum -y groupinstall "X Window System" Desktop --- RHEL6.x
啓動圖形界面:
[root@client_13 ~]#startx
ok!我的這裏就可以操作了,如果還時不行,說明你的x11forwarding爲no