防SSH暴力登陆脚本
Linux服务器防SSH暴力登录脚本
A逐梦博客
逐梦博客,致力于web前端及全栈技术的学习和研究
公众号
身处于这个互联网蓬勃发展的时代,你也许并不知道,我们的在线服务器可能一直在不停遭受攻击,各种端口扫描、ssh暴力登录等等,本文将给大家介绍一个防ssh暴力登录的shell脚本提高我们服务器的安全性。
脚本内容如下:
SCANS=`grep "Failed" /var/log/secure | awk '/Failed/ {print $(NF-3)}' | sort | uniq -c | awk '{print $1"="$2;}'`
for i in $SCANS
do
count=`echo $i | awk -F= '{print $1}'`
address=`echo $i | awk -F= '{print $2}'`
if [ $count -gt 3 ] && [ -z "`cat /etc/hosts.deny | grep $address`" ]; then
echo "sshd:$address:deny" >> /etc/hosts.deny
echo "block ip: $address"
fi
done
上面的脚本从/var/log/secure日志(部分系统的路径可能是/var/log/auth.log)中提取了登录失败的日志并做统计,如果同一个ip的登录失败次数大于等于3,则检查/etc/hosts.deny是否禁用过该ip,如果没有就禁用该IP的ssh连接并写入/etc/hosts.deny,并打印日志“block ip $ip”。这里我们只是禁用了该IP的ssh服务,当然我们可以更狠一点,用iptables或者ufw直接拒绝对该IP提供任何服务。
我们将上面的脚本保存为sshGuard.sh,并保存在一个不会被误删的地方并给脚本赋予执行权限,建议建立一个目录专门用于存储shell脚本,然后设置定时任务,每3-5分钟执行一次脚本。
*/5 * * * * sshGuard.sh >> /var/log/block.log 2 > &1
然后,你就可以开始静静等待,过一段时间后去查看日志你会发现日志中充斥着来自世界各地的IP。
当然除了使用脚本来辅助我们提高服务器的安全性,我们平常在使用服务器的时候也需要有一定的安全意识:
1、用户名最好使用不易猜到的,密码要尽可能的复杂,一定要避开网上公开的那些爆破字典中的用户名和密码。
2、最好禁用root账号的远程登录,如果需要使用root权限,通过其他低权限账号做跳板,当然低权限账号要满足1,要出人意外。
3、不要随意开启端口的对外访问,如果要开启请确保你开启端口的程序有一定的安全策略。
4、对于公开的代码中的配置文件,在公开之前一定要脱敏。
A逐梦博客
逐梦博客,致力于web前端及全栈技术的学习和研究
公众号
感谢支持
A逐梦博客
写下你的留言