设计思路
- 最近隐隐感觉服务器正在被攻击,查看下登陆失败记录,果然有几页失败记录,于是查了一晚上资料,写了份实操如下:
- 防止服务器被暴力破解,给服务器添加脚本:每小时检查是否有登录失败的ip,如果有就封禁该ip
sudo lastb |awk '{print $3}'|sort |uniq -c|awk '{if ($1 > 4) print $2}'
- 将以上的ip添加到ubuntu的ip黑名单下,黑名单文件为
hosts.deny
在/etc
目录下
- 写一个能自动添加ip到黑名单文件的脚本,把脚本放在
/home/xxx
目录下,脚本代码如下:
#!/bin/bash
IP=$(sudo lastb |awk '{print $3}'|sort |uniq -c|awk '{if ($1 > 10) print $2}')
hostdeny=/etc/hosts.deny
for i in $IP
do
if [ ! $(grep $i $hostdeny) ];then
echo "ALL: $i" >> $hostdeny
fi
done
- 给脚本设置每小时执行一次,在控制台输入代码,如下:
- 脚本名为
ssh_deny.sh
,只能用bash运行
sudo crontab -e
* */1 * * * sudo bash /home/xxx/ssh_deny.sh
sudo crontab -l