惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

J
Java Code Geeks
量子位
MongoDB | Blog
MongoDB | Blog
N
Netflix TechBlog - Medium
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
B
Blog
A
About on SuperTechFans
腾讯CDC
The GitHub Blog
The GitHub Blog
云风的 BLOG
云风的 BLOG
雷峰网
雷峰网
Last Week in AI
Last Week in AI
H
Help Net Security
WordPress大学
WordPress大学
博客园 - 司徒正美
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
H
Hackread – Cybersecurity News, Data Breaches, AI and More
T
Tailwind CSS Blog
博客园 - 【当耐特】
S
SegmentFault 最新的问题
美团技术团队
M
MIT News - Artificial intelligence
L
LangChain Blog
博客园 - 聂微东

qiaoqiao

outlook打开邮件报错Contacting the Server for Information 将数据同步到云盘:openlist+rclone - qiaoqiao 数据库同步工具 DBSwitch vs dbsyncer - qiaoqiao 记录下关于数据库的一些常用命令 - qiaoqiao 导出AD域环境下特定组成员 - qiaoqiao 记账后续 - qiaoqiao 连接网络共享打印机报错0x00000057 - qiaoqiao 为了一盘醋,包了一顿饺子(记账之路) - qiaoqiao windows远程桌面白屏解决办法 - qiaoqiao podman重启后容器无法自启动解决办法 - qiaoqiao win7电脑蓝屏,蓝屏代码:0x0000007B - qiaoqiao Deepseek R1本地部署 - qiaoqiao 免费博客方案:hugo+cloudflare - qiaoqiao wireguard配置多节点组网 - qiaoqiao
Fail2ban防止暴力攻击 - qiaoqiao
qiaoqiao · 2025-01-09 · via qiaoqiao

最近查看了下vps的的登录情况,发现大量的ssh登录失败日志,即使我改了默认的ssh端口也没什么用,所以只能用其他的办法来解决问题。
Fail2Ban 是一个用于防止暴力攻击的开源工具,它通过监控日志文件来检测恶意行为(如多次失败的登录尝试),并根据配置的规则自动封禁相关 IP 地址,用这个工具就可以防止某个IP重复的暴力破解。
查看ssh登录失败日志

cat /var/log/auth.log | grep sshd | grep Failed

188.1.png

在介绍fail2ban之前我先写下我是怎么给linux做基础防护的。
首先就是创建一个管理员账号,然后设置禁止root远程登录

adduser newadmin    //创建账号
usermod -aG sudo newadmin   //将用户添加sudo组
groups newadmin   //查看是否在sudo组
cat /etc/passwd   //查看所有用户

配置禁止root ssh登录

nano /etc/ssh/sshd_config
PermitRootLogin no
systemctl restart sshd

修改ssh端口

nano /etc/ssh/sshd_config

去掉#,port 22改成其他端口

重启ssh:systemctl restart sshd

ubuntu22.10版本后重启ssh,端口未成功修改

解决办法:

systemctl daemon-reload
systemctl restart ssh.socket

安装Fail2ban

sudo apt-get install fail2ban -y

检查 Fail2Ban 状态:

sudo systemctl status fail2ban

修改配置

Fail2Ban 的配置文件位于 /etc/fail2ban/ 目录下。建议不要直接修改默认配置文件,而是创建自定义配置文件。
fail2ban.conf是默认缺省配置,jail.conf是默认监视配置

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

找到[ssh]部分,增加内容

[sshd]
ignoreip = 127.0.0.1/8  #忽略的IP地址
enabled = true
filter = sshd
port = 22
maxretry = 5       #允许的最大失败次数
findtime = 300     #在指定时间内达到失败次数即封禁
bantime = 600      #封禁时间,单位秒
logpath = /var/log/auth.log   #ssh登录日志位置

修改完配置需要重启

sudo systemctl restart fail2ban

查看sshd服务具体状态

sudo fail2ban-client status sshd

手动封禁 IP:

sudo fail2ban-client set sshd banip 192.168.1.2

手动解封 IP:

sudo fail2ban-client set sshd unbanip 192.168.1.2

Fail2Ban 的日志文件位于 /var/log/fail2ban.log,可以查看封禁记录和操作日志。

sudo cat /var/log/fail2ban.log

188.2.png

这里可以看到115.190.105.174尝试5次后被封禁就停止ssh登录了,但是94.103.125.224尝试5次后又登录了几次后停止ssh登录,也许是115那个IP是每隔20多秒登录一次,94那个IP是一秒登录三次,系统没反应过来?不过设置后登录日志就少了很多,算是相对安全了些。

如果出现封禁ip无效
查看防火墙规则

sudo iptables -L -n

检查是否有 Fail2Ban 的规则通常以 f2b- 开头