作者:要么永远要么消失_324 | 来源:互联网 | 2013-07-22 14:41
linux下ssh如何屏蔽某些人利用软件进行恶意破解我们的服务器连接密码?
在此提供一个bash脚本,在恶意用户进行多次连接尝试后进行IP的屏蔽
脚本的基本思想是:通用扫描ssh日志文件匹配有Failed关键词的记录如果大于100次就将IP存到/tmp/ssh.txt文件下,这边的ssh.txt要给写权限。
首先我们建立一个脚本名称为defessh.sh,其脚本内容如下:
#!/bin/bash cat /var/log/secure |grep "Failed"|awk '{print $(NF-3)}'|sort|uniq -c|sort -rn|awk '$1>100{print $2}' >/tmp/ssh.txt for i in $(cat /tmp/ssh.txt) do grep -q $i /etc/hosts.deny if [[ t$? != t0 ]] then echo "sshd:${i}" >>/etc/hosts.deny fi done
|
#!/bin/bash
cat /var/log/secure |grep "Failed"|awk '{print $(NF-3)}'|sort|uniq -c|sort -rn|awk '$1>100{print $2}' >/tmp/ssh.txt
for i in $(cat /tmp/ssh.txt)
do
grep -q $i /etc/hosts.deny
if [[ t$? != t0 ]]
then
echo "sshd:${i}" >>/etc/hosts.deny
fi
done
|
我们可以将其放入/root目录
然后利用Linux的定时任务进行定时执行
#ssh check */1 * * * * /bin/bash /root/defessh.sh
|
#ssh check
*/1 * * * * /bin/bash /root/defessh.sh
|
这样我们就可以使用脚本进行屏蔽恶意连接了