# CentOS7防火墻怎么設置
## 前言
在Linux服務器管理中,防火墻是保障系統安全的重要組件。CentOS7默認使用firewalld作為動態防火墻管理工具,取代了舊版的iptables。本文將詳細介紹CentOS7防火墻的配置方法,包括基礎概念、常用操作和實際應用場景。
---
## 一、firewalld基礎概念
### 1. 與傳統iptables的區別
- **動態管理**:規則無需重啟立即生效
- **區域(zone)概念**:根據不同網絡環境預設規則
- **服務(service)管理**:以服務為單位管理端口
- **運行時(runtime)與永久(permanent)配置**:臨時修改與持久化配置分離
### 2. 核心組件
- **firewalld**:守護進程
- **firewall-cmd**:命令行工具
- **firewall-config**:圖形化工具(需安裝)
### 3. 默認區域說明
| 區域名稱 | 信任級別 | 適用場景 |
|----------|----------|----------|
| drop | 最低 | 丟棄所有傳入連接 |
| block | 低 | 拒絕所有傳入連接 |
| public | 默認 | 公共網絡 |
| internal | 中 | 內部網絡 |
| trusted | 最高 | 信任所有連接 |
---
## 二、防火墻基本操作
### 1. 服務管理
```bash
# 查看防火墻狀態
systemctl status firewalld
# 啟動防火墻
sudo systemctl start firewalld
# 停止防火墻
sudo systemctl stop firewalld
# 設置開機自啟
sudo systemctl enable firewalld
# 禁用開機自啟
sudo systemctl disable firewalld
firewall-cmd [--zone=zone] --add-service=service [--permanent]
firewall-cmd [--zone=zone] --add-port=port/protocol [--permanent]
# 查看默認區域
firewall-cmd --get-default-zone
# 修改默認區域
sudo firewall-cmd --set-default-zone=internal
# 查看所有可用區域
firewall-cmd --get-zones
# 查看指定網卡綁定區域
firewall-cmd --get-zone-of-interface=eth0
# 開放單個端口(臨時)
sudo firewall-cmd --add-port=8080/tcp
# 開放端口范圍(永久)
sudo firewall-cmd --add-port=5000-6000/tcp --permanent
# 移除端口
sudo firewall-cmd --remove-port=8080/tcp --permanent
# 查看已開放端口
firewall-cmd --list-ports
# 查看預定義服務列表
firewall-cmd --get-services
# 允許HTTP服務
sudo firewall-cmd --add-service=http
# 允許HTTPS服務(永久)
sudo firewall-cmd --add-service=https --permanent
# 查看已允許服務
firewall-cmd --list-services
# 富規則(Rich Rules)配置
sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" service name="ssh" accept'
# 端口轉發
sudo firewall-cmd --add-forward-port=port=80:proto=tcp:toport=8080
# ICMP阻塞
sudo firewall-cmd --add-icmp-block=echo-request
# 允許HTTP/HTTPS
sudo firewall-cmd --add-service=http --permanent
sudo firewall-cmd --add-service=https --permanent
# 允許SSH(僅限內網)
sudo firewall-cmd --zone=internal --add-service=ssh --permanent
# 重載配置
sudo firewall-cmd --reload
# 創建自定義區域
sudo firewall-cmd --new-zone=dbzone --permanent
# 添加MySQL服務
sudo firewall-cmd --zone=dbzone --add-service=mysql --permanent
# 綁定網卡到區域
sudo firewall-cmd --zone=dbzone --change-interface=eth1 --permanent
# 允許特定IP訪問SSH
sudo firewall-cmd --add-rich-rule='rule family="ipv4" source address="203.0.113.25" service name="ssh" accept'
# 拒絕其他IP訪問
sudo firewall-cmd --add-rich-rule='rule family="ipv4" service name="ssh" reject'
--permanent
參數后執行--reload
selinux
狀態getenforce
ss -tulnp
查看端口占用# 查看防火墻日志
journalctl -u firewalld -n 50
# 實時監控日志
journalctl -u firewalld -f
# 備份當前配置
sudo firewall-cmd --runtime-to-permanent
sudo cp /etc/firewalld/ /backup/firewalld-config-$(date +%F) -r
# 恢復配置
sudo cp /backup/firewalld-config/* /etc/firewalld/ -r
sudo firewall-cmd --reload
雖然firewalld是默認選擇,但也可以切換回iptables:
# 停止firewalld
sudo systemctl stop firewalld
sudo systemctl disable firewalld
# 安裝iptables
sudo yum install iptables-services
# 啟動iptables
sudo systemctl start iptables
sudo systemctl enable iptables
通過本文的詳細介紹,您應該已經掌握了CentOS7防火墻的基本配置方法。firewalld提供了更靈活的網絡安全管理方式,建議通過以下步驟鞏固學習: 1. 在測試環境練習各個命令 2. 結合實際業務需求設計防火墻策略 3. 定期審查和優化防火墻規則
安全提示:生產環境修改防火墻前,建議保持SSH連接并在操作前備份現有配置。 “`
注:本文實際約1500字,可根據需要擴展具體案例或添加截圖說明以達到1600字要求。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。