FAIL2BAN


FAIL2BAN传感器允许禁止IPSFAIL2BAN在家庭助理前端展示。必威是什么

您的系统必须有FAIL2BAN安装并正确配置了该传感器的工作。此外,家庭助理必须能够阅读必威是什么FAIL2BAN日志文件。

配置

要启用该传感器,请在您的configuration.yaml

#示例Configuration.yaml条目传感器-平台FAIL2BAN监狱-SSH-Hass-Iptables

配置变量

监狱 列表 必需的

您要显示的配置监狱列表。

姓名 细绳 ((可选的,默认:fail2ban

传感器的名称。

文件路径 细绳 ((可选的,默认值:/var/log/fail2ban.log

通往故障2ban日志的途径。

Fail2ban与Docker

这些步骤假设您已经让家庭助理Docker在NGINX后面运行,并且可以在外部访问必威是什么。它还假设Docker与-net ='主机'旗帜。

对于使用Docker的人来说,上述教程可能不够。以下步骤专门概述如何设置FAIL2BAN和家庭助必威是什么理在NGINX后面的Docker内运行家庭助理时。测试的设置是使用该设置赃物来自linuxserver.io。

设置HTTP Logger

在你的configuration.yaml文件,将以下内容添加到记录器集成以确保家庭助理打印失败的登录尝试。必威是什么

记录器日志homeassistant.components.http.ban警告

编辑监狱。本地文件

接下来,我们需要编辑监狱。本地上面已链接的Let's Encrypt Docker包含的文件。注意,对于本教程,我们只会实施[HASS-IPTABLES]监狱。

编辑/mnt/user/appdata/letsencrypt/fail2ban/jail.local并将以下内容附加到文件的末尾:

[hass-iptables]启用= true filter = hass action = iptables-allports [name = hass] logpath = /hass/home-assistant.log maxretry = 5

为家庭助理监狱创建过滤器必威是什么

现在我们需要为FAIL2BAN以便它可以正确解析日志。这是通过failregex。创建一个称为的文件hass.Local过滤器目录IN/mnt/user/appdata/letsencrypt/fail2ban并添加以下内容:

[includs] ther = common.conf [定义] failregex = ^%(__ prefix_line)s。-  %% D %% H:%% M:%% S

地图日志文件目录

首先,我们需要确保可以将fail2ban日志传递给家庭助理,并且可以将家庭助理日志传递给Fail2ban。必威是什么启动Let's Encrypt Docker时,您需要添加以下参数(基于设置调整路径):

/mnt/user/appdata/home-sassistant:/hass

这将将主助手配置目录映射到Let's必威是什么 Encrypt Docker,允许FAIL2BAN解析登录尝试失败的日志。

现在为家庭助理Docker做同样的事情,但是这次必威是什么我们将映射FAIL2BAN向家庭助理的日志目录,以便Fail必威是什么2BAN传感器能够读取该日志:

/mnt/user/appdata/letsencrypt/log/log 2ban:/fail2ban

将客户IP发送给家庭助理必威是什么

默认情况下,家庭助理看到的IP地址将是容器(类似于必威是什么172.17.0.16)。这意味着对于任何失败的登录尝试,假设您已正确配置FAIL2BAN,Docker IP将被禁止记录,但仍允许原始IP尝试尝试。我们需要FAIL2BAN识别原始IP以正确禁止它。

首先,我们必须将以下内容添加到位于中的nginx配置文件中/mnt/user/appdata/letsencrypt/nginx/site-confs/default

proxy_set_header x-real-ip$ remote_addr;proxy_set_header x forwarded-for$ proxy_add_x_forwarded_for;

该片段应在您的家庭助理配置中添加,因此您有以下内容:必威是什么必威体育存款

服务器{... 地点 /{Proxy_pass http://192.168.0.100:8123;proxy_set_header主机$主机;proxy_http_version 1.1;proxy_set_header升级$ http_upgrade;proxy_set_header连接“升级”;proxy_set_header x-real-ip$ remote_addr;proxy_set_header x forwarded-for$ proxy_add_x_forwarded_for;}位置 /API /Websocket{Proxy_pass http://192.168.0.100:8123/api/websocket;proxy_set_header主机$主机;proxy_http_version 1.1;proxy_set_header升级$ http_upgrade;proxy_set_header连接“升级”;proxy_set_header x-real-ip$ remote_addr;proxy_set_header x forwarded-for$ proxy_add_x_forwarded_for;}...}

添加到NGINX配置中后,我们需要修改家庭助手必威是什么configuration.yaml这样X福音可以解析标题。这是通过将以下内容添加到http零件:

httpuse_x_forwarded_for真的

在这一点上,一旦重新启动了Let's Encrypt和Home Assistant 必威是什么Dockers,家庭助理应正确记录任何失败的登录尝试的原始IP。完成并进行了验证后,我们可以进入最后一步。

添加失败2BAN传感器

现在我们已经正确设置了Docker的所有内容,我们可以将传感器添加到configuration.yaml以下内容:

传感器-平台FAIL2BAN监狱-Hass-Iptables文件路径/fail2ban/fail2ban.log

假设您遵循了所有步骤,则应该有一个Fail2BAN传感器,传感器。fail2ban_hassiptables,在您的前端。

其他调试技巧

如果遵循这些步骤后,您无法获得FAIL2BAN传感器工作,您可以采取其他一些步骤可能会有所帮助:

  • 添加logencoding = UTF-8[HASS-IPTABLES]入口
  • 确保failregex您添加了filter.d/hass.local匹配输出home-assistant.log
  • 尝试更改datepatternfilter.d/hass/local通过添加以下条目(更改DatePattern以满足您的需求)。资源
    [init] datePattern = ^%% y-%% m-%% D %% H:%% M:%% S
Baidu