防SSH暴力登陆脚本

Linux服务器防SSH暴力登录脚本

A逐梦博客
逐梦博客,致力于web前端及全栈技术的学习和研究
26篇原创内容

身处于这个互联网蓬勃发展的时代,你也许并不知道,我们的在线服务器可能一直在不停遭受攻击,各种端口扫描、ssh暴力登录等等,本文将给大家介绍一个防ssh暴力登录的shell脚本提高我们服务器的安全性。

脚本内容如下:

#! /bin/bash
SCANS=`grep "Failed" /var/log/secure | awk '/Failed/ {print $(NF-3)}' | sort | uniq -c | awk '{print $1"="$2;}'`for i in $SCANSdo 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" fidone

上面的脚本从/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前端及全栈技术的学习和研究
26篇原创内容
DeanHan

感谢支持

阅读 209
A逐梦博客
27篇原创内容
 
写下你的留言
 
 
posted @ 2023-02-09 14:01  往事已成昨天  阅读(78)  评论(0编辑  收藏  举报