]> git.llucax.com Git - software/pymin.git/blob - pymin/services/firewall/templates/iptables.sh
Merge ../pymin
[software/pymin.git] / pymin / services / firewall / templates / iptables.sh
1 #!/bin/sh
2
3 <%!
4
5 # TODO escape shell commands more securely
6 def s(text):
7     return repr(text.encode('utf-8'))
8
9 def optional(switch, value):
10     if value is not None:
11         return '%s %s' % (switch, s(value))
12     return ''
13
14 %>
15
16 % for (index, rule) in enumerate(rules):
17 /sbin/iptables -t filter \
18     -I ${rule.chain|s} ${index+1|s} \
19     -j ${rule.target|s} \
20     ${optional('-s', rule.src)} \
21     ${optional('-d', rule.dst)} \
22     ${optional('-p', rule.protocol)} \
23     ${optional('-m', rule.protocol)} \
24     ${optional('--sport', rule.src_port)} \
25     ${optional('--dport', rule.dst_port)}
26
27 %endfor
28
29 <%doc> vim: set filetype=python sw=4 sts=4 et : </%doc>