openwrt/LEDE SSH多次登陆失败禁用IP

该脚本通过读取logread的日志,检测超过5次失败登录尝试的IP地址,然后将这些IP添加到iptables的DROP列表中,实现对恶意IP的自动封锁。它在系统启动时运行,并每10秒检查一次新的登录尝试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

使用方法

将代码保存为blockip.sh,并设置为开机启动

原理:通过logread捕获超过失败登录5次的IP,并比对iptables,添加到DROP列表

#!/bin/sh
#date 20230601

log_file="/var/log/add_block.log"
block_list="/var/log/block_list.log"

while true
do
	#get iptables block list
	last_ips=`iptables -L input_wan_rule -v -n |awk '/DROP/{print $8}'|uniq`

	#get Attack ip
	for ip in $(logread | grep -A1 'authpriv.warn' | awk '{match($0, /[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/); print substr($0, RSTART, RLENGTH)}' |grep -v '^$'|sort | awk '{if ($1 == ip) count++; else {ip=$1; count=1}; if (count>=5) print ip}' |uniq);
	do 
		if [[ ! "$last_ips" =~ "$ip" ]]; then
			#writing block list to iptables
			iptables -A input_wan_rule  -s $ip -j DROP
			echo "$(date +"[%Y-%m-%d %H:%M:%S]") Blocked connection from $ip." >> "$log_file"
		fi
	done

	sleep 10s
	#writing to log
	echo $last_ips > $block_list
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值