shell实现拒绝恶意IP的ssh访问
Linux运维:shell实现拒绝恶意IP的ssh访问
编写shell脚本,在secure日志文件中查找失败登录20次以上的记录,将其IP地址添加到hosts.deny文件中,实现拒绝该IP的访问。
1、创建shell脚本文件:auto_deny_failedIP.sh
[root@SCSir ~]# vi auto_deny_failedIP.sh
插入以下内容,wq保存退出。
#Auto deny ssh failed IP address
#By author SCSir 202304
for i in $(grep "Failed password" /var/log/secure|awk '{print $(NF-3)}'|sort|uniq -c|sort -nr|awk '{if($1>=20) print $2}')
do
#判断hosts.deny是否包含变量$i的值(IP地址),避免重复IP
cat /etc/hosts.deny |grep $i >/dev/null
if
[ $? -ne 0 ]; then
echo "sshd:$i:deny" >> /etc/hosts.deny
fi
done
2、添加计划任务
[
或者
[root@SCSir ~]# vi /var/spool/cron/root
插入以下内容:每日23:59执行auto_deny_failedIP.sh,wq保存退出。
59 23 * * * sh /root/a_shell/auto_deny_failedIP.sh
或者每隔31分钟执行一次。
*/31 * * * * sh /root/a_shell/auto_deny_failedIP.sh
注意:不支持TCP Wrappers函数功能的软件程序无法使用hosts.deny的设置值。检查方法:
[
返回内容如果没有libwrap.so函数库文件就不支持,有就支持。
收录于合集 #linux运维
3个上一篇Linux运维:安全措施(用户无操作登出/远程KEY登录/禁止使用密码、root用户远程登录)
运维动力