全球主机交流论坛

标题: Fail2Ban简易的封禁SSH爆破恶意扫描CC攻击vsftpd规则等操作 [打印本页]

作者: 冲浪麦浪花郎    时间: 2022-1-14 16:06
标题: Fail2Ban简易的封禁SSH爆破恶意扫描CC攻击vsftpd规则等操作
本帖最后由 冲浪麦浪花郎 于 2022-1-14 23:46 编辑

之前的帖子写少了,补充下Fail2Ban。
前言:https://www.lilynana.eu.org/thread-909578-1-1.html原先写的不完全正确。又过了30天无法修改.....预计Fail2Ban根本没实现......(尴尬)

然后重新开个帖子
之前没有考虑到换端口后MJJ可能非22情况,切文本没有覆写更进。参考github项目某博客文本后把 SSH 密码爆破 阻止恶意扫描 CC 攻击  vsftpd 攻击规则。其实还可以加很多项目(只不过有些都没见过就算了)外补充个日志删除。基本上就这么多了的。


首先这个只是简易方案,适用于linux各类发行版本,包括容器类的openVZ LXC类。能治标不治本。被打还是会被打,防御一些阿猫阿狗还是没毛病的......

参考资料(建议都看看Centos和Ubuntu好几处不一样...)
https://www.escapelife.site/posts/d5f0eaf3.html
https://github.com/fail2ban/fail2ban
https://github.com/fail2ban/fail2ban/issues
https://www.有图比.com/results?search_query=fail2ban

安装
  1. #以Debian为例(别的可以依葫芦画瓢)
  2. #更新&安装
  3. apt-get update && apt-get upgrade -y
  4. apt-get -y install fail2ban
复制代码


温馨提示:
下面有几个数值需要自己修改“port=22”如果你的SSH端口不是22的话改成你对应的值
“# 最多...”# 禁止...”这样的含义可以视为注释,前面对应的数值可以自己修改。
修改好自己的值后拷贝修改的文本直接终端黏贴就可以了

  1. #配置参数
  2. fail2ban="/etc/fail2ban/jail.d/sshd.local"
  3. cat>"${fail2ban}"<<EOF
  4. [ssh-iptables]
  5. enabled  = true
  6. filter   = sshd
  7. action   = iptables[name=SSH, port=22, protocol=tcp]
  8. logpath  = /var/log/auth.log   # 如果是Centos路径要改/var/log/secure这个
  9. maxretry = 9   # 最多连接9次失败
  10. bantime  = 777600   # 禁止9天(按秒单位1天86400)
  11. #阻止恶意扫描
  12. [nginx-dir-scan]
  13. enabled = true
  14. filter = nginx-dir-scan
  15. action   = iptables[name=nginx-dir-scan, port=443, protocol=tcp]
  16. logpath = /path/to/nginx/access.log
  17. maxretry = 1   # 最多扫描1次
  18. bantime = 777600   # 禁止9天(按秒单位1天86400)
  19. findtime  = 300
  20. #防CC攻击
  21. [nginx-cc]
  22. enabled = true
  23. port = http,https
  24. filter = nginx-cc
  25. action = %(action_mwl)s
  26. maxretry = 20   # 最多C20次
  27. findtime = 60
  28. bantime = 777600   # 禁止9天(按秒单位1天86400)
  29. logpath = /usr/local/nginx/logs/access.log
  30. #防vsftpd攻击规则
  31. [vsftpd-notification]
  32. enabled = true
  33. filter = vsftpd
  34. action = sendmail-whois[name=VSFTPD, [email protected]]
  35. logpath = /var/log/vsftpd.log
  36. maxretry = 5   # 最多5次
  37. bantime = 777600   # 禁止9天(按秒单位1天86400)
  38. [vsftpd-iptables]
  39. enabled = true
  40. filter = vsftpd
  41. action = iptables[name=VSFTPD, port=ftp, protocol=tcp]
  42.            sendmail-whois[name=VSFTPD, [email protected]]
  43. logpath = /var/log/vsftpd.log
  44. maxretry = 5   # 最多5次
  45. bantime = 777600   # 禁止9天(按秒单位1天86400)
  46. EOF
复制代码

检查上面无误后开启
  1. #覆写&启动&开机启动
  2. cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.d/sshd.local
  3. #先暂停#启动&开机自启
  4. systemctl stop fail2ban
  5. systemctl start fail2ban.service
  6. systemctl enable fail2ban.service
复制代码


删除多余日志(这里的+15是15天时间,可以自己改。对5g 10g vps建议都加上,默认系统log都会回收,不加也无所谓。)
  1. #fail2ban日志 开机自删+定时删日志
  2. logdelete="./fail2banlogdelete.sh"
  3. cat>"${logdelete}"<<EOF
  4. #!/bin/bash
  5. find /path/to/nginx/ -mtime +15 -name "*.log" | xargs -i mv {} /root/RecycleBin/;
  6. find /usr/local/nginx/logs/ -mtime +15 -name "*.log" | xargs -i mv {} /root/RecycleBin/;
  7. find /var/log/ -mtime +15 -name "*.log" | xargs -i mv {} /root/RecycleBin/;
  8. find /root/RecycleBin/ -name "*.log" -exec rm -rf {} \;
  9. EOF
  10. cp ./fail2banlogdelete.sh /etc/init.d/
  11. #读挡并赋予权限
  12. chmod +777 /etc/init.d/fail2banlogdelete.sh
  13. update-rc.d ./fail2banlogdelete.sh defaults 90
  14. cd
  15. (echo "0 0 */15 * * bash /etc/init.d/fail2banlogdelete.sh >>/dev/null 2>&1" ; crontab -l )| crontab
  16. cd
复制代码

相关命令与systemctl 相似
  1. #启动
  2. systemctl start fail2ban
  3. #停止
  4. systemctl stop fail2ban
  5. #开机启动
  6. systemctl enable fail2ban
  7. #状态
  8. systemctl status fail2ban
  9. #开机关闭
  10. systemctl  disable fail2ban
  11. #查看被ban IP,其中sshd为名称,比如上面的[wordpress]
  12. fail2ban-client status sshd
  13. #删除被ban IP
  14. fail2ban-client set sshd delignoreip X.X.X.X
  15. #查看日志
  16. tail /var/log/fail2ban.log
复制代码


检验方法:
直接重启呼出TOP 或者HTOP检查是否有此项



PS:
摸鱼时间可以做评测,有需要的MJJ可以发来鉴定,或是有头铁 底气足 后台硬 的商家可以投稿 绝对客观diss (* ̄︶ ̄*)(私信@即可)

捐赠 打赏 投食[ 谢谢哥哥姐姐(#^.^#) ]
BTC:
1QHQ95X7qhXkSqeUFDFw2M22JG9tnTCXsE
DOGE:
DAZ7H64MYcbXQy4xnkwXh2GbdxP2Tc42Mu
BUSD:
0xe727335a145e716c918817e5b3cdc7c6d9c833fa
ETH:
0xe727335a145e716c918817e5b3cdc7c6d9c833fa
USDT:
0xe727335a145e716c918817e5b3cdc7c6d9c833fa
BNB:
0xe727335a145e716c918817e5b3cdc7c6d9c833fa
ADA:
DdzFFzCqrhsq8VNQSTVSzjSUWDLEMFiwieADeJHHNNDjPczTsUJDDZTcTobZuQsrpszoPmuuDJ21xgp2UTahEN6G5QyEbryUifUAUtMF
XMR:
87NhgxMFMWgiLBhVYcwV4wYr3cXit6uRdWzdHX6cPxbQSXHFqCuoZPaKJfuaYDUwyQS6tGTWWYeRgFUTjrYXXiGn5LsXNQ7



作者: 枝江小狼王    时间: 2022-1-14 16:09
支持技术贴
作者: Zeros    时间: 2022-1-14 16:11
支持技术贴
作者: konololi    时间: 2022-1-14 16:12
默认的配置文件不是有么,为何非要新增

而且本身日志有logrorate啊,为何非要自己删?
作者: acequeen    时间: 2022-1-14 16:12
支持技术贴
作者: 哈登    时间: 2022-1-14 16:13
怎么像宝塔后台免费的那个插件?
作者: 阿拉灯神丁    时间: 2022-1-14 16:16
收藏了,技术贴
作者: caizi    时间: 2022-1-14 16:18
搞个两步验证不就完事了,如果能破,我认栽。
作者: curtis    时间: 2022-1-14 16:19
技术贴学习了
作者: weixiangnan    时间: 2022-1-14 16:29
哈登 发表于 2022-1-14 16:13
怎么像宝塔后台免费的那个插件?

宝塔确实集成的有  有UI界面
作者: konololi    时间: 2022-1-14 16:32
不是,
关于默认的配置文件有,我的意思是说默认会配置了sshd,
所以你不应该新增个ssh-iptables,而是应该在你的这个配置里面也是写sshd,然后你的配置会覆盖默认的。
主要优点是比如可能系统没有syslogd,然后/var/log/auth.log这个日志就没有,得用systemd作为backend,你这样配置就麻烦多了。

而且你系统是没logrotate的么?为何非要手动删日志?有logrotate的话你那部分是不会执行的,因为超过4周就会被logrotate删掉
作者: 哈登    时间: 2022-1-14 16:32
weixiangnan 发表于 2022-1-14 16:29
宝塔确实集成的有  有UI界面

够菜鸟用了
反正用付费的像12万那种都防不住
作者: 冲浪麦浪花郎    时间: 2022-1-14 16:37
konololi 发表于 2022-1-14 16:32
不是,
关于默认的配置文件有,我的意思是说默认会配置了sshd,
所以你不应该新增个ssh-iptables,而是应该 ...

我好像多此一举了
作者: 子尘    时间: 2022-1-14 16:57
对mjj们非常实用,感谢大佬
作者: 人生若只如初见    时间: 2022-1-14 17:51
感谢大佬,顶一个,hestiacp后台看到有这个不懂干嘛的,不会设置,分享得真及时
作者: telnetpig    时间: 2022-1-14 19:52
默认的不可么
作者: uten    时间: 2022-1-14 19:54
哪那么麻烦  防火墙把端口一限制 结束了
作者: hins    时间: 2022-1-14 20:19
60秒连接20次就ban是不是太严格 加载列表页多图片的话 是不是就一下被ban了
作者: 冲浪麦浪花郎    时间: 2022-1-14 20:51
hins 发表于 2022-1-14 20:19
60秒连接20次就ban是不是太严格 加载列表页多图片的话 是不是就一下被ban了

你可以自己改规则,做站的话还是别用这种小玩意
作者: 笑花落半世琉璃    时间: 2022-1-14 21:20
ssh端口?添加ip白名单,设个两步验证
别说别人了,有时候自己都进不去
作者: 惜为伊人醉    时间: 2022-1-14 21:50
谢谢分享
作者: 目白琳庭    时间: 2022-1-14 21:55
非22端口+只用key登录+禁止root用户

还没遇过爆破的龟孙。
作者: 行尸走肉    时间: 2022-1-14 22:11
技术贴 先点个收藏
作者: 叫我ams就好了    时间: 2022-1-15 00:42
其实直接改个ssh端口就可以清净了
作者: smu    时间: 2022-1-15 00:55
学习了
作者: 冲浪麦浪花郎    时间: 2022-1-15 13:50
笑花落半世琉璃 发表于 2022-1-14 21:20
ssh端口?添加ip白名单,设个两步验证
别说别人了,有时候自己都进不去 ...

是的,不过异地上鸡就麻烦还要开sock5,有时候代理也挂了就搞笑了......
作者: huang1dede    时间: 2022-1-20 17:19
#覆写&启动&开机启动
cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.d/sshd.local

你这配置了半天,,,直接默认配置把他覆盖了
作者: lanlandezei    时间: 2022-1-20 17:29
技术贴 绑定,我也经常用命令lastb 看到经常有爆破的有点烦
作者: chinanala    时间: 2022-1-31 05:08
请问Debian 安装的apt install fail2ban 默认有没有防护规则,必须要另外写配置才能正常运用吗?我一直都是apt安装完毕就不管了
作者: konololi    时间: 2022-1-31 05:18
chinanala 发表于 2022-1-31 05:08
请问Debian 安装的apt install fail2ban 默认有没有防护规则,必须要另外写配置才能正常运用吗?我一直都是 ...

debian默认是只有sshd是开启了的
作者: cany    时间: 2022-1-31 06:41
技术贴,我顶




欢迎光临 全球主机交流论坛 (https://lilynana.eu.org/) Powered by Discuz! X3.4