关于 Docker Gitea 非 rootless 版配置 SSH Fail2ban 指南
内容提要
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 链不适用。