一句话crontab实现防ssh暴力破解
浏览:2997次 出处信息
将vps在公网上,难免会有居心叵测的人扫描,及时换了非标准的端口,依旧难以避免。因此编写一条Bash命令,放在crontab里,发现坏人立刻封掉ip。
一句话命令如下:
$ crontab -l * * * * * journalctl -u ssh.service --since="24 hours ago" | awk '/Failed password/{if(NF>15){ips[$13]++}else{ips[$11]++}}END{for(ip in ips){if(ips[ip]>3){print ip}}}' | while read ip; do grep $ip$ /etc/hosts.deny > /dev/null || echo "ALL: "$ip | sudo tee -a /etc/hosts.deny ; done
功能:24小时内输错5次ssh密码的客户端ip,将立刻被添加到 /etc/hosts.deny
文件里做黑名单处理。
简单解析:
该条语句可以按三个管道符号进行分割,下面分别讲解。
管道的第一部分:使用 journalctl
命令查询最近24小时内的登录日志,该命令适用于使用systemd的系统,如果非systemd,可以换成从 /var/log/secure
文件过滤日志。
管道的第二部分:主要是awk
过滤登录失败日志,关键字Failed password
。对登录失败的ip地址进行统计,输出失败次数大于3次的ip地址。此处用到了awk的数组功能做统计。
管道的第三部分:去重,避免重复添加IP到/etc/hosts.deny
文件中。使用while
语句判断ip地址是否已经在 /etc/hosts.deny中,如果不在,则使用tee命令进行追加。
该命令不仅实用,而且还很有趣。个人以为十分有学习价值。
建议继续学习:
- Linux shell脚本使用while循环执行ssh的注意事项 (阅读:6866)
- 在ssh服务里使用chroot (阅读:5009)
- 为什么要用公钥/私钥而不是密码去做SSH身份验证 (阅读:4846)
- 懒人连ssh不输密码若干大法 (阅读:4641)
- ssh连接超时解决办法 (阅读:4625)
- 如何让ssh登录更加安全 (阅读:4637)
- ssh命令 (阅读:4368)
- SSH无密码登录 (阅读:4461)
- ubuntu定时执行任务crontab的使用 (阅读:3857)
- 共享会话的ssh连接配置 (阅读:3724)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:IP团伙行为分析(更新中文版报告)
后一篇:洋葱式信息安全观察:信息安全与业务浪涌 >>
文章信息
- 作者:昔我往矣 来源: 昔我往矣
- 标签: crontab ssh 暴力
- 发布时间:2022-06-19 18:15:01
建议继续学习
近3天十大热文
-
[86] 读书笔记-壹百度:百度十年千倍的29条法则
-
[43] find命令的一点注意事项
-
[31] 杨建:网站加速--内容简介
-
[27] 杨建:网站加速--实例分析篇
-
[26] 量子数据系统实践
-
[24] 在vim保存时获得sudo权限
-
[24] 小屏幕移动设备网页设计注意事项
-
[23] 杨建:网站加速--服务器编写篇(上)
-
[21] 洋葱式信息安全观察:信息安全与业务浪涌
-
[17] 杨建:网站加速--Cache为王篇