Linux 系统SSH 登录失败的内容会记录到/var/log/secure文件,通过查找关键字 Failed,可以定位到这些异常的IP地址,比如:
[root@XiaoFeng ~]# cat /var/log/secure |grep Failed #查看所有的异常IP [root@XiaoFeng ~]# cat /var/log/secure |grep 181.204.166.58 #查看指定的异常IP 相关文件 :/etc/hosts.deny 禁止哪些IP访问主机: [root@XiaoFeng ~]# cat /etc/hosts.deny
[root@XiaoFeng sjd]# vim secure_ssh.sh #创建脚本文件
#! /bin/bash cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /sjd/black.list for i in `cat /sjd/black.list` do IP=`echo $i |awk -F= '{print $1}'` NUM=`echo $i|awk -F= '{print $2}'` echo $IP=$NUM if [ $NUM -gt 10 ]; then grep $IP /etc/hosts.deny > /dev/null if [ $? -gt 0 ];then echo "sshd:$IP:deny" >> /etc/hosts.deny fi fi done
[root@XiaoFeng sjd]# chmod +x secure_ssh.sh #给文件添加执行权限
将secure_ssh.sh脚本放入cron计划任务,每1小时执行一次。
[root@XiaoFeng sjd]# crontab -e 0 */1 * * * sh /sjd/secure_ssh.sh
本文为 小风原创文章,转载无需和我联系,但请注明来自 小风博客www.hotxf.com