You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 22.04最小化安装环境下配置fail2ban监控sshd时缺失日志文件的问题求助

Ubuntu 22.04最小化安装环境下配置fail2ban监控sshd时缺失日志文件的问题求助

您好,这个问题在Ubuntu 22.04最小化安装环境下很常见——该版本默认用systemd-journald管理日志,不再生成传统的/var/log/auth.log文件,所以fail2ban会找不到指定的日志路径。结合你的配置情况,我给你两个可行的解决方向:

方案一:直接适配systemd日志(推荐)

Ubuntu 22.04的sshd日志默认存在于systemd的journal中,只需要调整fail2ban配置让它直接读取journal日志即可:

  1. 编辑你的/etc/fail2ban/jail.local文件,修正两个关键问题:
    • 启用backend = systemd(你配置里已经注释了这一行,去掉注释即可)
    • 修正拼写错误:把findime改成findtime(这个错误会导致fail2ban的时间窗口配置失效)

修改后的[sshd]段应该是这样:

[sshd]
# To use more aggressive sshd modes set filter parameter "mode" in jail.local:
# normal (default), ddos, extra or aggressive (combines all).
# See "tests/files/logs/sshd" or "filter.d/sshd.conf" for usage example and details.
#mode   = normal
port     = 22443
backend  = systemd
enabled  = true
maxretry = 3
findtime = 300
bantime  = 3600
ignoreip = 127.0.0.1
  1. 重启fail2ban服务使配置生效:
sudo systemctl restart fail2ban
  1. 验证sshd jail是否正常运行:
fail2ban-client status sshd

如果输出显示Status for the jail: sshd以及相关的监控信息,说明配置成功了。

方案二:恢复传统的auth.log文件

如果你更习惯使用传统的日志文件,可以通过安装rsyslog来生成/var/log/auth.log:

  1. 安装rsyslog:
sudo apt update && sudo apt install rsyslog
  1. 启动并启用rsyslog服务:
sudo systemctl enable --now rsyslog
  1. 等待片刻后,/var/log/auth.log就会生成,此时fail2ban默认的日志路径配置就能正常识别,你只需要确保jail.local里的logpath = %(sshd_log)s保留即可(不过还是推荐方案一的systemd方式,更适配现代Ubuntu系统)。

最后再提醒一下,你配置里的findime是明显的拼写错误,一定要改成findtime,否则fail2ban不会按照你预期的300秒窗口来统计失败次数。

备注:内容来源于stack exchange,提问作者Sorin Orii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.20 12:08:11