# This file is managed by SaltStack {%- for table in ['mangle', 'nat', 'filter'] %} *{{ table }} {%- for chain_name, chain in chains.iteritems() %} :{{ chain_name | upper }} {{ chain.get('policy', '-') | upper }} {%- endfor %} {%- for chain_name, chain in chains.iteritems() %} {%- for rule in chain.rules %} {%- if rule.get('table', 'filter').lower() == table and rule.get('family', 'ipv4') == 'ipv4' %} {%- set r = { 'full': 'True', 'table': table, 'chain': chain_name.upper(), 'command': 'A', 'family': 'ipv4', 'comment': rule.get('comment', '') + '__saltstack__', } %} {%- if rule.position is defined %} {%- do r.update({ 'command': 'I', 'position': rule['position'], }) %} {%- endif %} {%- if rule.jump is defined %} {%- do r.update({'jump': rule.jump}) %} {%- endif %} {%- if rule.match is defined %} {%- do r.update({'match': rule.match}) %} {%- endif %} {%- if rule.connection_state is defined %} {%- do r.update({'connstate': rule.connection_state}) %} {%- endif %} {%- if rule.protocol is defined %} {%- do r.update({'proto': rule.protocol}) %} {%- endif %} {%- if rule.destination_port is defined %} {%- do r.update({'dport': rule.destination_port}) %} {%- endif %} {%- if rule.source_port is defined %} {%- do r.update({'sport': rule.source_port}) %} {%- endif %} {%- if rule.in_interface is defined %} {%- do r.update({'in-interface': rule.in_interface}) %} {%- endif %} {%- if rule.out_interface is defined %} {%- do r.update({'out-interface': rule.out_interface}) %} {%- endif %} {%- if rule.to_destination is defined %} {%- do r.update({'to-destination': rule.to_destination}) %} {%- endif %} {%- if rule.to_port is defined %} {%- do r.update({'to-port': rule.to_port}) %} {%- endif %} {%- if rule.to_source is defined %} {%- do r.update({'to-source': rule.to_source}) %} {%- endif %} {%- if rule.source_network is defined %} {%- do r.update({'source': rule.source_network}) %} {%- endif %} {%- if rule.destination_network is defined %} {%- do r.update({'destination': rule.destination_network}) %} {%- endif %} {%- if rule.mark is defined %} {%- do r.update({'mark': rule.mark}) %} {%- endif %} {%- if rule.set_mark is defined %} {%- do r.update({'set-mark': rule.set_mark}) %} {%- endif %} {{ salt['iptables.build_rule'](**r) | regex_replace('^.*-t %s ' % table, '') }} {%- endif %} {%- endfor %} {%- endfor %} COMMIT {%- endfor %}