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

推荐订阅源

S
Security Affairs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Jina AI
Jina AI
P
Palo Alto Networks Blog
GbyAI
GbyAI
大猫的无限游戏
大猫的无限游戏
A
Arctic Wolf
Hugging Face - Blog
Hugging Face - Blog
小众软件
小众软件
Y
Y Combinator Blog
T
The Blog of Author Tim Ferriss
Blog — PlanetScale
Blog — PlanetScale
S
Schneier on Security
V
Vulnerabilities – Threatpost
C
Cybersecurity and Infrastructure Security Agency CISA
雷峰网
雷峰网
T
Tenable Blog
人人都是产品经理
人人都是产品经理
T
Tor Project blog
C
Cyber Attacks, Cyber Crime and Cyber Security
AWS News Blog
AWS News Blog
Microsoft Security Blog
Microsoft Security Blog
J
Java Code Geeks
Scott Helme
Scott Helme
SecWiki News
SecWiki News
C
CERT Recently Published Vulnerability Notes
Recorded Future
Recorded Future
I
InfoQ
Security Archives - TechRepublic
Security Archives - TechRepublic
Help Net Security
Help Net Security
Cloudbric
Cloudbric
C
Check Point Blog
Engineering at Meta
Engineering at Meta
TaoSecurity Blog
TaoSecurity Blog
B
Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
博客园_首页
N
News and Events Feed by Topic
云风的 BLOG
云风的 BLOG
MyScale Blog
MyScale Blog
腾讯CDC
量子位
Application and Cybersecurity Blog
Application and Cybersecurity Blog
K
Kaspersky official blog
Vercel News
Vercel News
F
Full Disclosure
T
Troy Hunt's Blog
Forbes - Security
Forbes - Security
S
Security @ Cisco Blogs

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