Skip to content

Commit 2507f7d

Browse files
committed
fail2ban: Add jail for .env scanner detection
1 parent e23b989 commit 2507f7d

File tree

3 files changed

+16
-0
lines changed

3 files changed

+16
-0
lines changed

group_vars/all/security.yml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,13 @@ fail2ban_services_custom:
2929
enabled: "false"
3030
port: http,https
3131
logpath: "{{ www_root }}/**/logs/access.log"
32+
- name: nginx_env_probe
33+
filter: nginx-env-probe
34+
enabled: "true"
35+
port: http,https
36+
logpath: "{{ www_root }}/**/logs/error.log"
37+
maxretry: 1
38+
bantime: 3600
3239

3340
# If sshd_permit_root_login: false, admin_user must be in 'users' (`group_vars/all/users.yml`) with sudo group
3441
# and in 'vault_users' (`group_vars/staging/vault.yml`, `group_vars/production/vault.yml`)
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Fail2Ban filter for nginx .env file access attempts
2+
# Matches nginx error log entries for forbidden .env file requests
3+
4+
[Definition]
5+
failregex = ^\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} \[error\].*access forbidden by rule, client: <HOST>,.*request: "GET .*\.env.*"
6+
ignoreregex =

roles/fail2ban/templates/jail.local.j2

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ logpath = {{ service.logpath }}
3535
{% if service.maxretry is defined %}
3636
maxretry = {{ service.maxretry }}
3737
{% endif %}
38+
{% if service.bantime is defined %}
39+
bantime = {{ service.bantime }}
40+
{% endif %}
3841
{% if service.protocol is defined %}
3942
protocol = {{ service.protocol }}
4043
{% endif %}

0 commit comments

Comments
 (0)