# Linux系統怎么使用firewall限制或開放IP及端口
## 前言
在Linux服務器管理中,防火墻是保障系統安全的重要組件。通過合理配置防火墻規則,可以限制或開放特定IP及端口的訪問權限,有效防止惡意攻擊和未授權訪問。本文將詳細介紹在Linux系統中使用`firewalld`、`iptables`以及`ufw`三種主流工具實現IP及端口管控的方法。
---
## 一、firewalld工具配置
### 1. firewalld基礎概念
作為RHEL/CentOS 7+及Fedora的默認防火墻工具,firewalld提供動態管理功能:
- **區域(Zone)**:預定義的網絡信任級別(如public/dmz/trusted)
- **服務(Service)**:預配置的端口/協議組合(如http/ssh)
- **運行時(Runtime)**與**永久(Permanent)**配置
### 2. 常用命令示例
#### 查看當前狀態
```bash
systemctl status firewalld # 檢查服務狀態
firewall-cmd --state # 確認防火墻是否運行
firewall-cmd --list-all # 顯示當前區域規則
# 臨時開放80端口
firewall-cmd --add-port=80/tcp
# 永久開放443端口
firewall-cmd --add-port=443/tcp --permanent
firewall-cmd --reload
# 限制3306端口
firewall-cmd --remove-port=3306/tcp --permanent
# 允許192.168.1.100訪問SSH
firewall-cmd --add-rich-rule='rule family="ipv4" source address="192.168.1.100" service name="ssh" accept'
# 禁止10.0.0.0/24網段
firewall-cmd --add-rich-rule='rule family="ipv4" source address="10.0.0.0/24" drop'
端口轉發:將外部端口轉發到內部服務器
firewall-cmd --add-forward-port=port=8080:proto=tcp:toport=80:toaddr=192.168.1.2
自定義服務:創建新的服務定義
cp /usr/lib/firewalld/services/http.xml /etc/firewalld/services/myapp.xml
# 編輯后重載生效
作為經典的Linux防火墻工具,iptables通過規則鏈(Chain)進行流量控制: - INPUT:處理入站流量 - OUTPUT:處理出站流量 - FORWARD:處理轉發流量
iptables -A 鏈名 -p 協議 --dport 端口 -j 動作
# 允許192.168.1.5訪問22端口
iptables -A INPUT -p tcp -s 192.168.1.5 --dport 22 -j ACCEPT
# 拒絕10.0.0.0/8網段
iptables -A INPUT -s 10.0.0.0/8 -j DROP
# 開放80端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
# 限制UDP 53端口
iptables -A INPUT -p udp --dport 53 -j REJECT
# CentOS/RHEL
service iptables save
# 或
iptables-save > /etc/sysconfig/iptables
# Ubuntu/Debian
apt install iptables-persistent
netfilter-persistent save
iptables -L -n -v # 查看詳細規則計數器
iptables -Z # 重置計數器
iptables -D INPUT 3 # 刪除INPUT鏈第三條規則
Ubuntu的Uncomplicated Firewall提供簡化配置:
ufw enable # 啟用防火墻
ufw status verbose # 查看狀態
# 允許來自特定IP的訪問
ufw allow from 203.0.113.45 to any port 22
# 限制網段訪問3306端口
ufw deny from 10.10.0.0/16 to any port 3306
# 刪除規則(先通過numbered查看編號)
ufw delete 2
# 速率限制SSH連接
ufw limit 22/tcp
# 允許特定網卡
ufw allow in on eth0 to any port 9090
iptables -A INPUT -j LOG --log-prefix "IPTABLES-DROPPED: "
nmap自檢開放端口
nmap -sT -O localhost
規則不生效:
連接被拒絕:
telnet 目標IP 端口 # 測試連通性
tcpdump -i eth0 port 80 # 抓包分析
服務無法啟動:
journalctl -xe # 查看詳細日志
firewall-cmd --check-config # 驗證配置
通過合理配置防火墻規則,管理員可以實現精細化的網絡訪問控制。建議根據實際需求選擇工具: - 新手用戶:優先使用ufw或firewalld - 復雜環境:結合iptables實現高級功能 - 生產環境:務必在測試后操作,避免鎖死遠程連接
安全提示:操作防火墻前請確保保留有效的SSH連接,或配置好console訪問權限。
(示意圖:防火墻數據包過濾流程)
延伸閱讀: - Linux防火墻深度指南 - iptables官方手冊 “`
注:實際圖片URL需替換為有效地址,字數統計約2650字(含代碼塊)??筛鶕唧w發行版調整命令細節,生產環境建議先測試規則。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。