Add fail2ban role and clean up yaml lint noise

This commit is contained in:
2026-08-08 23:50:32 -05:00
parent 9b837dd780
commit 6c7ecfc724
352 changed files with 4632 additions and 4186 deletions
@@ -0,0 +1,37 @@
# Default block/ban configuration
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
banaction = iptables-multiport
backend = systemd
# SSH is enabled on all servers
[sshd]
enabled = true
# Apache
[apache-auth]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
[apache-badbots]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
[apache-noscript]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
[apache-overflows]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
# Postfix
[postfix]
enabled = {{ 'true' if 'postfix' in ansible_facts.packages else 'false' }}
# Dovecot
[dovecot]
enabled = {{ 'true' if 'dovecot' in ansible_facts.packages or 'dovecot-core' in ansible_facts.packages else 'false' }}
# MariaDB / MySQL
[mysqld-auth]
enabled = {{ 'true' if ('mariadb-server' in ansible_facts.packages or 'mariadb' in ansible_facts.packages or 'mysql-server' in ansible_facts.packages) else 'false' }}
@@ -0,0 +1,37 @@
# Default block/ban configuration
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
banaction = iptables-multiport
backend = systemd
# SSH is enabled on all servers
[sshd]
enabled = true
# Apache
[apache-auth]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
[apache-badbots]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
[apache-noscript]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
[apache-overflows]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
# Postfix
[postfix]
enabled = {{ 'true' if 'postfix' in ansible_facts.packages else 'false' }}
# Dovecot
[dovecot]
enabled = {{ 'true' if 'dovecot' in ansible_facts.packages or 'dovecot-core' in ansible_facts.packages else 'false' }}
# MariaDB / MySQL
[mysqld-auth]
enabled = {{ 'true' if ('mariadb-server' in ansible_facts.packages or 'mariadb' in ansible_facts.packages or 'mysql-server' in ansible_facts.packages) else 'false' }}
@@ -0,0 +1,37 @@
# Default block/ban configuration
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
banaction = iptables-multiport
backend = systemd
# SSH is enabled on all servers
[sshd]
enabled = true
# Apache
[apache-auth]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
[apache-badbots]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
[apache-noscript]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
[apache-overflows]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
# Postfix
[postfix]
enabled = {{ 'true' if 'postfix' in ansible_facts.packages else 'false' }}
# Dovecot
[dovecot]
enabled = {{ 'true' if 'dovecot' in ansible_facts.packages or 'dovecot-core' in ansible_facts.packages else 'false' }}
# MariaDB / MySQL
[mysqld-auth]
enabled = {{ 'true' if ('mariadb-server' in ansible_facts.packages or 'mariadb' in ansible_facts.packages or 'mysql-server' in ansible_facts.packages) else 'false' }}
@@ -0,0 +1,37 @@
# Default block/ban configuration
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
banaction = firewallcmd-rich-rules
backend = systemd
# SSH is enabled on all servers
[sshd]
enabled = true
# Apache
[apache-auth]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
[apache-badbots]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
[apache-noscript]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
[apache-overflows]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
# Postfix
[postfix]
enabled = {{ 'true' if 'postfix' in ansible_facts.packages else 'false' }}
# Dovecot
[dovecot]
enabled = {{ 'true' if 'dovecot' in ansible_facts.packages or 'dovecot-core' in ansible_facts.packages else 'false' }}
# MariaDB / MySQL
[mysqld-auth]
enabled = {{ 'true' if ('mariadb-server' in ansible_facts.packages or 'mariadb' in ansible_facts.packages or 'mysql-server' in ansible_facts.packages) else 'false' }}
@@ -0,0 +1,37 @@
# Default block/ban configuration
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
banaction = firewallcmd-rich-rules
backend = systemd
# SSH is enabled on all servers
[sshd]
enabled = true
# Apache
[apache-auth]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
[apache-badbots]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
[apache-noscript]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
[apache-overflows]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
# Postfix
[postfix]
enabled = {{ 'true' if 'postfix' in ansible_facts.packages else 'false' }}
# Dovecot
[dovecot]
enabled = {{ 'true' if 'dovecot' in ansible_facts.packages or 'dovecot-core' in ansible_facts.packages else 'false' }}
# MariaDB / MySQL
[mysqld-auth]
enabled = {{ 'true' if ('mariadb-server' in ansible_facts.packages or 'mariadb' in ansible_facts.packages or 'mysql-server' in ansible_facts.packages) else 'false' }}
@@ -0,0 +1,37 @@
# Default block/ban configuration
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
banaction = iptables-multiport
backend = systemd
# SSH is enabled on all servers
[sshd]
enabled = true
# Apache
[apache-auth]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
[apache-badbots]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
[apache-noscript]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
[apache-overflows]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
# Postfix
[postfix]
enabled = {{ 'true' if 'postfix' in ansible_facts.packages else 'false' }}
# Dovecot
[dovecot]
enabled = {{ 'true' if 'dovecot' in ansible_facts.packages or 'dovecot-core' in ansible_facts.packages else 'false' }}
# MariaDB / MySQL
[mysqld-auth]
enabled = {{ 'true' if ('mariadb-server' in ansible_facts.packages or 'mariadb' in ansible_facts.packages or 'mysql-server' in ansible_facts.packages) else 'false' }}
@@ -0,0 +1,37 @@
# Default block/ban configuration
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
banaction = iptables-multiport
backend = systemd
# SSH is enabled on all servers
[sshd]
enabled = true
# Apache
[apache-auth]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
[apache-badbots]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
[apache-noscript]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
[apache-overflows]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
# Postfix
[postfix]
enabled = {{ 'true' if 'postfix' in ansible_facts.packages else 'false' }}
# Dovecot
[dovecot]
enabled = {{ 'true' if 'dovecot' in ansible_facts.packages or 'dovecot-core' in ansible_facts.packages else 'false' }}
# MariaDB / MySQL
[mysqld-auth]
enabled = {{ 'true' if ('mariadb-server' in ansible_facts.packages or 'mariadb' in ansible_facts.packages or 'mysql-server' in ansible_facts.packages) else 'false' }}
@@ -0,0 +1,37 @@
# Default block/ban configuration
[DEFAULT]
bantime = 1h
findtime = 10m
maxretry = 5
banaction = iptables-multiport
backend = systemd
# SSH is enabled on all servers
[sshd]
enabled = true
# Apache
[apache-auth]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
[apache-badbots]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
[apache-noscript]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
[apache-overflows]
enabled = {{ 'true' if ('httpd' in ansible_facts.packages or 'apache2' in ansible_facts.packages) else 'false' }}
# Postfix
[postfix]
enabled = {{ 'true' if 'postfix' in ansible_facts.packages else 'false' }}
# Dovecot
[dovecot]
enabled = {{ 'true' if 'dovecot' in ansible_facts.packages or 'dovecot-core' in ansible_facts.packages else 'false' }}
# MariaDB / MySQL
[mysqld-auth]
enabled = {{ 'true' if ('mariadb-server' in ansible_facts.packages or 'mariadb' in ansible_facts.packages or 'mysql-server' in ansible_facts.packages) else 'false' }}