CentOS中的iptables是一個強大的防火墻工具,可以幫助你保護服務器的安全。以下是一些使用iptables保護服務器安全的建議:
默認拒絕所有流量: 在開始配置之前,確保iptables的默認策略是拒絕所有傳入和轉發的流量,只允許必要的流量通過。
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
允許SSH連接: 如果你需要遠程訪問服務器,確保只允許來自可信IP地址的SSH連接。
iptables -A INPUT -p tcp --dport 22 -s <trusted_ip>/32 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m conntrack --ctstate ESTABLISHED -j ACCEPT
將<trusted_ip>
替換為你的可信IP地址。
限制SSH嘗試次數: 為了防止暴力破解攻擊,可以限制SSH登錄嘗試的次數。
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --set
iptables -A INPUT -p tcp --dport 22 -m state --state NEW -m recent --update --seconds 60 --hitcount 4 -j DROP
允許HTTP/HTTPS流量: 如果你的服務器運行Web服務,確保允許HTTP(80)和HTTPS(443)流量。
iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 80 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 443 -m conntrack --ctstate ESTABLISHED -j ACCEPT
允許DNS查詢: 允許DNS查詢以確保服務器能夠解析域名。
iptables -A INPUT -p udp --dport 53 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p udp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT
iptables -A INPUT -p tcp --dport 53 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -p tcp --sport 53 -m conntrack --ctstate ESTABLISHED -j ACCEPT
日志記錄: 記錄所有被拒絕的連接嘗試,以便于監控和審計。
iptables -A INPUT -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
iptables -A FORWARD -j LOG --log-prefix "IPTables-Dropped: " --log-level 4
保存iptables規則: 配置好iptables規則后,確保保存它們,以便在服務器重啟后仍然有效。
service iptables save
或者使用iptables-save
和iptables-restore
命令。
定期審查和更新規則: 定期審查iptables規則,確保它們仍然符合你的安全需求,并根據需要進行更新。
請注意,iptables規則可能會因服務器的具體用途和配置而有所不同。在應用上述建議時,請根據你的實際情況進行調整。此外,對于更高級的安全需求,可能需要考慮使用更專業的防火墻解決方案或安全組服務。