脚本

#!/bin/bash

# 定义要屏蔽的IP地址列表文件
block_list_file="/etc/block_list.txt"

# 如果文件不存在,则创建文件
if [ ! -f $block_list_file ]; then
touch $block_list_file
fi

# 获取当前时间戳
timestamp=`date +%s`

# 遍历文件中的所有IP地址
while read line; do
# 获取IP地址和上次封禁时间
ip=`echo $line | awk '{print $1}'`
last_block_time=`echo $line | awk '{print $2}'`

# 如果上次封禁时间超过1小时,则重新封禁该IP地址
if [ $((timestamp-last_block_time)) -gt 3600 ]; then
/sbin/iptables -A INPUT -s $ip -j DROP
# 更新封禁时间
sed -i "s/${ip}.*/${ip} ${timestamp}/g" $block_list_file
fi
done < $block_list_file

注意事项

定义了一个屏蔽IP列表文件,然后通过iptables命令对列表中的IP进行封禁。
该脚本可以定时执行,以自动屏蔽那些频繁发起DDOS攻击的IP地址。