|
- {% from "iptables/map.jinja" import service with context %}
-
- {%- if pillar.iptables.service.enabled %}
-
- iptables_packages:
- pkg.installed:
- - names: {{ service.pkgs }}
-
- iptables_services:
- service.dead:
- - enable: true
- - name: {{ service.service }}
- - sig: test -e /etc/iptables/rules.v4
- - require:
- - pkg: iptables_packages
-
- {%- for chain_name, chain in service.get('chain', {}).iteritems() %}
-
- {%- if chain.policy is defined %}
- iptables_{{ chain_name }}_policy:
- iptables.set_policy:
- - chain: {{ chain_name }}
- - policy: {{ chain.policy }}
- - table: filter
- {%- endif %}
-
- {%- for rule_name, rule in chain.get('rule', {}).iteritems() %}
-
- iptables_{{ chain_name }}_{{ rule_name }}:
- iptables.insert:
- {%- if rule.position is defined %}
- - position: {{ rule.position }}
- {%- endif %}
- {%- if rule.table is defined %}
- - table: {{ rule.table }}
- {%- endif %}
- - chain: {{ chain_name }}
- {%- if rule.jump is defined %}
- - jump: {{ rule.jump }}
- {%- endif %}
- {%- if rule.match is defined %}
- - match: {{ rule.match }}
- {%- endif %}
- {%- if rule.connection_state is defined %}
- - connstate: {{ rule.connection_state }}
- {%- endif %}
- {%- if rule.protocol is defined %}
- - proto: {{ rule.protocol }}
- {%- endif %}
- {%- if rule.destination_port is defined %}
- - dport: {{ rule.destination_port }}
- {%- endif %}
- {%- if rule.source_port is defined %}
- - sport: {{ rule.source_port }}
- {%- endif %}
- {%- if rule.in_interface is defined %}
- - in-interface: {{ rule.in_interface }}
- {%- endif %}
- {%- if rule.out_interface is defined %}
- - out-interface: {{ rule.out_interface }}
- {%- endif %}
- {%- if rule.to_destination is defined %}
- - to-destination: {{ rule.to_destination }}
- {%- endif %}
- {%- if rule.to_source is defined %}
- - to-source: {{ rule.to_source }}
- {%- endif %}
- {%- if rule.source_network is defined %}
- - source: {{ rule.source_network }}
- {%- endif %}
- {%- if rule.destination_network is defined %}
- - destination: {{ rule.destination_network }}
- {%- endif %}
- {%- if chain.policy is defined %}
- - require_in:
- - iptables: iptables_{{ chain_name }}_policy:
- {%- endif %}
- - save: True
-
- {%- endfor %}
-
- {%- endfor %}
-
- {%- else %}
-
- iptables_services:
- service.dead:
- - enable: false
- - name: {{ service.service }}
-
- {%- endif %}
|