Linux 安全加固(Fail2Ban保护SSH和NGINX)
本页最后更新时间:2022年8月23日
参考教程
利用Fail2Ban保护你的服务器(Fail2Ban使用教程)
简介:
fail2ban 是 Linux 上的一个著名的开源入侵保护服务框架,它可以监控多个系统的日志文件(例如:/var/log/auth.log 或者 /var/log/secure)并根据检测到的任何可疑的行为自动触发不同的防御动作。事实上,fail2ban 在防御对SSH服务器的暴力密码破解上非常有用,同时它也可以通过监控web服务器的日志(如Nginx、Apache)从而实现异常IP自动封禁。
安装 Fail2Ban
CentOS (yum包管理器)
1 | sudo yum install fail2ban |
Debian&Ubuntu (apt包管理器)
1 | sudo apt install fail2ban |
调整 Fail2Ban 配置文件
1 | nano /etc/fail2ban/jail.conf |
在配置文件的“[DEFAULT]”区,你可以在此定义所有受监控的服务的默认参数,另外在特定服务的配置部分,你可以为每个服务(例如SSH,Apache等)设置特定的配置来覆盖默认的参数配置。
这三个是比较重要配置项,默认值如下
1 | # 封禁时间 |
它的意思是:在10分钟内,如果失败超过5次,那么就将这个IP丢到小黑屋里10分钟。
配置SSH登录保护
在配置区块中找到SSH servers字样的配置片段,然后默认配置就如下图所示,可以看到这个已经是配置好了,我们只需要在前面加一个enabled = true标记这个配置片段已经启用就行了。

1 | [sshd] |
按需求修改代码并使用以下代码重启服务
1 | # 开启自启动 |
看到提示running就OK了
如果我们在启动后又修改了配置文件的话,可以使用重载命令来使配置文件生效:
1 | #重启服务(推荐) |
查看封禁列表
接着我们可以来检查一下装了 fail2ban 的服务器的封禁列表,使用fail2ban-client status [监狱名称]来查看封禁列表
1 | [root@server ~]# fail2ban-client status sshd |
解封命令是fail2ban-client set [监狱名称] unbanip [封禁IP]
1 | fail2ban-client set sshd unbanip 82.116.189.56 |
这行命令就可以解封在sshd监狱中的这个IP
配置NGINX过载保护
- Title:
- Author: 清夏晚风
- Created at : 2026-01-13 16:48:23
- Updated at : 2026-01-13 16:48:23
- Link: https://blog.kimikkorow.eu.org/计算机基础/操作系统相关/操作系统使用相关/Linux/公共基础/Linux 安全加固/Fail2Ban 保护SSH和NGINX/
- License: This work is licensed under CC BY-NC-SA 4.0.