Linux系統(tǒng)下防火墻配置的詳細(xì)指南
以下是 Linux 系統(tǒng)下防火墻配置的詳細(xì)指南,涵蓋 iptables、ufw、firewalld 等主流工具的使用方法和實(shí)戰(zhàn)場景!
1. 防火墻工具對比
| 工具 | 適用場景 | 特點(diǎn) |
|---|---|---|
| iptables | 傳統(tǒng) Linux 系統(tǒng)(如 CentOS/RHEL) | 功能強(qiáng)大,規(guī)則靈活,但配置復(fù)雜 |
| ufw | Ubuntu/Debian 等新發(fā)行版 | 圖形化界面,命令簡潔,適合新手 |
| firewalld | RHEL/CentOS 8+/Fedora | 基于服務(wù)的動(dòng)態(tài)防火墻,支持 NAT 和端口轉(zhuǎn)發(fā) |
2. iptables 基礎(chǔ)配置
2.1 查看規(guī)則
iptables -L -n -v # 查看所有規(guī)則(-n 不解析域名,-v 顯示詳細(xì)信息)
2.2 清空規(guī)則
iptables -F # 清空所有規(guī)則 iptables -t nat -F # 清空 NAT 表
2.3 基礎(chǔ)規(guī)則示例
# 允許 SSH(端口 22)入站 iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允許 HTTP/HTTPS(端口 80/443)入站 iptables -A INPUT -p tcp --dport 80,443 -j ACCEPT # 拒絕其他所有入站流量(默認(rèn)策略) iptables -P INPUT DROP # 保存規(guī)則(根據(jù)系統(tǒng)選擇以下命令) iptables-save | sudo tee /etc/sysconfig/iptables # CentOS/RHEL iptables-save > /etc/iptables/rules.v4 # Ubuntu/Debian
2.4 高級功能
# 設(shè)置 NAT 規(guī)則(端口轉(zhuǎn)發(fā)) iptables -t nat -A PREROUTING -p tcp --dport 8080 -j DNAT --to-destination :80 iptables -t nat -A POSTROUTING -j MASQUERADE # 限制 IP 訪問頻率(每分鐘最多 10 次) iptables -I INPUT -p tcp --dport 22 -m limit --limit 10/min -j ACCEPT
3. ufw(Uncomplicated Firewall)配置
3.1 啟用與禁用
sudo ufw enable # 啟用防火墻 sudo ufw disable # 禁用防火墻
3.2 規(guī)則配置
# 開放端口(默認(rèn)策略為拒絕) sudo ufw allow 22/tcp # SSH sudo ufw allow 80,443/tcp # HTTP/HTTPS # 拒絕特定 IP(如 192.168.1.100) sudo ufw deny from 192.168.1.100 to any # 刪除規(guī)則 sudo ufw delete allow 22/tcp # 查看規(guī)則 sudo ufw status numbered # 顯示帶序號(hào)的規(guī)則
3.3 高級配置
# 限制 SSH 最大連接數(shù) sudo ufw limit 22/tcp # 默認(rèn):每分鐘 60 次,突發(fā) 10 次 # 設(shè)置默認(rèn)策略(優(yōu)先級最低) sudo ufw default deny incoming # 入站默認(rèn)拒絕 sudo ufw default allow outgoing # 出站默認(rèn)允許
4. firewalld 配置
4.1 啟用與禁用
sudo systemctl start firewalld # 啟動(dòng)服務(wù) sudo systemctl enable firewalld # 設(shè)置開機(jī)自啟 sudo systemctl stop firewalld # 停止服務(wù)
4.2 查看與修改規(guī)則
# 查看所有活動(dòng)區(qū)域規(guī)則 sudo firewall-cmd --list-all # 添加開放端口(永久生效) sudo firewall-cmd --zone=public --add-port=80/tcp --permanent # 臨時(shí)添加規(guī)則(重啟后失效) sudo firewall-cmd --zone=public --add-port=80/tcp # 刪除規(guī)則 sudo firewall-cmd --zone=public --remove-port=80/tcp --permanent
4.3 高級功能
# 設(shè)置服務(wù)(預(yù)定義規(guī)則集) sudo firewall-cmd --zone=public --add-service=http --permanent # 添加富規(guī)則(復(fù)雜匹配) sudo firewall-cmd --zone=public --add-rich-rule='rule family="ipv4" source address="192.168.1.0/24" port port="22" protocol="tcp" accept' # 啟用 NAT 和路由 sudo firewall-cmd --zone=public --add-masquerade --permanent
5. 防火墻策略設(shè)計(jì)原則
- 最小化開放端口:僅開放必要服務(wù)(如 SSH、HTTP)。
- 默認(rèn)拒絕策略:未明確允許的流量應(yīng)默認(rèn)拒絕。
- 分層防御:結(jié)合內(nèi)核防火墻(iptables)和 service-level 防火墻(firewalld)。
- 日志記錄:監(jiān)控可疑流量(如
--log選項(xiàng))。 - 定期審計(jì):清理過期規(guī)則,更新策略。
6. 實(shí)戰(zhàn)場景
場景 1:Web 服務(wù)器防火墻配置
# 使用 ufw sudo ufw allow 80,443/tcp sudo ufw default deny incoming sudo ufw enable # 使用 firewalld sudo firewall-cmd --zone=public --add-service=http --permanent sudo firewall-cmd --zone=public --add-service=https --permanent
場景 2:SSH 安全加固
# 限制 IP 白名單(如允許 192.168.1.0/24 網(wǎng)段) sudo iptables -A INPUT -p tcp --dport 22 -s 192.168.1.0/24 -j ACCEPT sudo iptables -A INPUT -p tcp --dport 22 -j DROP # 使用 fail2ban 防止暴力破解 sudo apt install fail2ban sudo systemctl start fail2ban
7. 常見問題
規(guī)則未生效:
- 確保保存了規(guī)則(如
iptables-save或firewall-cmd --permanent)。 - 檢查是否有其他防火墻工具沖突(如同時(shí)運(yùn)行
iptables和ufw)。
端口轉(zhuǎn)發(fā)失?。?/strong>
- 確認(rèn) NAT 規(guī)則正確(
iptables -t nat)。 - 檢查系統(tǒng)轉(zhuǎn)發(fā)功能是否啟用:
sudo sysctl -w net.ipv4.ip_forward=1
服務(wù)無法訪問:
- 確認(rèn)防火墻區(qū)域(如
public)包含目標(biāo)端口。 - 檢查 SELinux/AppArmor 是否攔截流量(需額外配置)。
附錄:工具選擇建議
- 新手:優(yōu)先使用
ufw,命令簡單直觀。 - 生產(chǎn)環(huán)境:使用
firewalld管理動(dòng)態(tài)服務(wù)規(guī)則。 - 級需求:結(jié)合
iptables處理復(fù)雜 NAT 和流量限制。
通過合理配置防火墻,可以有效保護(hù)服務(wù)器安全,同時(shí)保持服務(wù)的可用性!
到此這篇關(guān)于Linux系統(tǒng)下防火墻配置的詳細(xì)指南的文章就介紹到這了,更多相關(guān)Linux防火墻配置內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux bash:./xxx:無法執(zhí)行二進(jìn)制文件報(bào)錯(cuò)
這篇文章主要介紹了Linux bash:./xxx:無法執(zhí)行二進(jìn)制文件報(bào)錯(cuò),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
Linux下PhpMyAdmin程序目錄結(jié)構(gòu)的安全管理
Linux下開發(fā)Web程序,現(xiàn)在很流行的開發(fā)方法為:用PHP開發(fā)Web程序,用Apache做Web Server,Mysql充當(dāng)后臺(tái)管理數(shù)據(jù)庫。2011-04-04
PHP程序員玩轉(zhuǎn)Linux系列 lnmp環(huán)境搭建
這篇文章主要為大家詳細(xì)介紹了PHP程序員玩轉(zhuǎn)Linux系列文章,lnmp環(huán)境搭建教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
解決Linux Centos yum-config-manager --add-repo添
這篇文章主要介紹了解決Linux Centos yum-config-manager --add-repo添加倉庫添加錯(cuò)誤問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-04-04
如何使用curl命令發(fā)送POST請求(帶token)
這篇文章主要介紹了如何使用curl命令發(fā)送POST請求(帶token),具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2025-04-04
讓Apache 2支持.htaccess并實(shí)現(xiàn)目錄加密的方法
這篇文章主要介紹了讓Apache 2支持.htaccess并實(shí)現(xiàn)目錄加密的方法,文中給出了詳細(xì)的方法步驟,并給出了示例代碼,對大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。2017-02-02
linux下shell常用腳本命令及有關(guān)知識(shí)
大家好,本篇文章主要講的是linux下shell常用腳本命令及有關(guān)知識(shí),感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12

