Skip to content

Commit

Permalink
implement direct rules
Browse files Browse the repository at this point in the history
  • Loading branch information
hoonetorg committed Sep 13, 2016
1 parent b91d65d commit 9dc0a77
Show file tree
Hide file tree
Showing 4 changed files with 65 additions and 0 deletions.
28 changes: 28 additions & 0 deletions firewalld/direct.sls
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# == State: firewalld.direct

{% from "firewalld/map.jinja" import firewalld with context %}
# == Define: firewalld.direct
#
# This defines a configuration for permanent direct chains,
# rules and passtthroughs, see firewalld.direct (5) man page.
{%- if firewalld.get('direct', False) %}
/etc/firewalld/direct.xml:
file:
- managed
- name: /etc/firewalld/direct.xml
- user: root
- group: root
- mode: "0644"
- source: salt://firewalld/files/direct.xml
- template: jinja
- require:
- pkg: package_firewalld # make sure package is installed
- file: directory_firewalld
- listen_in:
- module: service_firewalld # restart service
- context:
direct: {{ firewalld.direct|json }}
{%- endif %}
18 changes: 18 additions & 0 deletions firewalld/files/direct.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<direct>
{%- if 'chain' in direct %}
{%- for k, v in direct.chain.items() %}
<chain ipv="{{v.ipv}}" table="{{v.table}}" chain="{{k}}"/>
{%- endfor %}
{%- endif %}
{%- if 'rule' in direct %}
{%- for k, v in direct.rule.items() %}
<rule priority="{{v.priority}}" table="{{v.table}}" ipv="{{v.ipv}}" chain="{{v.chain}}">{{v.args}}</rule>
{%- endfor %}
{%- endif %}
{%- if 'passthrough' in direct %}
{%- for k, v in direct.passthrough.items() %}
<passthrough ipv="{{v.ipv}}">{{v.args}}</passthrough>
{%- endfor %}
{%- endif %}
</direct>
1 change: 1 addition & 0 deletions firewalld/init.sls
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ include:
- firewalld.ipsets
- firewalld.services
- firewalld.zones
- firewalld.direct
# iptables service that comes with rhel/centos
iptables:
Expand Down
18 changes: 18 additions & 0 deletions pillar.example.sls
Original file line number Diff line number Diff line change
Expand Up @@ -89,3 +89,21 @@ firewalld:
- comment: vsftpd
port: 21
protocol: tcp

direct:
chain:
MYCHAIN:
ipv: ipv4
table: raw
rule:
INTERNETACCESS:
ipv: ipv4
table: filter
chain: FORWARD
priority: "0"
args: "-i iintern -o iextern -s 192.168.1.0/24 -m conntrack --ctstate NEW,RELATED,ESTABLISHED -j ACCEPT"
passthrough:
MYPASSTHROUGH:
ipv: ipv4
args: "-t raw -A MYCHAIN -j DROP"

0 comments on commit 9dc0a77

Please sign in to comment.