针对近期阿里云IP疯狂爬取,我写的IP加入ufw自动执行文件分享一下,懂的自己搞
我前面帖子发的IP放到/data/safe/black_ip.txt文件里面。只能帮到这,懂的自己搞,不懂别问我。做站真累。
代码模块还不给贴了,只能贴代码模块后面了。#这部分是做拦截IP处理的============开始==========================================================
blacklist_file="/data/safe/black_ip.txt"
before_rules_file="/etc/ufw/before.rules"
flagmod=false # 初始化标识为 false
# 检查黑名单文件是否存在
if [ -e "$blacklist_file" ]; then
# 获取文件的修改时间
last_modified=$(stat -c %Y "$blacklist_file")
# 获取当前时间
current_time=$(date +%s)
# 计算文件修改距离当前时间的秒数
time_difference=$((current_time - last_modified))
# 检查文件是否在当前六分钟内修改过
if [ "$time_difference" -le 360 ]; then
# 读取黑名单文件中的IP
while IFS= read -r black_ip
do
#检查是否符合IP或者IP段规则
if [[ "$black_ip" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ || "$black_ip" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/[0-9]+$ ]]; then
# 检查是否在before.rules中
if ! grep -q "$black_ip" "$before_rules_file"; then
# 如果不在,找到 "# End required lines" 所在行
end_line=$(grep -n "# End required lines" "$before_rules_file" | cut -d: -f1)
# 在 "# End required lines" 后添加新规则
sed -i "${end_line}a-A ufw-before-input -s $black_ip -j DROP" "$before_rules_file"
echo `date +"%Y-%m-%d %H:%M:%S"` "增加 $black_ip 到 $before_rules_file" >> /data/safe/cron.log
flagmod=true # 将标识设置为 true,表示有新增阻止IP
fi
fi
done < "$blacklist_file"
# 重新加载ufw规则
if [ "$flagmod" = true ]; then
sudo ufw reload
fi
fi
fi
#这部分是做拦截IP处理的============结束=========================================================
代码模块还不给贴了,只能贴代码模块后面了。
- #!/bin/bash
blacklist_file="/data/safe/black_ip.txt"
before_rules_file="/etc/ufw/before.rules"
flagmod=false # 初始化标识为 false
# 检查黑名单文件是否存在
if [ -e "$blacklist_file" ]; then
# 获取文件的修改时间
last_modified=$(stat -c %Y "$blacklist_file")
# 获取当前时间
current_time=$(date +%s)
# 计算文件修改距离当前时间的秒数
time_difference=$((current_time - last_modified))
# 检查文件是否在当前六分钟内修改过
if [ "$time_difference" -le 360 ]; then
# 读取黑名单文件中的IP
while IFS= read -r black_ip
do
#检查是否符合IP或者IP段规则
if [[ "$black_ip" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ || "$black_ip" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/[0-9]+$ ]]; then
# 检查是否在before.rules中
if ! grep -q "$black_ip" "$before_rules_file"; then
# 如果不在,找到 "# End required lines" 所在行
end_line=$(grep -n "# End required lines" "$before_rules_file" | cut -d: -f1)
# 在 "# End required lines" 后添加新规则
sed -i "${end_line}a-A ufw-before-input -s $black_ip -j DROP" "$before_rules_file"
echo `date +"%Y-%m-%d %H:%M:%S"` "增加 $black_ip 到 $before_rules_file" >> /data/safe/cron.log
flagmod=true # 将标识设置为 true,表示有新增阻止IP
fi
fi
done < "$blacklist_file"
# 重新加载ufw规则
if [ "$flagmod" = true ]; then
sudo ufw reload
fi
fi
fi
#这部分是做拦截IP处理的============结束=========================================================