使用 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 服务器的安全性。记住,安全是一个持续的过程,需要定期更新和审查你的安全策略。