关于 Docker Gitea 非 rootless 版配置 SSH Fail2ban 指南

💡 原文中文,约2700字,阅读约需7分钟。
📝

内容提要

Gitea 标准版在 Docker 中无法获取 SSH 爆破日志,因其使用容器内的 OpenSSH。通过自建镜像和监控脚本可解决此问题,并提供 Fail2ban 匹配规则。

🎯

关键要点

  • Gitea 标准版在 Docker 中无法获取 SSH 爆破日志,因其使用容器内的 OpenSSH。

  • 通过自建镜像和监控脚本可以解决 SSH 日志获取问题。

  • 在 app.ini 中,ENABLE_SSH_LOG 仅对 Gitea 内建 SSH 有效,标准版不支持。

  • 使用 docker logs -f 命令获取日志,并通过脚本格式化时间戳。

  • 创建 gitea-log-monitor.service 系统服务以监控 Gitea 容器日志。

  • 提供了 Fail2ban 的匹配规则以监控 SSH 登录尝试。

  • 建议使用 FORWARD 链而非 DOCKER-USER 链来处理 SSH 日志。

延伸问答

Gitea 标准版在 Docker 中如何获取 SSH 日志?

Gitea 标准版在 Docker 中无法直接获取 SSH 日志,因为它使用容器内的 OpenSSH。需要自建镜像和监控脚本来解决此问题。

如何配置 Gitea 的 SSH 日志监控?

可以通过创建 gitea-log-monitor.service 系统服务,使用自建的 gitea_log_monitor.sh 脚本来监控 Gitea 容器日志。

在 app.ini 中如何设置 ENABLE_SSH_LOG?

ENABLE_SSH_LOG 仅对 Gitea 内建 SSH 有效,标准版不支持该设置,因为它使用的是容器中的 OpenSSH。

如何使用 docker logs 命令获取 Gitea 日志?

可以使用 'docker logs -f --timestamps <容器名>' 命令获取 Gitea 日志,并通过脚本格式化时间戳。

Fail2ban 的匹配规则如何配置?

Fail2ban 的匹配规则可以在 gitea.conf 文件中定义,使用特定的正则表达式来监控 SSH 登录尝试。

为什么建议使用 FORWARD 链而非 DOCKER-USER 链?

由于 SSH 的特殊性,使用 FORWARD 链才能有效监控 SSH 日志,DOCKER-USER 链不适用。

🏷️

标签

➡️

继续阅读