|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140 |
- # == State: firewalld._zone
- #
- # This state ensures that /etc/firewalld/zones/ exists.
- #
- /etc/firewalld/zones:
- file.directory: # make sure this is a directory
- - user: root
- - group: root
- - mode: 750
- - require:
- - pkg: firewalld # make sure package is installed
- - watch_in:
- - service: firewalld # restart service
-
-
- # == Define: firewalld._zone
- #
- # This defines a zone configuration, see firewalld.zone (5) man page.
- #
- {% for k, v in salt['pillar.get']('firewalld:zones', {}).items() %}
- {% set z_name = v.name|default(k) %}
-
- /etc/firewalld/zones/{{ z_name }}.xml:
- file:
- - managed
- - name: /etc/firewalld/zones/{{ z_name }}.xml
- - user: root
- - group: root
- - mode: 644
- - source: salt://firewalld/files/zone.xml
- - template: jinja
- - require:
- - pkg: firewalld # make sure package is installed
- - watch_in:
- - service: firewalld # restart service
- - context:
- name: {{ z_name }}
- zone: {{ v }}
-
- {% endfor %}
-
-
-
- # === Parameters
- #
- # [*target*] can be one of {'ACCEPT', '%%REJECT%%', 'DROP'}.
- # Used to accept, reject or drop every packet that
- # doesn't match any rule (port, service, etc.).
- # Default (when target is not specified) is reject.
- # [*short*] short readable name
- # [*description*] long description of zone
- # [*interfaces*] list of interfaces to bind to a zone
- # [*sources*] list of source addresses or source address
- # ranges ("address/mask") to bind to a zone
- # [*ports*]
- # list of ports to open
- # ports => [{
- # comment => optional, string
- # port => mandatory, string, e.g. '1234'
- # protocol => mandatory, string, e.g. 'tcp' },...]
- # [*services*] list of predefined firewalld services
- # [*icmp_blocks*] list of predefined icmp-types to block
- # [*masquerade*] enable masquerading ?
- # [*forward_ports*]
- # list of ports to forward to other port and/or machine
- # forward_ports => [{
- # comment => optional, string
- # portid => mandatory, string, e.g. '123'
- # protocol => mandatory, string, e.g. 'tcp'
- # to_port => mandatory to specify either to_port or/and to_addr
- # to_addr => mandatory to specify either to_port or/and to_addr },...]
- # [*rich_rules*]
- # list of rich language rules (firewalld.richlanguage(5))
- # You have to specify one (and only one)
- # of {service, port, protocol, icmp_block, masquerade, forward_port}
- # and one (and only one) of {accept, reject, drop}
- # family - 'ipv4' or 'ipv6', optional, see Rule in firewalld.richlanguage(5)
- # source => { optional, see Source in firewalld.richlanguage(5)
- # address => mandatory, string, e.g. '192.168.1.0/24'
- # invert => optional, bool, e.g. true }
- # destination => { optional, see Destination in firewalld.richlanguage(5)
- # address => mandatory, string
- # invert => optional, bool, e.g. true }
- # service - string, see Service in firewalld.richlanguage(5)
- # port => { see Port in firewalld.richlanguage(5)
- # portid => mandatory
- # protocol => mandatory }
- # protocol - string, see Protocol in firewalld.richlanguage(5)
- # icmp_block - string, see ICMP-Block in firewalld.richlanguage(5)
- # masquerade - bool, see Masquerade in firewalld.richlanguage(5)
- # forward_port => { see Forward-Port in firewalld.richlanguage(5)
- # portid => mandatory
- # protocol => mandatory
- # to_port => mandatory to specify either to_port or/and to_addr
- # to_addr => mandatory to specify either to_port or/and to_addr }
- # log => { see Log in firewalld.richlanguage(5)
- # prefix => string, optional
- # level => string, optional
- # limit => string, optional }
- # audit => { see Audit in firewalld.richlanguage(5)
- # limit => string, optional }
- # accept - any value, e.g. true, see Action in firewalld.richlanguage(5)
- # reject => { see Action in firewalld.richlanguage(5)
- # type => string, optional }
- # drop - any value, e.g. true, see Action in firewalld.richlanguage(5)
- #
- # === Examples
- #
- # firewalld::zone { "custom":
- # description => "This is an example zone",
- # services => ["ssh", "dhcpv6-client"],
- # ports => [{
- # comment => "for our dummy service",
- # port => "1234",
- # protocol => "tcp",},],
- # masquerade => true,
- # forward_ports => [{
- # comment => 'forward 123 to other machine',
- # portid => '123',
- # protocol => 'tcp',
- # to_port => '321',
- # to_addr => '1.2.3.4',},],
- # rich_rules => [{
- # family => 'ipv4',
- # source => {
- # address => '192.168.1.0/24',
- # invert => true,},
- # port => {
- # portid => '123-321',
- # protocol => 'udp',},
- # log => {
- # prefix => 'local',
- # level => 'notice',
- # limit => '3/s',},
- # audit => {
- # limit => '2/h',},
- # reject => {
- # type => 'icmp-host-prohibited',},
- # },],}
- #
|