ubuntu部署fail2ban并配置防止暴力破解
在Ubuntu系统中部署Fail2ban并配置防止SSH暴力破解的步骤如下:
-
安装Fail2ban:
打开终端并通过以下命令安装Fail2ban:sudo apt update sudo apt install fail2ban
-
配置Fail2ban:
Fail2ban的配置文件通常位于/etc/fail2ban/
目录下,主要的自定义配置应放在jail.local
文件中。这个文件会覆盖默认的
jail.conf
中的设置。-
如果
jail.local
不存在,首先创建它并确保它不会被覆盖:sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
-
使用文本编辑器打开
jail.local
并进行必要的配置修改以防止SSH暴力破解,例如:sudo vim /etc/fail2ban/jail.local
在
[sshd]
部分(或新建一个针对SSH的配置段),你可以调整如下的参数:enabled
: 确保此项设为true
来启用对SSH服务的防护。port
: 默认应该是22,即SSH服务端口。filter
: 应该已经指向了用于分析SSH日志的过滤器,通常是sshd
。logpath
: 设置SSH日志文件路径,通常为/var/log/auth.log
或/var/log/secure
。maxretry
: 设置允许的最大失败登录尝试次数,默认可能为6次,可以根据需要减少。findtime
: 在指定的时间内达到最大尝试次数才会触发禁止,例如findtime = 10m
表示10分钟内。bantime
: IP被禁止访问的持续时间,例如bantime = 24h
将阻止IP地址24小时。
示例配置片段:
[sshd] enabled = true port = ssh filter = sshd logpath = %(sshd_log)s maxretry = 5 findtime = 10m bantime = 24h
-
-
启动并设置开机自动启动Fail2ban:
sudo systemctl start fail2ban sudo systemctl enable fail2ban
-
测试和验证配置:
检查Fail2ban是否正常运行,并查看已屏蔽的IP地址列表(如果有的话):sudo fail2ban-client status sshd
-
安全优化:
为了进一步增强安全性,建议将SSH服务器配置成只允许通过密钥认证登录,禁用密码登录。这可以在/etc/ssh/sshd_config
文件中进行配置。
请根据实际情况检查和调整上述步骤与配置内容。
补充
fail2ban-client的相关用法
fail2ban-client
是 fail2ban 工具的命令行客户端,用于与运行中的 fail2ban 服务进行交互。以下是一些常用的 fail2ban-client
命令和用法:
-
查看帮助信息:
fail2ban-client -h
或者
fail2ban-client help
-
查看所有可用jail的状态:
fail2ban-client status
如果只想查看特定jail(例如sshd)的状态,则可以指定jail名称:
fail2ban-client status sshd
-
添加或移除IP地址黑名单:
- 封禁一个IP地址(通常不需要手动执行,因为fail2ban会根据日志自动执行):
fail2ban-client set <JAIL_NAME> banip <IP_ADDRESS>
- 解封一个IP地址:
fail2ban-client set <JAIL_NAME> unbanip <IP_ADDRESS>
- 封禁一个IP地址(通常不需要手动执行,因为fail2ban会根据日志自动执行):
-
获取配置信息:
fail2ban-client get [section] [option]
例如,获取ssh jail的最大重试次数:
fail2ban-client get ssh maxretry
-
重启某个jail:
fail2ban-client reload <JAIL_NAME>
-
重启整个fail2ban服务:
sudo systemctl restart fail2ban
或者使用
fail2ban-client
的旧版本命令:fail2ban-client reload
-
发送信号给fail2ban服务:
fail2ban-client signal [SIGNAL_NAME]
其中 SIGNAL_NAME 可以是如 'reload', 'start', 'stop', 'status' 等。
-
检查过滤器是否能正确匹配日志:
fail2ban-regex <LOG_FILE_PATH> <FILTER_FILE_PATH>
注意:
fail2ban-regex
并不是fail2ban-client
的一部分,但它是一个有用的工具,用来测试过滤规则是否有效。
请根据实际需要以及系统安装的具体版本来调整这些命令。
本文来自博客园,作者:厚礼蝎,转载请注明原文链接:https://www.cnblogs.com/guangdelw/p/17966974
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人