作為一名系統(tǒng)管理員或開發(fā)者,你是否曾經(jīng)被 Linux 防火墻配置搞得頭大?在生產(chǎn)環(huán)境中,我們經(jīng)常需要配置防火墻來保護服務器安全,但面對 iptables 和 firewalld 這兩個工具,很多人都會覺得無從下手。別擔心!這篇文章將用通俗易懂的方式,帶你了解 CentOS 中的防火墻配置,并通過一個實際案例,手把手教你如何正確設置防火墻規(guī)則。
1.兩大防火墻工具
? firewalld:CentOS 7及以后版本的默認防火墻管理工具
? iptables:傳統(tǒng)的Linux防火墻管理工具
2.firewalld的特點
? 動態(tài)管理防火墻
? 支持網(wǎng)絡/防火墻區(qū)域(zone)定義網(wǎng)絡連接及接口的可信等級
? 運行時配置和永久配置分離
? 支持IPv4、IPv6
? 支持以太網(wǎng)橋接
3.firewalld與iptables的主要區(qū)別
? firewalld:
? 動態(tài)配置,無需重啟服務
? 支持動態(tài)更改規(guī)則
? 使用區(qū)域(zone)管理規(guī)則
配置文件存放地址:
/etc/firewalld/ # 系統(tǒng)配置文件目錄 /usr/lib/firewalld/ # 默認配置文件目錄
注意:
1./etc/firewalld/:優(yōu)先級高,用戶配置目錄
2./usr/lib/firewalld/:優(yōu)先級低,默認配置目錄
?
? 系統(tǒng)升級時會覆蓋此目錄
? 建議在/etc/firewalld/下修改配置
? iptables service:
?
? 靜態(tài)配置,規(guī)則修改后需重啟服務
? 規(guī)則修改需要先清除舊規(guī)則
? 使用鏈(chain)管理規(guī)則
配置文件存放地址:
`/etc/sysconfig/iptables # 規(guī)則配置文件`
4.firewalld不同區(qū)域
| 區(qū)域 | 說明 |
| 信任 | 可接收所有的網(wǎng)絡連接 |
| public | 除非與傳出流量相關(guān),或與 ssh 或 dhcpv6-client 預定義服務匹配,否則拒絕流量傳入 |
| work | 除非與傳出流量相關(guān),或與 ssh、ipp-client、dhcpv6-client 預定義服務匹配,否則拒絕流量傳入 |
| 家 | 除非與傳出流量相關(guān),或與 ssh、ipp-client、mdns、samba-client、dhcpv6-client 預定義服務匹配,否則拒絕流量傳入 |
| internal | 除非與傳出流量相關(guān),或與 ssh、ipp-client、mdns、samba-client、dhcpv6-client 預定義服務匹配,否則拒絕流量傳入 |
| external | 除非與傳出流量相關(guān),或與 ssh 預定義服務匹配,否則拒絕流量傳入 |
| dmz | 除非與傳出的流量相關(guān),或與 ssh 預定義服務匹配,否則拒絕流量傳入 |
| block | 除非與傳出流量相關(guān),否則拒絕所有傳入流量 |
| drop | 除非與傳出流量相關(guān),否則丟棄所有傳入流量,并且不產(chǎn)生包含 ICMP 的錯誤響應 |
5.三種配置方法
? firewall-config 圖形工具。
? firewall-cmd 命令行工具。
? /etc/firewalld/中的配置文件。
圖形化不過多解釋 需要的話你搜其他文章
防火墻基礎案例
+-------------+ +-------------+ +-------------+ | Client | | Firewall | | Apache | |192.168.14.112| |192.168.14.111| |Linux 服務器 | +-------------+ +-------------+ +-------------+ | | | | | | +--------------------+--------------------+
1. 禁止主機 ping 服務器
2. 只允許 192.168.8.130 主機訪問 SSH 服務
3. 允許所有主機訪問 Apache 服務
服務器配置
ip地址是192.168.14.111
yum install -y httpd [root@localhost ~]# echo 2024-12-3 > /var/www/html/index.html [root@localhost ~]# systemctl start httpd [root@localhost ~]# curl 127.0.0.1 2024-12-3
配置完成apache服務之后
客戶端是可以ping的

禁止Ping防火墻規(guī)則
# 啟動 firewalld 并設置為開機自啟動 systemctlstart firewalld systemctlenable firewalld # 禁止 ping 服務器 firewall-cmd--zone=public --add-icmp-block=echo-request --permanent firewall-cmd--reload # 驗證配置 firewall-cmd--list-all
客戶端測試

允許SSH登錄規(guī)則
# 移除默認區(qū)域的 SSH 服務 firewall-cmd--zone=public --remove-service=ssh --permanent # 只允許 192.168.8.130 主機訪問 SSH 服務 firewall-cmd--zone=work --add-source=192.168.14.112 --permanent firewall-cmd--zone=work --add-service=ssh --permanent firewall-cmd--reload # 驗證配置 firewall-cmd--list-all
客戶端測試
其他ip的主機遠程是拒絕了 因為只有 192.168.14.112可以遠程

192.168.14.112 主機可以遠程訪問

允許apache流量規(guī)則
# 允許所有主機訪問 Apache 服務 firewall-cmd --zone=public--add-service=http --permanent firewall-cmd --zone=public--add-service=https --permanent firewall-cmd --reload # 驗證配置 firewall-cmd --list-all
客戶端測試
為開放apache的流量之前
[root@localhost ~]# curl 192.168.14.111 curl: (7) Failed connect to 192.168.14.111:80; 沒有到主機的路由
開放之后 所有的主機均可以訪問的
[root@localhost ~]# curl 192.168.14.111 2024-12-3
總結(jié)
通過這篇文章,我們不僅學習了 firewalld 和 iptables 的基本概念,更重要的是通過一個實際的案例,展示了如何:
1. 輕松配置防火墻規(guī)則來阻止 ping 請求
2. 限制特定 IP 地址的 SSH 訪問,提高服務器安全性
3. 開放 HTTP 服務,讓網(wǎng)站正常對外提供服務
記住,防火墻配置不是一成不變的,你可以根據(jù)實際需求隨時調(diào)整規(guī)則。最重要的是理解每個配置背后的原理,這樣才能靈活應對各種場景。希望這篇文章能幫助你在實際工作中少走彎路,輕松搞定防火墻配置!
-
Linux
+關(guān)注
關(guān)注
88文章
11581瀏覽量
217174 -
服務器
+關(guān)注
關(guān)注
13文章
10013瀏覽量
90391 -
防火墻
+關(guān)注
關(guān)注
0文章
441瀏覽量
36550 -
CentOS
+關(guān)注
關(guān)注
0文章
84瀏覽量
14607
原文標題:Linux防火墻基礎部分Firewalld防火墻(小白入門級別)
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
發(fā)現(xiàn) STM32 防火墻的安全配置
防火墻的配置
談防火墻及防火墻的滲透技術(shù)
防火墻的控制端口
防火墻管理
Linux 防火墻配置基礎篇
什么是防火墻?防火墻如何工作?
如何在防火墻上創(chuàng)建虛擬防火墻
請問Centos7如何配置firewalld防火墻規(guī)則?

如何在CentOS系統(tǒng)中配置防火墻
評論