【記錄】firewall-cmd配置服務器防火牆

【記錄】firewall-cmd 配置服務器防火牆

版本:centos7 寫作時間:2020-05-30

一、firewalld簡介

firewalld 是centos7 默認的防火牆管理工具

1 優點

(1)支持動態更新,不重啓服務

(2)假如了zone的概念,可以在不同工作環境快速切換防火牆配置規則,域zone其實就是一個防火牆策略規則的集合

2 firewall的默認配置文件

/usr/lib/firewalld/ (系統·配置文件,儘量不要修改)
/etc/firewalld/ (用戶配置文件)

二 、firewalld的服務管理

服務管理

所謂服務管理,就是查看 某個服務是否開啓,是否開機自啓動,然後按需要改動它倆。

在centos7中,使用命令systemctl來管理服務。具體可參考博客 https://blog.csdn.net/qq_44817119/article/details/106357348

查看firewalld的當前運行狀態 systemctl status firewalld
啓動firewalld服務 systemctl start firewalld
重啓firewalld服務 systemctl restart firewalld
關閉firewalld服務 systemctl stop firewalld
設置firewlld爲開機自啓動 systemctl enable firewalld
查看firewalld開機自啓動是否設置成功 systemctl is-enabled firewalld
關閉firewalld的開機自啓動 systemctl distable firewalld

三、配置防火牆

推薦在測試新的並且可能有危險的規則時,可以使用額外選項以一定時間後自動刪除某個規則,從而防止管理員意外鎖定某個系統:–timemout

運行時配置、永久配置
運行時配置 firewall-cmd -zone=public -add-service=smtp 默認運作狀態(除非指定-permanent時爲永久配置),重啓失效,筆者猜測這就是前面說的firewalld的優點吧:支持動態更新,不重啓服務
永久配置 firewall-cmd -zone=public --add-serrvice=smtp -permanent 永久配置,不影響當前連接,重啓後生效firewall-cmd --reload
更新規則
firewall-cmd --reload 無需斷開連接,動態添加規則
firewall-cmd --complete-reload 斷開連接,類似重啓服務

1區域

區域
(1)區域分類
trusted 允許所有的數據包
home,internal 拒絕流入的數據包,除非與流出的數據包相關,或者是 ssh,mdns,ipp-client,samba-client與 dhcpv6-client服務則允許
work 拒絕流入的數據包,除非與流出的數據包相關 或者是 ssh ipp-client,dhcpv6-client
public 拒絕流入的數據包,除非與流出的數據包相關 或者是 ssh,dhcpv6-client
external 拒絕流入的數據包,除非與流出的數據包相關 ssh
dmz 拒絕流入的數據包,除非與流出的數據包相關 ssh
block 拒絕流入的數據包,除非與流出的數據包相關
drop 拒絕流入的數據包,除非與流出的數據包相關

列出的許多命令都採用 --zone=選項來確定所影響的區域,如果在這些命令中省略–zone,則將使用默認區域

(2)區域的查看與設置(tab鍵可以補全長參數)

firewall-cmd 參數

查看默認區域名稱 –get-default-zone
設置默認區域,使其永久生效 –set–default-zone=<區域名稱>
顯示可用的區域 –get-zones
顯示當前正在使用的區域或者網卡名稱 –get-active-zones
顯示所有區域的網卡配置參數、資源、端口以及服務信息等 –list-all-zones
查看指定網卡所屬區域 –get-zone-of-interface=網卡名稱
將網卡添加到某區域 –zone=public --add-interface=網卡名稱

demo:

#獲取默認區域
[root@centos7 yue]# firewall-cmd --get-default-zone
public
#獲取所有區域
[root@centos7 yue]# firewall-cmd --get-zones
block dmz drop external home internal public trusted work
#獲取當前正在使用的區域
[root@centos7 yue]# firewall-cmd --get-active-zone
public
  interfaces: ens33 bridge0
#獲取網卡ens33所在的區域
[root@centos7 yue]# firewall-cmd --get-zone-of-interface=ens33
public
#列出所有區域的網卡配置參數、端口、資源以及服務等
[root@centos7 yue]# firewall-cmd  --list-all-zones
block
  target: %%REJECT%%
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: 
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	

dmz
  target: default
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: ssh
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
	

drop
  target: DROP
  icmp-block-inversion: no
  interfaces: 
  sources: 
  services: 
  ports: 
  protocols: 
  masquerade: no
  forward-ports: 
  source-ports: 
  icmp-blocks: 
  rich rules: 
  
  ·······

2 端口

端口
查看某個域開放的端口 firewall-cmd --zone=public --list-ports
在某個域中加入一個端口 firewall-cmd --zone=dmz --add-port=8080/tcp

3 服務

服務
查看開啓了哪些服務 firewall-cmd --zone=public --get-services
查看某個服務是否開啓 firewall-cmd --zone=public --query-service ftp
增加一個服務 firewall-cmd --zone=work --add-service=smtp
刪除一個服務 –romove-service=smtp

4 IP

IP

1 限制IP地址訪問

(1)禁止 IP爲192.168.43.100的地址訪問80端口

firewall-cmd  --permanent  --add-rich-rule="rule family="ipv4"  source  address="192.168.43.100"  port protocal="tcp"  port="80" reject"

(2) 重新載入防火牆規則,使設置生效

firewall-cmd   --reload

(3) 查看已經設置的規則

firewall-cmd  --zone=public  --list-rish-rules

2 解除IP地址限制

(1)解除剛纔被限制的192.168.43.100

firewall-cmd  --perrmanent  --add-rich-rule="rule family="ipv4"  source  address ="192.168.43.100"  port protocal="tcp"  port="80"  accept"

(2) 重新載入防火牆規則,使設置生效

firewall-cmd   --reload

(3) 查看已經沒有192.168.0.200的限制了

firewall-cmd  --zone=public  --list-rish-rules

如果設置未生效,可嘗試直接編輯規則文件,刪除原來的設置規則,重新載入防火牆即可

vim   /etc/firewalld/zones/public.xml

3 限制某IP地址段 對80端口的訪問

(1)如果我們需要限制192.168.43.0-192.168.43.255這一整段IP,禁止他們訪問

firewall-cmd  --permanent  --add-rich-rule="rule family ="ipv4"  source address="192.168.43.0/24"  port protocal="tcp"  port="80"  reject"

(2) 重新載入防火牆規則,使設置生效

firewall-cmd   --reload

5 常用查看命令

查看版本
firewall-cmd --version 查看版本
firewall-cmd --help 幫助信息

6 緊急模式

緊急模式
firewall-cmd --panic-on 開啓緊急模式,斷開所有網絡連接,遠程控制的服務器不要這麼幹,ssh不過去了。
firewall-cmd --panic-off 關閉緊急模式
firewall-cmd --query-panic 查看是否開啓了緊急模式
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章