使用 CentOS 的 iptables
來保護 Web 服務器是一個非常有效的方法。以下是一些基本的步驟和策略,可以幫助你提高 Web 服務器的安全性:
首先,確保你的 CentOS 系統是最新的:
sudo yum update -y
在進行任何更改之前,備份當前的 iptables
規則:
sudo iptables-save > /etc/iptables/iptables.rules
設置默認策略為拒絕所有流量,然后允許特定的流量:
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT ACCEPT
允許來自本地回環接口的流量:
sudo iptables -A INPUT -i lo -j ACCEPT
允許已經建立的連接和相關的數據包:
sudo iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
允許 SSH 訪問(假設你使用的是默認的 SSH 端口 22):
sudo iptables -A INPUT -p tcp --dport 22 -j ACCEPT
允許 HTTP 和 HTTPS 流量:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
為了防止暴力破解攻擊,可以限制每個 IP 地址的連接數:
sudo iptables -A INPUT -p tcp --dport 22 -m connlimit --connlimit-above 5 -j DROP
如果你有特定的 IP 地址需要訪問你的服務器,可以顯式地允許這些 IP 地址:
sudo iptables -A INPUT -s 192.168.1.1 -j ACCEPT
保存 iptables
規則,以便在系統重啟后仍然有效:
sudo service iptables save
確保 iptables
服務在系統啟動時自動啟動:
sudo systemctl start iptables
sudo systemctl enable iptables
定期檢查 iptables
日志,以便及時發現異常流量:
sudo tail -f /var/log/messages
考慮使用更高級的防火墻管理工具,如 firewalld
,它提供了更友好的界面和更多的功能:
sudo yum install firewalld -y
sudo systemctl start firewalld
sudo systemctl enable firewalld
通過以上步驟,你可以大大提高 CentOS 上 Web 服務器的安全性。記住,安全是一個持續的過程,需要定期更新和審查你的安全策略。