Firewalld防火墻安全防護(hù)
引言
Firewalld 服務(wù)是紅帽 RHEL7 系統(tǒng)中默認(rèn)的防火墻管理工具,特點是擁有運行時配置與永久配置選項且能夠支持動態(tài)更新以及 "zone" 的區(qū)域功能概念,使用圖形化工具 firewall-config 或文本管理工具 firewall-cmd,下面實驗中會講到~
區(qū)域概念與作用
防火墻的網(wǎng)絡(luò)區(qū)域定義了網(wǎng)絡(luò)連接的可信等級,我們可以根據(jù)不同場景來調(diào)用不同的 firewalld 區(qū)域,區(qū)域規(guī)則有:
| 區(qū)域 | 默認(rèn)規(guī)則策略 |
|---|---|
| trusted | 允許所有的數(shù)據(jù)包。 |
| home | 拒絕流入的數(shù)據(jù)包,除非與輸出流量數(shù)據(jù)包相關(guān)或是 ssh,mdns,ipp-client,samba-client 與 dhcpv6-client 服務(wù)則允許。 |
| internal | 等同于 home 區(qū)域 |
| work | 拒絕流入的數(shù)據(jù)包,除非與輸出流量數(shù)據(jù)包相關(guān)或是 ssh,ipp-client 與 dhcpv6-client 服務(wù)則允許。 |
| public | 拒絕流入的數(shù)據(jù)包,除非與輸出流量數(shù)據(jù)包相關(guān)或是 ssh,dhcpv6-client 服務(wù)則允許。 |
| external | 拒絕流入的數(shù)據(jù)包,除非與輸出流量數(shù)據(jù)包相關(guān)或是 ssh 服務(wù)則允許。 |
| dmz | 拒絕流入的數(shù)據(jù)包,除非與輸出流量數(shù)據(jù)包相關(guān)或是 ssh 服務(wù)則允許。 |
| block | 拒絕流入的數(shù)據(jù)包,除非與輸出流量數(shù)據(jù)包相關(guān)。 |
| drop | 拒絕流入的數(shù)據(jù)包,除非與輸出流量數(shù)據(jù)包相關(guān)。 |
簡單來講就是為用戶預(yù)先準(zhǔn)備了幾套規(guī)則集合,我們可以根據(jù)場景的不同選擇合適的規(guī)矩集合,而默認(rèn)區(qū)域是 public。
字符管理工具
如果想要更高效的配置妥當(dāng)防火墻,那么就一定要學(xué)習(xí)字符管理工具 firewall-cmd 命令, 命令參數(shù)有:
| 參數(shù) | 作用 |
|---|---|
| --get-default-zone | 查詢默認(rèn)的區(qū)域名稱。 |
| --set-default-zone=<區(qū)域名稱> | 設(shè)置默認(rèn)的區(qū)域,永久生效。 |
| --get-zones | 顯示可用的區(qū)域。 |
| --get-services | 顯示預(yù)先定義的服務(wù)。 |
| --get-active-zones | 顯示當(dāng)前正在使用的區(qū)域與網(wǎng)卡名稱。 |
| --add-source= | 將來源于此 IP 或子網(wǎng)的流量導(dǎo)向指定的區(qū)域。 |
| --remove-source= | 不再將此 IP 或子網(wǎng)的流量導(dǎo)向某個指定區(qū)域。 |
| --add-interface=<網(wǎng)卡名稱> | 將來自于該網(wǎng)卡的所有流量都導(dǎo)向某個指定區(qū)域。 |
| --change-interface=<網(wǎng)卡名稱> | 將某個網(wǎng)卡與區(qū)域做關(guān)聯(lián)。 |
| --list-all | 顯示當(dāng)前區(qū)域的網(wǎng)卡配置參數(shù),資源,端口以及服務(wù)等信息。 |
| --list-all-zones | 顯示所有區(qū)域的網(wǎng)卡配置參數(shù),資源,端口以及服務(wù)等信息。 |
| --add-service=<服務(wù)名> | 設(shè)置默認(rèn)區(qū)域允許該服務(wù)的流量。 |
| --add-port=<端口號/協(xié)議> | 允許默認(rèn)區(qū)域允許該端口的流量。 |
| --remove-service=<服務(wù)名> | 設(shè)置默認(rèn)區(qū)域不再允許該服務(wù)的流量。 |
| --remove-port=<端口號/協(xié)議> | 允許默認(rèn)區(qū)域不再允許該端口的流量。 |
| --reload | 讓 “永久生效” 的配置規(guī)則立即生效,覆蓋當(dāng)前的。 |
特別需要注意的是 firewalld 服務(wù)有兩份規(guī)則策略配置記錄,必需要能夠區(qū)分:
- RunTime: 當(dāng)前正在生效的。
- Permanent: 永久生效的。
當(dāng)下面實驗修改的是永久生效的策略記錄時,必須執(zhí)行 "--reload" 參數(shù)后才能立即生效,否則要重啟后再生效。
查看當(dāng)前的區(qū)域:
$ firewall-cmd --get-default-zone public
查詢 eno16777728 網(wǎng)卡的區(qū)域:
$ firewall-cmd --get-zone-of-interface=eno16777728 public
在 public 中分別查詢 ssh 與 http 服務(wù)是否被允許:
$ firewall-cmd --zone=public --query-service=ssh yes $ firewall-cmd --zone=public --query-service=http no
設(shè)置默認(rèn)規(guī)則為 dmz:
$ firewall-cmd --set-default-zone=dmz
讓 “永久生效” 的配置文件立即生效:
$ firewall-cmd --reload success
啟動/關(guān)閉應(yīng)急狀況模式,阻斷所有網(wǎng)絡(luò)連接:
應(yīng)急狀況模式啟動后會禁止所有的網(wǎng)絡(luò)連接,一切服務(wù)的請求也都會被拒絕,當(dāng)心,請慎用。
$ firewall-cmd --panic-on success $ firewall-cmd --panic-off success
如果您已經(jīng)能夠完全理解上面練習(xí)中 firewall-cmd 命令的參數(shù)作用,不妨來嘗試完成下面的模擬訓(xùn)練吧:
模擬訓(xùn)練 1
允許 https 服務(wù)流量通過 public 區(qū)域,要求立即生效且永久有效:
方法一: 分別設(shè)置當(dāng)前生效與永久有效的規(guī)則記錄:
$ firewall-cmd --zone=public --add-service=https $ firewall-cmd --permanent --zone=public --add-service=https
方法二: 設(shè)置永久生效的規(guī)則記錄后讀取記錄:
$ firewall-cmd --permanent --zone=public --add-service=https $ firewall-cmd --reload
模擬訓(xùn)練 2
不再允許 http 服務(wù)流量通過 public 區(qū)域,要求立即生效且永久生效:
$ firewall-cmd --permanent --zone=public --remove-service=http success
使用參數(shù) "--reload" 讓永久生效的配置文件立即生效:
$ firewall-cmd --reload success
模擬訓(xùn)練 3
允許 8080 與 8081 端口流量通過 public 區(qū)域,立即生效且永久生效:
$ firewall-cmd --permanent --zone=public --add-port=8080-8081/tcp $ firewall-cmd --reload
模擬訓(xùn)練 4
查看模擬實驗 C 中要求加入的端口操作是否成功:
$ firewall-cmd --zone=public --list-ports 8080-8081/tcp $ firewall-cmd --permanent --zone=public --list-ports 8080-8081/tcp
模擬實驗 5
將 eno16777728 網(wǎng)卡的區(qū)域修改為 external,重啟后生效:
$ firewall-cmd --permanent --zone=external --change-interface=eno16777728 success $ firewall-cmd --get-zone-of-interface=eno16777728 public
端口轉(zhuǎn)發(fā)功能可以將原本到某端口的數(shù)據(jù)包轉(zhuǎn)發(fā)到其他端口:
firewall-cmd --permanent --zone=<區(qū)域> --add-forward-port=port=<源端口號>:proto=<協(xié)議>:toport=<目標(biāo)端口號>:toaddr=<目標(biāo) IP 地址>
將訪問 192.168.10.10 主機 888 端口的請求轉(zhuǎn)發(fā)至 22 端口:
$ firewall-cmd --permanent --zone=public --add-forward-port=port=888:proto=tcp:toport=22:toaddr=192.168.10.10 success
使用客戶機的 ssh 命令訪問 192.168.10.10 主機的 888 端口:
$ ssh -p 888 192.168.10.10 The authenticity of host '[192.168.10.10]:888 ([192.168.10.10]:888)' can't be established. ECDSA key fingerprint is b8:25:88:89:5c:05:b6:dd:ef:76:63:ff:1a:54:02:1a. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '[192.168.10.10]:888' (ECDSA) to the list of known hosts. root@192.168.10.10's password: Last login: Sun Jul 19 21:43:48 2015 from 192.168.10.10
再次提示: 注意立即生效與重啟后依然生效的差別,千萬不要修改錯了。
模擬實驗 6
設(shè)置富規(guī)則,拒絕 192.168.10.0/24 網(wǎng)段的用戶訪問 ssh 服務(wù):
firewalld 服務(wù)的富規(guī)則用于對服務(wù)、端口、協(xié)議進(jìn)行更詳細(xì)的配置,規(guī)則的優(yōu)先級最高。
$ firewall-cmd --permanent --zone=public --add-rich-rule="rule family="ipv4"source address="192.168.10.0/24"service name="ssh"reject" success
以上就是Firewalld防火墻安全防護(hù)的詳細(xì)內(nèi)容,更多關(guān)于Firewalld防火墻的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Web網(wǎng)絡(luò)安全分析SQL注入繞過技術(shù)原理
這篇文章主要為大家介紹了Web網(wǎng)絡(luò)安全分析SQL注入繞過技術(shù)原理的詳細(xì)講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2021-11-11
DDoS攻擊與CC攻擊網(wǎng)絡(luò)安全的兩大挑戰(zhàn)如何應(yīng)對防御
這篇文章主要為大家介紹了面對DDoS攻擊與CC攻擊網(wǎng)絡(luò)安全的兩大挑戰(zhàn)應(yīng)該如何應(yīng)對,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2023-10-10
Web網(wǎng)絡(luò)安全解析cookie注入攻擊原理
這篇文章主要為大家介紹了Web網(wǎng)絡(luò)安全分析cookie注入攻擊原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2021-11-11
web網(wǎng)絡(luò)安全分析反射型XSS攻擊原理
這篇文章主要為大家介紹了web網(wǎng)絡(luò)安全分析反射型XSS攻擊原理詳細(xì)講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2021-11-11
Web網(wǎng)絡(luò)安全分析Base64注入攻擊原理詳解
這篇文章主要為大家介紹了Web網(wǎng)絡(luò)安全分析Base64注入攻擊原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2021-11-11

