iptables基本概念
iptables是Linux系統中強大的防火墻工具,它工作在用戶空間,通過命令行界面與內核空間的netfilter框架交互,實現數據包過濾、網絡地址轉換(NAT)等功能。
Web服務器防火墻配置實例
以下是針對Web服務器的iptables配置步驟,只開放必要的SSH(22)和HTTP(80)端口:
# 1. 設置默認策略為ACCEPT并清空現有規則 iptables -P INPUT ACCEPT iptables -P OUTPUT ACCEPT iptables -P FORWARD ACCEPT iptables -F# 2. 允許回環接口通信 iptables -A INPUT -i lo -j ACCEPT iptables -A OUTPUT -o lo -j ACCEPT# 3. 允許已建立和相關連接 iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT# 4. 允許SSH傳入和傳出連接 iptables -A INPUT -p tcp --dport 22 -j ACCEPT iptables -A OUTPUT -p tcp --dport 22 -j ACCEPT# 5. 允許HTTP傳入和傳出連接 iptables -A INPUT -p tcp --dport 80 -j ACCEPT iptables -A OUTPUT -p tcp --dport 80 -j ACCEPT# 6. 允許DNS查詢(UDP 53端口) iptables -A OUTPUT -p udp --dport 53 -j ACCEPT# 7. 設置默認策略為DROP(確保先允許必要服務) iptables -P INPUT DROP iptables -P OUTPUT DROP iptables -P FORWARD DROP
配置說明
默認策略:初始設置為ACCEPT確保配置過程中不會意外斷開連接,最后設置為DROP增強安全性
回環接口:允許本地進程間通信
狀態跟蹤:允許已建立和相關連接,確保響應流量正常通過
服務端口:
SSH(22):遠程管理
HTTP(80):Web服務
DNS(53):域名解析(僅傳出)
驗證與測試
配置完成后,使用nmap掃描驗證:
nmap -sS -O 服務器IP地址
應只顯示22和80端口為開放狀態,其他端口顯示為filtered(被過濾)或closed(關閉)。
注意事項
在遠程服務器上配置防火墻時,務必先允許SSH連接,避免將自己鎖在系統外
可根據實際需求調整規則,如添加HTTPS(443)端口
規則配置后需保存以確保重啟后依然有效:
# CentOS 6及以前 service iptables save# CentOS 7及以后使用firewalld # 或安裝iptables-services包 yum install iptables-services systemctl enable iptables service iptables save
此配置提供了基礎的Web服務器防護,僅允許必要的網絡通信,有效減少攻擊面。