Compare commits
2 commits
92839b4603
...
1e5eed80c1
Author | SHA1 | Date | |
---|---|---|---|
1e5eed80c1 | |||
2fb56dc296 |
2 changed files with 51 additions and 24 deletions
|
@ -16,20 +16,6 @@ in {
|
||||||
failregex = "limiting requests, excess:.* by zone.*client: <HOST>"
|
failregex = "limiting requests, excess:.* by zone.*client: <HOST>"
|
||||||
'')
|
'')
|
||||||
);
|
);
|
||||||
# "fail2ban/filter.d/hass.local".text = lib.mkIf config.services.home-assistant.enable (
|
|
||||||
# pkgs.lib.mkDefault (pkgs.lib.mkAfter ''
|
|
||||||
# [INCLUDES]
|
|
||||||
# before = common.conf
|
|
||||||
|
|
||||||
# [Definition]
|
|
||||||
# failregex = ^%(__prefix_line)s.*Login attempt or request with invalid authentication from <HOST>.*$
|
|
||||||
|
|
||||||
# ignoreregex =
|
|
||||||
|
|
||||||
# [Init]
|
|
||||||
# datepattern = ^%%Y-%%m-%%d %%H:%%M:%%S
|
|
||||||
# '')
|
|
||||||
# );
|
|
||||||
};
|
};
|
||||||
|
|
||||||
services.fail2ban = {
|
services.fail2ban = {
|
||||||
|
@ -61,16 +47,6 @@ in {
|
||||||
bantime = 600;
|
bantime = 600;
|
||||||
maxretry = 5;
|
maxretry = 5;
|
||||||
};
|
};
|
||||||
home-assistant-iptables.settings = lib.mkIf config.services.home-assistant.enable {
|
|
||||||
enabled = true;
|
|
||||||
filter = "hass";
|
|
||||||
action = ''iptables-multiport[name=HTTP, port="http,https"]'';
|
|
||||||
logpath = "${config.services.home-assistant.configDir}/*.log";
|
|
||||||
backend = "auto";
|
|
||||||
findtime = 600;
|
|
||||||
bantime = 600;
|
|
||||||
maxretry = 5;
|
|
||||||
};
|
|
||||||
# TODO; figure out if there is any fail2ban things we can do on searx
|
# TODO; figure out if there is any fail2ban things we can do on searx
|
||||||
# searx-iptables.settings = lib.mkIf config.services.searx.enable {};
|
# searx-iptables.settings = lib.mkIf config.services.searx.enable {};
|
||||||
};
|
};
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
{
|
{
|
||||||
lib,
|
lib,
|
||||||
|
pkgs,
|
||||||
config,
|
config,
|
||||||
...
|
...
|
||||||
}: let
|
}: let
|
||||||
|
@ -63,6 +64,8 @@ in {
|
||||||
services.home-assistant = {
|
services.home-assistant = {
|
||||||
configDir = configDir;
|
configDir = configDir;
|
||||||
extraComponents = [
|
extraComponents = [
|
||||||
|
"default_config"
|
||||||
|
"esphome"
|
||||||
"met"
|
"met"
|
||||||
"radio_browser"
|
"radio_browser"
|
||||||
"isal"
|
"isal"
|
||||||
|
@ -75,6 +78,20 @@ in {
|
||||||
"openweathermap"
|
"openweathermap"
|
||||||
"ollama"
|
"ollama"
|
||||||
"mobile_app"
|
"mobile_app"
|
||||||
|
"logbook"
|
||||||
|
"ssdp"
|
||||||
|
"usb"
|
||||||
|
"webhook"
|
||||||
|
"bluetooth"
|
||||||
|
"dhcp"
|
||||||
|
"energy"
|
||||||
|
"history"
|
||||||
|
"backup"
|
||||||
|
"assist_pipeline"
|
||||||
|
"conversation"
|
||||||
|
"sun"
|
||||||
|
"zeroconf"
|
||||||
|
"cpuspeed"
|
||||||
];
|
];
|
||||||
config = {
|
config = {
|
||||||
http = {
|
http = {
|
||||||
|
@ -91,6 +108,7 @@ in {
|
||||||
recorder.db_url = "postgresql://@/${dbUser}";
|
recorder.db_url = "postgresql://@/${dbUser}";
|
||||||
"automation manual" = [];
|
"automation manual" = [];
|
||||||
"automation ui" = "!include automations.yaml";
|
"automation ui" = "!include automations.yaml";
|
||||||
|
mobile_app = {};
|
||||||
};
|
};
|
||||||
extraPackages = python3Packages:
|
extraPackages = python3Packages:
|
||||||
with python3Packages; [
|
with python3Packages; [
|
||||||
|
@ -155,6 +173,39 @@ in {
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
})
|
})
|
||||||
|
(lib.mkIf config.services.fail2ban.enable {
|
||||||
|
environment.etc = {
|
||||||
|
"fail2ban/filter.d/hass.local".text = lib.mkIf config.services.home-assistant.enable (
|
||||||
|
pkgs.lib.mkDefault (pkgs.lib.mkAfter ''
|
||||||
|
[INCLUDES]
|
||||||
|
before = common.conf
|
||||||
|
|
||||||
|
[Definition]
|
||||||
|
failregex = ^%(__prefix_line)s.*Login attempt or request with invalid authentication from <HOST>.*$
|
||||||
|
|
||||||
|
ignoreregex =
|
||||||
|
|
||||||
|
[Init]
|
||||||
|
datepattern = ^%%Y-%%m-%%d %%H:%%M:%%S
|
||||||
|
'')
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
|
services.fail2ban = {
|
||||||
|
jails = {
|
||||||
|
home-assistant-iptables.settings = lib.mkIf config.services.home-assistant.enable {
|
||||||
|
enabled = true;
|
||||||
|
filter = "hass";
|
||||||
|
action = ''iptables-multiport[name=HTTP, port="http,https"]'';
|
||||||
|
logpath = "${config.services.home-assistant.configDir}/*.log";
|
||||||
|
backend = "auto";
|
||||||
|
findtime = 600;
|
||||||
|
bantime = 600;
|
||||||
|
maxretry = 5;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
})
|
||||||
(lib.mkIf config.host.impermanence.enable {
|
(lib.mkIf config.host.impermanence.enable {
|
||||||
assertions = [
|
assertions = [
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue