blob: b2442727195857f3b0a48ecb8d25c18bc8140d58 [file] [log] [blame]
{%- from "auditd/map.jinja" import rules with context %}
{%- set filter_fs = rules.get('filter_fs', []) -%}
{%- set filter_paths = rules.get('filter_paths', []) -%}
{%- set auid = rules.get('auid', 1000) -%}
-D
{%- set bufsize = rules.get('options', {}).get('bufsize', 8192) %}
-b {{ bufsize }}
# Rules (might be empty)
{%- for _, ruleblock in rules.get('rules', {})|dictsort %}
{%- if ruleblock.get('enabled', false) %}
{%- set rules = ruleblock.get('rule_list', []) %}
{%- set rulekey = ruleblock['key'] %}
{%- if rulekey == 'privileged' -%}
{# Generate suid/sgid binaries list dynamically.
This behavior can not be changed but the list can be
extended via the corresponding pillar.
#}
{%- set privileged_list = salt['auditd.find_privileged'](filter_fs=filter_fs,filter_paths=filter_paths) -%}
{%- for bin in privileged_list -%}
{%- set rule = '-a always,exit -F path='+ bin +' -F perm=x -F auid>='~ auid ~' -F auid!=4294967295' -%}
{%- if rule not in rules %}
{%- do rules.append(rule) %}
{%- endif %}
{%- endfor %}
{%- endif %}
{% if rules|length > 0 %}
# "{{ rulekey }}" section
{%- for rule in rules %}
{{ rule }} -k {{ rulekey }}
{%- endfor %}
{%- endif %}
{%- endif %}
{%- endfor %}
# Enabled
{%- set enabled = rules.get('options', {}).get('enabled', 0) %}
-e {{ enabled }}
{#
# vim: ft=jinja
#}