summary refs log tree commit diff stats
path: root/system/services/fail2ban/default.nix
blob: 1c47568abedc1aca79f0d6631797bf22f130acf2 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
{...}: {
  vhack.persist.directories = [
    {
      directory = "/var/lib/fail2ban";
      user = "fail2ban";
      group = "fail2ban";
      mode = "0700";
    }
  ];

  services.fail2ban = {
    enable = true;
    maxretry = 7; # ban after 7 failures
    daemonSettings = {
      Definition = {
        logtarget = "SYSLOG";
        socket = "/run/fail2ban/fail2ban.sock";
        pidfile = "/run/fail2ban/fail2ban.pid";
        dbfile = "/var/lib/fail2ban/db.sqlite3";
      };
    };
    bantime-increment = {
      enable = true;
      rndtime = "8m";
      overalljails = true;
      multipliers = "2 4 16 128 256";
      maxtime = "72h";
    };
    jails = {
      dovecot = ''
        # block IPs which failed to log-in
        # aggressive mode add blocking for aborted connections
        enabled = true
        filter = dovecot[mode=aggressive]
        maxretry = 2
      '';
      postfix = ''
        enabled = true
        filter = postfix[mode=aggressive]
        findtime = 600
        maxretry = 3
      '';
    };
  };
}