我已经在 Docker 论坛上提问但到目前为止还没有收到回复。我希望在这里能有更好的运气。
我正在 Docker 容器中制作 ssh 堡垒(使用 fail2ban 确保安全)。该容器除了作为 ssh 堡垒外没有其他用途,并将用于通过 sshfs 访问绑定卷。
目前,我怀疑我正在使用一种非常糟糕的方法。我的 Dockerfile:
- 拉取最新的 debian stable-slim 镜像,
- 通过 apt 安装 ssh 和 fail2ban,
- 添加用户、sshd_config 和 fail2ban jails,
- 然后指定一个包装器 bash 脚本,在该脚本中我使用 /app 中的自定义配置路径无条件启动 ssh 和 fail2ban
它可以工作,但有一些警告(没有 /var/log/auth.log 供 fail2ban 使用,因此那里有相当多的配置扭曲),但我觉得我做错了。
问题是,很难找到有关如何正确完成我正在尝试做的事情的信息。有无数的页面列出了如何通过 ssh 进入容器进行调试、备份等。还有一些有趣的页面关于为什么你不应该 ssh 进入容器。但我还没有找到“这是在 Docker 容器中使用 fail2ban 正确设置 ssh 堡垒的方法”。这真的存在吗?或者我这样做是对的吗?
谢谢!
答案1
注意:我知道这是一个老问题,但它出现在搜索引擎中。写下我的答案是为了帮助任何有同样问题的人。
这降低了升级容器以及出现任何问题时恢复的复杂性。
您应该有两个容器——一个SSH
容器和一个Fail2Ban
容器。
对于SSH
容器,您将适当的日志文件映射到主机上的目录。根据您的需要配置容器。
容器Fail2Ban
需要权限才能编辑IPTables
主机上的防火墙。Fail2Ban
容器还需要映射到相同的SSH
日志文件(甚至:ro
在映射中附加“只读”,因为它不需要写入日志文件)