|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- {%- from "iptables/map.jinja" import defaults,service,tables with context %}
- {%- if service.v4.enabled -%}
- # Generated by salt v{{ grains['saltversion'] }}
- {%- if not defaults.v4.metadata_rules %}
- {%- for s_name, svc in pillar.items() %}
- {%- if svc is mapping %}
- {%- if svc.get('_support', {}).get('iptables', {}).get('enabled', False) %}
- {%- macro load_grains_file() %}{% include s_name + '/meta/iptables.yml' %}{% endmacro %}
- {%- set grains_yaml = load_grains_file()|load_yaml %}
- {%- if grains_yaml is iterable %}
- {%- set grains_tables = grains_yaml.get('iptables', {}).get('tables', {}).get('v4', {}) %}
- {%- if grains_tables is iterable %}
- {%- for gt_name, gt in grains_tables.items() %}
- {%- if gt_name not in tables.v4 %}
- {%- do tables.v4.update( { gt_name: gt } ) %}
- {%- else %}
- {%- for gc_name, gc in gt.chains.items() %}
- {%- set gt_obj = tables.v4.get(gt_name) %}
- {%- if gc_name not in gt_obj.chains %}
- {%- do gt_obj.chains.update( { gc_name: gc } ) %}
- {%- else %}
- {%- set gc_obj = gt_obj.chains.get(gc_name) %}
- {%- if gc.ruleset is defined %}
- {%- if gc_obj.ruleset is not defined %}
- {%- do gc_obj.update( { 'ruleset': {} } ) %}
- {%- endif %}
- {%- for grule_id, gr in gc.ruleset.items()|sort %}
- {%- if grule_id not in gc_obj.ruleset %}
- {%- do gc_obj.ruleset.update( { grule_id: gr } ) %}
- {%- endif %}
- {%- endfor %}
- {%- endif %}
- {%- endif %}
- {%- endfor %}
- {%- endif %}
- {%- endfor %}
- {%- endif %}
- {%- endif %}
- {%- endif %}
- {%- endif %}
- {%- endfor %}
- {%- endif %}
- {%- for t_name, t in tables.v4.items() %}
- *{{ t_name }}
- {%- for c_name, c in t.chains.items() %}
- {%- if c_name in ('INPUT','FORWARD','OUTPUT','PREROUTING','POSTROUTING') %}
- {%- set policy = c.get('policy', defaults.v4.policy) %}
- {%- else %}
- {%- set policy = "- [0:0]" %}
- {%- endif %}
- :{{ c_name }} {{ policy }}
- {%- endfor %}
- {%- for c_name, c in t.chains.items() %}
- {%- for rule_id, r in c.get('ruleset', {}).items()|sort %}
- {%- set rule = r.get('rule', defaults.v4.ruleset.rule) %}
- {%- set action = r.get('action', defaults.v4.ruleset.action) %}
- {%- set params = r.get('params', defaults.v4.ruleset.params) %}
- {%- if rule != "" %}
- {%- set rule = " " + rule %}
- {%- endif %}
- {%- if action != "" %}
- {%- set action = " -j " + action %}
- {%- endif %}
- {%- if params != "" %}
- {%- set params = " " + params %}
- {%- endif %}
- -A {{ c_name }}{{ rule }}{{ action }}{{ params }}
- {%- endfor %}
- {%- endfor %}
- COMMIT
- {%- endfor %}
- {%- endif %}
|