diff --git a/prudentia/files/file2ban/jail.local.j2 b/prudentia/files/file2ban/jail.local.j2 new file mode 100644 index 0000000..418a76e --- /dev/null +++ b/prudentia/files/file2ban/jail.local.j2 @@ -0,0 +1,19 @@ +[ssh] + +enabled = true + +port = ssh + +filter = sshd + +logpath = /var/log/auth.log + +action = hostsdeny[file=/etc/hosts.deny] + +maxretry = 3 + +ignoreip = 127.0.0.1/8 {% if whitelisted_ips is defined %} {% for host in whitelisted_ips %} {{host}} {% endfor %} {% endif %} + +findtime = 300 + +bantime = -1 diff --git a/prudentia/tasks/fail2ban.yml b/prudentia/tasks/fail2ban.yml new file mode 100644 index 0000000..4111b9e --- /dev/null +++ b/prudentia/tasks/fail2ban.yml @@ -0,0 +1,19 @@ +--- + # Parameters: + # prudentia_dir (provided) + # whitelisted_ips (optional) list of ips for /etc/hosts.allow + + - name: Fail2Ban | Install fail2ban + apt: pkg=fail2ban state=installed update-cache=yes + sudo: yes + tags: fail2ban + + - name: Fail2Ban | Configure local fail2ban jail + template: src={{prudentia_dir}}/files/file2ban/jail.local.j2 dest=/etc/fail2ban/jail.local + sudo: yes + tags: fail2ban + + - name: Fail2Ban | Reload + service: name=fail2ban state=reloaded + sudo: yes + tags: fail2ban