infrastructure/roles/fail2ban/tasks/main.yml

83 lines
2.2 KiB
YAML

---
# Tasks file for the fail2ban role
# Infrastructure
# Ansible instructions to deploy the infrastructure
# Copyright (C) 2020 Saibotk
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, version 3 of the License.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
- name: Install fail2ban package.
ansible.builtin.package:
name: "{{ fail2ban_package }}"
state: "{{ fail2ban_package_state }}"
become: true
- name: Create fail2ban logging directory.
ansible.builtin.file:
path: "/var/log/fail2ban"
state: directory
mode: '0700'
owner: 'root'
group: 'root'
become: true
- name: Create fail2ban systemd drop-in directory.
ansible.builtin.file:
path: "/etc/systemd/system/fail2ban.service.d"
state: directory
mode: '0755'
owner: 'root'
group: 'root'
become: true
- name: Deploy fail2ban jail config.
ansible.builtin.template:
src: "jail.local.j2"
dest: "/etc/fail2ban/jail.local"
mode: '0644'
owner: 'root'
group: 'root'
notify: Restart fail2ban service
become: true
- name: Deploy fail2ban config.
ansible.builtin.template:
src: "fail2ban.local.j2"
dest: "/etc/fail2ban/fail2ban.local"
mode: '0644'
owner: 'root'
group: 'root'
notify: Restart fail2ban service
become: true
- name: Deploy fail2ban hardening systemd drop-in.
ansible.builtin.template:
src: override.conf.j2
dest: /etc/systemd/system/fail2ban.service.d/override.conf
mode: '0644'
owner: 'root'
group: 'root'
notify: Restart fail2ban service
become: true
- name: Flush handlers
ansible.builtin.meta: flush_handlers
- name: Ensure fail2ban service is enabled and started.
ansible.builtin.systemd:
name: fail2ban
state: started
enabled: true
daemon_reload: true
become: true