查看linux的ssh登录日志:
less /var/log/secure(centos)
打开之后里面会有很多条记录了ssh登录的log,这是登录成功的例子:
这是登录失败的例子:
我发现有很多陌生的IP一直在以不同的用户名密码尝试登录我的主机,有些是直接几十条连续的尝试,这摆明了在暴力破解啊,上网找找方法:
找到一个脚本,放在root下,用于拉黑IP
#! /bin/bash
cat /var/log/secure|awk '/Failed/{print $(NF-3)}'|sort|uniq -c|awk '{print $2"="$1;}' > /root/black.txt
DEFINE="5"
for i in `cat /root/black.txt`
do
IP=`echo $i |awk -F= '{print $1}'`
NUM=`echo $i|awk -F= '{print $2}'`
if [ $NUM -gt $DEFINE ];then
grep $IP /etc/hosts.deny > /dev/null
if [ $? -gt 0 ];then
echo "sshd:$IP:deny" >> /etc/hosts.deny
fi
fi
done
使用Crond 定时任务 来执行以上代码
crontab -e
然后输入:(一分钟执行一次脚本)
*/1 * * * * sh /root/secure_ssh.sh
再来科普一下:
crond是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务:
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配
也可以将这个服务在系统启动的时候自动启动:
在/etc/rc.d/rc.local这个脚本的末尾加上:
/sbin/service crond start
详细可以参考下面的文章
/etc/hosts.deny --->> ip禁用