以下是一个自动防御 CC 和 DDoS 攻击的脚本,它将监视服务器上的连接,并拉黑任何尝试通过大量连接攻击服务器的IP地址。同时,它将所有拉黑的IP地址输出到一个文本文件中,以便管理员进行审计和管理。
#!/bin/bash
# 创建IP黑名单文件,如果不存在
BLACKLIST_FILE=/etc/blacklist.txt
touch $BLACKLIST_FILE
# 设置触发阈值
THRESHOLD=500
while true; do
# 获取当前活跃的连接数
CONNECTIONS=$(netstat -an | grep -E ':80|:443|:3306' | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n)
# 检查是否有IP地址超过阈值
while read line; do
COUNT=$(echo $line | awk '{print $1}')
IP=$(echo $line | awk '{print $2}')
# 如果连接数大于阈值,则拉黑IP地址
if [ $COUNT -gt $THRESHOLD ]; then
if ! grep -q "$IP" "$BLACKLIST_FILE"; then
echo "拉黑IP地址: $IP"
echo "$IP" >> $BLACKLIST_FILE
iptables -A INPUT -s $IP -j DROP
fi
fi
done <<< "$CONNECTIONS"
# 将拉黑的IP地址输出到ip.txt文本中
cat $BLACKLIST_FILE > ip.txt
# 等待30秒,然后重复循环
sleep 30
done
请注意,这仅仅是一个简单的脚本,无法确保完全防止所有类型的攻击。建议使用专业的安全工具和技术来保护服务器免受攻击。同时,拉黑IP地址可能会对合法用户产生影响,因此可以根据需要进行调整。
评论区