一句话crontab实现防ssh暴力破解
浏览:4246次 出处信息
将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的注意事项 (阅读:7862)
- 在ssh服务里使用chroot (阅读:5693)
- 为什么要用公钥/私钥而不是密码去做SSH身份验证 (阅读:5578)
- 如何让ssh登录更加安全 (阅读:5436)
- ssh连接超时解决办法 (阅读:5350)
- 懒人连ssh不输密码若干大法 (阅读:5322)
- SSH无密码登录 (阅读:5320)
- ssh命令 (阅读:5066)
- ubuntu定时执行任务crontab的使用 (阅读:4366)
- 共享会话的ssh连接配置 (阅读:4513)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:IP团伙行为分析(更新中文版报告)
后一篇:洋葱式信息安全观察:信息安全与业务浪涌 >>
文章信息
- 作者:昔我往矣 来源: 昔我往矣
- 标签: crontab ssh 暴力
- 发布时间:2022-06-19 18:15:01
建议继续学习
近3天十大热文
-
[1197] WordPress插件开发 -- 在插件使用 -
[90] 解决 nginx 反向代理网页首尾出现神秘字 -
[43] web开发设计人员不可不用的在线web工具和 -
[30] Rax 系列教程(长列表) -
[29] 手机产品设计方向 -
[29] 如何建立合适的索引? -
[28] 一句话crontab实现防ssh暴力破解 -
[28] Java开发岗位面试题归类汇总 -
[26] 程序员疫苗:代码注入 -
[25] 我对学习oracle与成长的理解
