记一次阿里云服务器被ssh爆破
查看Ubuntu登录日志:
cat /var/log/auth.log
发现我的服务器被ssh爆破
针对这一现象 我决定构造一个脚本 来防范这种爆破式攻击
具体思路就是通过脚本判定特定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
将这些信息写入到文件中 方便读取
写一个shell脚本对登录尝试次数进行统计
安装防火墙服务:
apt install firewalld
使用富命令来ban地址:
firewall-cmd --add-rich-rule="rule family=ipv4 source address= $line drop"
最后查看 firewalld
以下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 重复执行
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术