通过脚本提取访问日志里的恶意ip,添加到屏蔽列表
2021-02-10 16:48:43
最近发现服务器经常被扫描攻击,就是访问admin,database.zip,之类的网址。网上查了这些ip,很多都是云服务器的ip。这些恶意访问消耗了系统资源。一直在想怎么能自动屏蔽这些访问。
刚才看到一篇文章,根据nginx的访问日志(accesss.log和error.log),提取恶意访问网站的ip地址。然后写道屏蔽ip列表里。
先在这里记录一下,之后好好研究一下。通过日志,把这些ip直接通过iptables屏蔽。
#/bin/sh error_log_folder=“/home/long275/test/” error_log=\(error_log_folder"404.log" now=`date +%Y%m%d` error_bak_log=\)error_log_folder\(now"_error_bak.log" block_ip_file=\)error_log_folder\(now"_block_ip.txt" echo \)error_bak_log echo $error_log#提取ip
grep “Primary script unknown” \(error_log | awk -F ',' '{print \)2}’ \(error_log | sort -rn | uniq -c | awk '\)1>10 {print \(3}' > \)block_ip_file
ip_count=cat $block_ip_file | wc -l
echo \(ip_count if [ \)ip_count > 0 ]; then for ip incat $block_ip_file
doiptables -I INPUT -s $ip -j DROP
done #保存iptable iptables-save > /root/iptables.conf echo “保存iptables” #备份日志 cp \(error_log \)error_bak_log #清空日志 > \(error_log else #删除ip文件 echo "没有ip" rm \)block_ip_file fi
参考网址:
目前发现的恶意ip: