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

推荐订阅源

WordPress大学
WordPress大学
V
Visual Studio Blog
P
Privacy International News Feed
月光博客
月光博客
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
L
Lohrmann on Cybersecurity
N
News and Events Feed by Topic
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Apple Machine Learning Research
Apple Machine Learning Research
阮一峰的网络日志
阮一峰的网络日志
Webroot Blog
Webroot Blog
T
Threatpost
宝玉的分享
宝玉的分享
The Last Watchdog
The Last Watchdog
小众软件
小众软件
L
LINUX DO - 最新话题
C
Cisco Blogs
T
Troy Hunt's Blog
Schneier on Security
Schneier on Security
酷 壳 – CoolShell
酷 壳 – CoolShell
www.infosecurity-magazine.com
www.infosecurity-magazine.com
雷峰网
雷峰网
G
GRAHAM CLULEY
有赞技术团队
有赞技术团队
Know Your Adversary
Know Your Adversary
博客园 - 叶小钗
罗磊的独立博客
V
V2EX
博客园 - Franky
P
Proofpoint News Feed
SecWiki News
SecWiki News
腾讯CDC
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Jina AI
Jina AI
博客园 - 三生石上(FineUI控件)
S
Secure Thoughts
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Google DeepMind News
Google DeepMind News
Attack and Defense Labs
Attack and Defense Labs
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
PCI Perspectives
PCI Perspectives
V2EX - 技术
V2EX - 技术
Google DeepMind News
Google DeepMind News
Last Week in AI
Last Week in AI
aimingoo的专栏
aimingoo的专栏
Cisco Talos Blog
Cisco Talos Blog
N
News and Events Feed by Topic
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
S
SegmentFault 最新的问题

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- 开头