shell实现拒绝恶意IP的ssh访问

发布时间 2023-06-26 15:20:21作者: 往事已成昨天

Linux运维:shell实现拒绝恶意IP的ssh访问

觉主 运维动力 2023-04-18 19:30 发表于辽宁

    编写shell脚本,在secure日志文件中查找失败登录20次以上的记录,将其IP地址添加到hosts.deny文件中,实现拒绝该IP的访问。

1、创建shell脚本文件:auto_deny_failedIP.sh

[root@SCSir ~]# vi auto_deny_failedIP.sh

插入以下内容,wq保存退出。

#!/bin/bash#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 fidone

2、添加计划任务

[root@SCSir ~]# crontab -e

或者

[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的设置值。检查方法:
[root@SCSir ~]# ldd $(which sshd)
返回内容如果没有libwrap.so函数库文件就不支持,有就支持。

 

收录于合集 #linux运维
 3
上一篇Linux运维:安全措施(用户无操作登出/远程KEY登录/禁止使用密码、root用户远程登录)
阅读 247
运维动力
15篇原创内容