Compare commits

..

9 Commits

Author SHA1 Message Date
4b80cfe531 Merge pull request 'style 💎: Fix table formatting and add code block for list_banned task' (#46) from dev into main
All checks were successful
ansible-lint / Ansible Lint (push) Successful in 12s
Gitleaks Scan / gitleaks (push) Successful in 5s
Markdown Lint / markdown-lint (push) Successful in 6s
Reviewed-on: #46
2026-03-01 10:55:12 +01:00
9adb8f8d2a Merge pull request 'fix 🐛: Fix typo in firewall path variable' (#45) from dev into main
All checks were successful
ansible-lint / Ansible Lint (push) Successful in 13s
Gitleaks Scan / gitleaks (push) Successful in 4s
Markdown Lint / markdown-lint (push) Successful in 5s
Mark stale issues and pull requests / stale (push) Successful in 2s
Reviewed-on: #45
2026-02-25 17:41:08 +01:00
f63c643cc6 Merge pull request 'feat : Add task for importing fail2ban configuration' (#44) from dev into main
All checks were successful
ansible-lint / Ansible Lint (push) Successful in 14s
Gitleaks Scan / gitleaks (push) Successful in 5s
Markdown Lint / markdown-lint (push) Successful in 6s
Reviewed-on: #44
2026-02-25 17:35:26 +01:00
94726374ea Merge pull request 'feat : Add Fail2ban integration with Proxmox Firewall' (#43) from dev into main
All checks were successful
ansible-lint / Ansible Lint (push) Successful in 13s
Gitleaks Scan / gitleaks (push) Successful in 4s
Markdown Lint / markdown-lint (push) Successful in 5s
Mark stale issues and pull requests / stale (push) Successful in 3s
Reviewed-on: #43
2026-02-24 19:22:28 +01:00
6f27f0c47c Merge pull request 'feat : Add new task to stop log2ram before extracting it' (#42) from dev into main
All checks were successful
ansible-lint / Ansible Lint (push) Successful in 12s
Gitleaks Scan / gitleaks (push) Successful in 4s
Markdown Lint / markdown-lint (push) Successful in 5s
Mark stale issues and pull requests / stale (push) Successful in 3s
Reviewed-on: #42
2026-02-16 20:54:28 +01:00
d36e7c34bf Merge pull request 'refactor ♻️: Reduce log2ram RAM allocation from 10% to 5%' (#41) from dev into main
All checks were successful
ansible-lint / Ansible Lint (push) Successful in 13s
Gitleaks Scan / gitleaks (push) Successful in 4s
Markdown Lint / markdown-lint (push) Successful in 5s
Reviewed-on: #41
2026-02-16 19:31:01 +01:00
6458a4e0cf Merge pull request 'chore 📦: Update log2ram version to 1.7.2 and add dynamic versioning in ram.yml' (#40) from dev into main
All checks were successful
ansible-lint / Ansible Lint (push) Successful in 12s
Markdown Lint / markdown-lint (push) Successful in 6s
Gitleaks Scan / gitleaks (push) Successful in 4s
Reviewed-on: #40
2026-02-16 18:50:07 +01:00
2e570f6808 Merge pull request 'feat : Add variable log2ram_host_memtotal_mb for storing host memory total in MB' (#39) from dev into main
All checks were successful
ansible-lint / Ansible Lint (push) Successful in 12s
Gitleaks Scan / gitleaks (push) Successful in 4s
Markdown Lint / markdown-lint (push) Successful in 6s
Reviewed-on: #39
2026-02-16 18:28:08 +01:00
1929ad13af Merge pull request 'feat : Add variable log2ram_host_memtotal_mb for storing host memory total in MB' (#37) from dev into main
All checks were successful
ansible-lint / Ansible Lint (push) Successful in 12s
Gitleaks Scan / gitleaks (push) Successful in 4s
Markdown Lint / markdown-lint (push) Successful in 5s
Reviewed-on: #37
2026-02-16 17:58:40 +01:00

View File

@@ -94,6 +94,7 @@
backend = systemd
banaction = {% if (clustered.stat.exists | default(false)) %} proxmox-fw{% else %} iptables-multiport{% endif %}
ignoreip = 127.0.0.1/8 192.168.2.0/24
# {% if pmxcfs_running.stat.exists %} {{ corosync_networks | join(' ') }}{% endif %}
#################################################
# SSH
@@ -152,16 +153,10 @@
{{
'/etc/pve/firewall/cluster.fw'
if clustered.stat.exists
else '/etc/pve/nodes/' + pve_node + '/host.fw'
else '/etc/pve/nodes/' + pve_node + '.fw'
}}
when: pve_installed.stat.exists | default(false)
- name: fail2ban | Show firewall config path
ansible.builtin.debug:
msg: >
WARNING: Proxmox firewall config path is: {{ pve_firewall_config}}
when: pve_firewall_config is defined
#################################################
# Detect firewall configuration
#################################################
@@ -178,19 +173,15 @@
register: fw_content
when: fw_stat.stat.exists | default(false)
- name: fail2ban | Debug config contents
ansible.builtin.debug:
msg: >
{{ fw_content }}
when: fw_stat.stat.exists | default(false)
- name: fail2ban | Determine if firewall enabled
ansible.builtin.set_fact:
pve_firewall_enabled: >-
{{
fw_stat.stat.exists and
(fw_content.content | b64decode)
is search('^enable:\s*1$', multiline=True)
(fw_stat.stat.exists | default(false)) and
(
(fw_content.content | default('') | b64decode)
is search('enable:\s*1')
)
}}
- name: fail2ban | Warn if firewall not enabled
@@ -288,35 +279,35 @@
enabled: true
state: started
# #################################################
# # List banned IPs cluster-wide
# #################################################
#################################################
# List banned IPs cluster-wide
#################################################
# - name: fail2ban | Get banned IPs from Proxmox IPSet
# ansible.builtin.command: pve-firewall ipset list {{ f2b_ipset_name }}
# register: banned_ips
# changed_when: false
# failed_when: false
- name: fail2ban | Get banned IPs from Proxmox IPSet
ansible.builtin.command: pve-firewall ipset list {{ f2b_ipset_name }}
register: banned_ips
changed_when: false
failed_when: false
# - name: fail2ban | Show banned IPs
# ansible.builtin.debug:
# msg: >
# Current banned IPs (cluster-wide):
# {{ banned_ips.stdout_lines | default([]) }}
- name: fail2ban | Show banned IPs
ansible.builtin.debug:
msg: >
Current banned IPs (cluster-wide):
{{ banned_ips.stdout_lines | default([]) }}
# #################################################
# # Manual unban
# #################################################
#################################################
# Manual unban
#################################################
# - name: fail2ban | Unban specific IP
# ansible.builtin.command: >
# pve-firewall ipset del {{ f2b_ipset_name }} {{ f2b_unban_ip }}
# when: f2b_unban_ip is defined and f2b_unban_ip | length > 0
# register: unban_result
# changed_when: "'removed' in unban_result.stdout or unban_result.rc == 0"
# failed_when: false
- name: fail2ban | Unban specific IP
ansible.builtin.command: >
pve-firewall ipset del {{ f2b_ipset_name }} {{ f2b_unban_ip }}
when: f2b_unban_ip is defined and f2b_unban_ip | length > 0
register: unban_result
changed_when: "'removed' in unban_result.stdout or unban_result.rc == 0"
failed_when: false
# - name: fail2ban | Report unban result
# ansible.builtin.debug:
# msg: "Unbanned IP {{ f2b_unban_ip }}"
# when: f2b_unban_ip | length > 0
- name: fail2ban | Report unban result
ansible.builtin.debug:
msg: "Unbanned IP {{ f2b_unban_ip }}"
when: f2b_unban_ip | length > 0