FAIL2BAN
这FAIL2BAN
传感器允许禁止IPSFAIL2BAN在家庭助理前端展示。必威是什么
您的系统必须有FAIL2BAN
安装并正确配置了该传感器的工作。此外,家庭助理必须能够阅读必威是什么FAIL2BAN
日志文件。
配置
要启用该传感器,请在您的configuration.yaml
:
#示例Configuration.yaml条目传感器:-平台:FAIL2BAN监狱:-SSH-Hass-Iptables
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
零件:
http:use_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
- 尝试更改datepattern
filter.d/hass/local
通过添加以下条目(更改DatePattern以满足您的需求)。资源[init] datePattern = ^%% y-%% m-%% D %% H:%% M:%% S