一、簡單介紹
Firewalld是CentOS系統自帶的一種動態防火墻管理工具。是一個前端工具,用于管理Linux系統上的netfilter防火墻規則。Firewalld提供了一種簡化和易于使用的方法來配置和管理防火墻。
二、特點和功能:
2.1、區域(Zone):
Firewalld使用區域來定義不同的網絡環境,如公共網絡、內部網絡和信任網絡等。每個區域都有自己的防火墻規則集合,可以根據網絡環境的不同選擇適當的區域。預定義的區域包括公共(public)、私有(private)、可信(trusted)、工作(work)和家庭(home)。
2.2、運行時和永久配置:
Firewalld支持運行時和永久配置。運行時配置的更改在重新啟動后會被重置,而永久配置則會持久保存并在系統重新啟動后生效。
2.3、服務和端口:
Firewalld可以通過定義服務和端口來管理訪問控制。服務是一組預定義的規則,用于允許或拒絕特定的網絡服務。端口規則允許或拒絕特定的端口號。
2.4、動態更新:
Firewalld支持動態更新防火墻規則,這意味著您可以在運行時添加、刪除或修改規則,而無需重新加載整個防火墻配置。
2.5、連接跟蹤:
Firewalld使用連接跟蹤來跟蹤網絡連接狀態。它可以自動識別和允許與現有連接相關的回復流量。
2.6、D-Bus接口:
Firewalld提供了一個D-Bus接口,允許其他應用程序通過API與其交互,從而實現更高級的防火墻配置和管理。
總體而言,Firewalld提供了一種靈活而強大的方式來管理CentOS系統上的防火墻。它使管理員能夠輕松配置和調整防火墻規則,以保護系統免受未經授權的訪問和網絡攻擊。
三、如何設置規則
例子:使用Firewalld設置防火墻規則,以限制對nginx服務器8088端口的訪問,只允許IP為192.168.2.100的運維服務器訪問,同時對其他端口不做任何限制。
3.1、首先,確認防火墻服務已經啟動并正在運行,如果服務未啟動,請啟動服務;
#檢查防火墻狀態
systemctl status firewalld
#啟動防火墻服務
systemctl start firewalld
#檢查是否設置開機啟動
systemctl is-enabled firewalld
#設置開機啟動
systemctl enable firewalld
3.2、新建防火墻規則的服務,添加端口的TCP訪問規則;
#創建一個名為 "nginxserver" 的新服務,并設置其描述為 "nginx Service"。
firewall-cmd --permanent --new-service=nginxserver --set-description="nginx Service"
#將端口8088/tcp 添加到 "nginxserver" 服務的防火墻規則中。這將允許通過8088端口進行TCP通信。
firewall-cmd --permanent --service=nginxserver --add-port=8088/tcp
#重新加載防火墻配置,以使新的服務和規則生效。
firewall-cmd --reload
#查詢所有已定義的服務
firewall-cmd --get-services
#查詢特定服務的具體信息
firewall-cmd --info-service=nginxserver
#刪除特定服務的規則
firewall-cmd --permanent --delete-service=nginx-http
firewall-cmd --reload
3.3、新建一個防火墻區域,將IP地址添加到區域的源地址列表中,將服務添加到區域的服務列表中;
#創建一個名為 "opsserver" 的新區域,并設置其描述為 "Ops Server Zone"。這將在防火墻中創建一個新的區域。
firewall-cmd --permanent --new-zone=opsserver --set-description="Ops Server Zone"
#將IP地址 192.168.2.100 添加到 "opsserver" 區域的源列表中。這意味著只有來自該IP地址的流量才能通過該區域。
firewall-cmd --permanent --zone=opsserver --add-source=192.168.2.100
#將"nginxserver" 服務添加到 "opsserver" 區域的源列表中
firewall-cmd --permanent --zone=opsserver --add-service=nginxserver
#重新加載firewalld配置,以使新的服務和規則生效。
firewall-cmd --reload
#查詢已定義的區域
firewall-cmd --get-zones
#查詢特定區域的具體信息
firewall-cmd --zone=opsserver --list-all
#刪除特定區域的規則
firewall-cmd --permanent --delete-zone=
firewall-cmd --reload
#刪除特定區域中的規則內容
firewall-cmd --zone=<區域名稱> --remove-<規則類型>=<規則內容>
其中,將 <區域名稱> 替換為要刪除規則的區域名稱,<規則類型> 替換為要刪除的規則類型(例如rich-rule、service、port等),<規則內容> 替換為要刪除的規則內容。
注意:
①確保你有足夠的權限執行上述命令,否則可能需要使用 sudo
②以上命令中使用了 `--permanent` 選項,以確保規則在系統重啟后仍然有效。如果您想要在不重啟系統的情況下立即應用規則,請省略 `--permanent` 選項。
3.4、現在,只有來自 IP 地址為 192.168.2.100 的運維服務器的流量可以訪問端口 8088,其他所有流量都將被阻止。對于其他端口,沒有任何限制。
①當IP為192.168.2.100時,nginx訪問正常,可以ping通,并且端口訪問正常;
②當IP為192.168.2.13時,無法ping通nginx服務器,并且端口無法訪問,但是其他端口不受限制,可以正常訪問;
3.5、如果要設置僅可通過192.168.2.100訪問nginx服務器的8088端口,而其他所有端口和IP都禁止訪問,那么可以將默認的 Firewalld 區域設置為 "drop",在 "drop" 區域中,所有入站和出站的網絡連接都將被丟棄,而不會給任何響應。
#將默認的防火墻區域設置為 "drop",即丟棄所有連接。
firewall-cmd --set-default-zone=drop
firewall-cmd --reload
如何需要限制其他端口和IP訪問,只需要替換上面例子中的IP地址和端口號為你實際使用的值即可。
四、簡單的規則設置
在上面的方法中,我們通過新建規則中的服務和區域實現對特定服務的訪問控制,并根據網絡環境的安全性要求來限制不同區域的訪問權限。
當然,如果不需要復雜的控制也可直接在public區域中添加要限制的端口和IP地址就可以了。
4.1、檢查默認的區域,如果默認的Zone不是Public,則需切換到Public Zone;
#查詢默認的區域
firewall-cmd --get-default-zone
#將默認區域設置為public
firewall-cmd --set-default-zone=public
4.2、添加限制端口及IP的規則
#添加允許訪問端口8088的規則,只允許IP為192.168.2.100的訪問
firewall-cmd --permanent --add-rich-rule='rule family="ipv4" source address="192.168.2.100" port protocol="tcp" port="8088" accept'
#重新加載防火墻配置:
firewall-cmd --reload
4.3、驗證規則是否生效:
firewall-cmd --list-all
通過以上步驟同樣可以實現限制對端口8088的訪問,只允許IP為192.168.2.100的運維服務器訪問,并不對其他端口做任何限制。
五、查詢防火墻配置
#查看當前生效的防火墻規則
firewall-cmd --list-all
這將顯示當前活動區域的所有規則,包括允許的端口、源地址等信息。
#查看特定區域的規則
firewall-cmd --zone=--list-all
將``替換為你要查看規則的區域名稱,例如`public`、`restricted`等。
#查看特定端口的規則
firewall-cmd --zone=--list-ports
將``替換為你要查看規則的區域名稱。這將顯示指定區域中允許的端口列表。
#查看特定服務的規則
firewall-cmd --zone=--list-services
將``替換為你要查看規則的區域名稱。這將顯示指定區域中允許的服務列表。
通過以上命令將顯示與防火墻規則相關的信息,包括允許的端口、源地址、服務等。另外,也可以直接查看配置文件,Firewalld的配置目錄為/etc/firewalld/。
六、最后要說的
因為是邊學邊寫的這篇文章,所以內容很簡陋僅有一個例子,但也希望通過這一遍文章能夠讓你對firewalld防火墻配置有一點點了解,如果要熟練的掌握還需要深入的學習和不斷的練習,文章中如有錯誤請您留言指出,感謝感謝。
審核編輯:劉清
-
CMD命令
+關注
關注
0文章
28瀏覽量
8193 -
CentOS
+關注
關注
0文章
75瀏覽量
13635 -
TCP通信
+關注
關注
0文章
145瀏覽量
4150
原文標題:Centos7如何配置firewalld防火墻規則
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論