记一次阿里云服务器被ssh爆破

查看Ubuntu登录日志:
cat /var/log/auth.log
发现我的服务器被ssh爆破
image
针对这一现象 我决定构造一个脚本 来防范这种爆破式攻击
具体思路就是通过脚本判定特定IP的登录失败次数 如果多于两次 关闭进程 并且ban IP
首先就是将登录失败的ip单独拎出来
cat /var/log/auth.log.1 | grep "Failed password" | awk '{match($0,/.*from (.*?) port/,a); print a[1]}'
然后进行去重:
cat /var/log/auth.log.1 | grep "Failed password" | awk '{match($0,/.*from (.*?) port/,a); print a[1]}'|sort|uniq
image
将这些信息写入到文件中 方便读取
写一个shell脚本对登录尝试次数进行统计
image
image
安装防火墙服务:
apt install firewalld
使用富命令来ban地址:
firewall-cmd --add-rich-rule="rule family=ipv4 source address= $line drop"
最后查看 firewalld
image
以下ip所发送的包都会被丢弃
整体代码:

cat /var/log/auth.log.* | grep "Failed password" | awk '{match($0,/.*from (.*?) port/,a); print a[1]}'|sort | uniq >/ban.txt
while read line
do
        try_log=$(grep $line /var/log/auth.log.* | wc -l )
        #$num=grep $line /var/log/auth.log.* | wc -l 
        #echo "$line : $try_log "
        if [ $try_log -ge 3 ];  then
                firewall-cmd --add-rich-rule="rule family=ipv4 source address=$line drop"

                echo "$line 已经被封禁"
        fi
done < /ban.txt

最后使用 crontab 重复执行

posted @   f0r9  阅读(58)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
点击右上角即可分享
微信分享提示