运行 kubernetes 中的 fail2ban?
run fail2ban in kubernetes?
我目前的情况:
我正在设置一个邮件服务器,就在它开始工作后,日志中充斥着 authentication failed
来自可疑伊朗网络的试图登录随机帐户的消息。
谷歌搜索后我发现 fail2ban
可以阻止这些攻击,但是有一个问题:如何在 kubernetes 中使用 fail2ban?
我的想法:
- 我找到了 this plugin for traefik,但是它需要 traefik 实例连接到他们的 SaaS 管理服务,我不需要
- 在主机上安装
fail2ban
:由于kubernetes连接多节点,节点1上的fail2ban
只从该节点获取日志,不能阻止节点2上的流量。
是否有针对 运行 在 kubernetes 中的 fail2ban 的解决方案,可能链接到入口控制器,就像使用 traefik 一样,但没有与 SaaS 提供商的任何连接?
确实没有什么好方法可以做到这一点。既在日志访问方面,更重要的是在容器内部调整 iptables 规则。您绝对可以使用 fail2ban 的核心引擎围绕 k8s 本机 API(pods/logs
、NetworkPolicy)构建一个工具,但是在撰写本文时我还不知道任何此类项目。
理论上,您需要 运行 fail2ban
具有某些能力:
"spec": {
"hostNetwork": true,
"containers": [{
"name": "netadmin",
"securityContext": {"capabilities": { "add": ["NET_ADMIN", "NET_RAW"] }}
看这里:
这里:
您还需要将正确的日志传递到容器内的 fail2ban
。
我目前的情况:
我正在设置一个邮件服务器,就在它开始工作后,日志中充斥着 authentication failed
来自可疑伊朗网络的试图登录随机帐户的消息。
谷歌搜索后我发现 fail2ban
可以阻止这些攻击,但是有一个问题:如何在 kubernetes 中使用 fail2ban?
我的想法:
- 我找到了 this plugin for traefik,但是它需要 traefik 实例连接到他们的 SaaS 管理服务,我不需要
- 在主机上安装
fail2ban
:由于kubernetes连接多节点,节点1上的fail2ban
只从该节点获取日志,不能阻止节点2上的流量。
是否有针对 运行 在 kubernetes 中的 fail2ban 的解决方案,可能链接到入口控制器,就像使用 traefik 一样,但没有与 SaaS 提供商的任何连接?
确实没有什么好方法可以做到这一点。既在日志访问方面,更重要的是在容器内部调整 iptables 规则。您绝对可以使用 fail2ban 的核心引擎围绕 k8s 本机 API(pods/logs
、NetworkPolicy)构建一个工具,但是在撰写本文时我还不知道任何此类项目。
理论上,您需要 运行 fail2ban
具有某些能力:
"spec": {
"hostNetwork": true,
"containers": [{
"name": "netadmin",
"securityContext": {"capabilities": { "add": ["NET_ADMIN", "NET_RAW"] }}
看这里:
这里:
您还需要将正确的日志传递到容器内的 fail2ban
。