# 安装iptables服务
sudo yum install iptables-services -y
# 限制单个IP的并发连接数(例如限制为50)
sudo iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 50 --connlimit-mask 32 -j REJECT --reject-with tcp-reset
# 限制同一IP对SSH的并发连接(例如限制为3)
sudo iptables -A INPUT -p tcp --syn --dport 22 -m connlimit --connlimit-above 3 -j REJECT
sudo service iptables save
sudo systemctl enable iptables
sudo systemctl start iptables
# 启用firewalld
sudo systemctl enable firewalld
sudo systemctl start firewalld
# 限制HTTP服务的连接数(例如每秒20个新连接)
sudo firewall-cmd --add-rich-rule='rule service name="http" limit value="20/s" accept'
# 限制SSH连接数(例如每分钟5个新连接)
sudo firewall-cmd --add-rich-rule='rule service name="ssh" limit value="5/m" accept'
编辑/etc/sysctl.conf
文件,添加或修改以下参数:
# 启用SYN cookies防护SYN洪水攻击
net.ipv4.tcp_syncookies = 1
# 减少SYN+ACK重试次数
net.ipv4.tcp_synack_retries = 2
# 增加积压队列大小
net.ipv4.tcp_max_syn_backlog = 2048
# 缩短TIME_WAIT状态的超时时间
net.ipv4.tcp_fin_timeout = 30
# 限制系统范围内所有端口的半连接数
net.ipv4.tcp_max_orphans = 65536
# 限制系统接受新TCP连接的速度
net.ipv4.tcp_max_syn_backlog = 2048
net.core.somaxconn = 2048
# 防止ICMP洪水攻击
net.ipv4.icmp_echo_ignore_broadcasts = 1
net.ipv4.icmp_ignore_bogus_error_responses = 1
应用修改:
sudo sysctl -p
# 安装Fail2Ban
sudo yum install epel-release -y
sudo yum install fail2ban -y
# 配置SSH防护
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local
# 修改[sshd]部分如下:
[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/secure
maxretry = 3
bantime = 3600
findtime = 600
# 启动Fail2Ban
sudo systemctl enable fail2ban
sudo systemctl start fail2ban
http {
limit_conn_zone $binary_remote_addr zone=addr:10m;
limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
server {
limit_conn addr 10; # 每个IP最多10个连接
limit_req zone=one burst=20 nodelay; # 限制请求速率
}
}
# 安装mod_evasive
sudo yum install mod_evasive -y
# 配置/etc/httpd/conf.d/mod_evasive.conf
<IfModule mod_evasive20.c>
DOSHashTableSize 3097
DOSPageCount 2
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10
</IfModule>
# 查看当前连接数统计
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
# 使用iftop监控网络流量
sudo yum install iftop -y
sudo iftop -P
# 使用nethogs监控进程带宽
sudo yum install nethogs -y
sudo nethogs
sudo yum update -y
以上配置可根据实际业务需求进行调整。在生产环境中实施前,建议先在测试环境验证配置效果,避免影响正常业务流量。