roles/common: rework fail2ban tasks

We can only run fail2ban when we have logs to monitor. When a host
is running Caddy we don't have logs, so fail2ban doesn't have any-
thing to monitor out of the box. For now I will restrict the task
to hosts running nginx.
This commit is contained in:
Alan Orth 2023-08-23 21:59:28 +03:00
parent 84d210cfab
commit 067adcd9f5
Signed by: alanorth
GPG Key ID: 0FB860CC9C45B1B9
4 changed files with 23 additions and 6 deletions

View File

@ -25,3 +25,4 @@
ansible.builtin.systemd:
name: fail2ban
state: restarted
when: webserver is defined and webserver == 'nginx'

View File

@ -1,4 +1,15 @@
---
- name: Install fail2ban
when:
- ansible_distribution_major_version is version('11', '>=')
- webserver is defined and webserver == 'nginx'
ansible.builtin.package:
name:
- fail2ban
- python3-systemd
state: present
cache_valid_time: 3600
- name: Configure fail2ban sshd filter
ansible.builtin.template:
src: etc/fail2ban/jail.d/sshd.local.j2

View File

@ -6,10 +6,8 @@
when: ansible_distribution_major_version is version('11', '>=')
ansible.builtin.package:
name:
- fail2ban
- libnet-ip-perl # for aggregate-cidr-addresses.pl
- nftables
- python3-systemd
- curl # for nftables update scripts
state: present
cache_valid_time: 3600
@ -109,8 +107,12 @@
state: started
enabled: true
# We only install fail2ban on systems running nginx. If the host is running
# Caddy then there are no logs for us to monitor.
- ansible.builtin.include_tasks: fail2ban.yml
when: ansible_distribution_major_version is version('9', '>=')
when:
- ansible_distribution_major_version is version('9', '>=')
- webserver is defined and webserver == 'nginx'
tags: firewall
# vim: set sw=2 ts=2:

View File

@ -3,12 +3,11 @@
- block:
- name: Install Ubuntu firewall packages
when: ansible_distribution_version is version('20.04', '>=')
ansible.builtin.package:
name:
- fail2ban
- libnet-ip-perl # for aggregate-cidr-addresses.pl
- nftables
- python3-systemd
- curl # for nftables update scripts
state: present
cache_valid_time: 3600
@ -107,8 +106,12 @@
state: started
enabled: true
# We only install fail2ban on systems running nginx. If the host is running
# Caddy then there are no logs for us to monitor.
- ansible.builtin.include_tasks: fail2ban.yml
when: ansible_distribution_version is version('16.04', '>=')
when:
- ansible_distribution_version is version('16.04', '>=')
- webserver is defined and webserver == 'nginx'
tags: firewall
# vim: set sw=2 ts=2: