aboutsummaryrefslogtreecommitdiff
path: root/firewall/multiconfig.sh
diff options
context:
space:
mode:
Diffstat (limited to 'firewall/multiconfig.sh')
-rwxr-xr-xfirewall/multiconfig.sh25
1 files changed, 25 insertions, 0 deletions
diff --git a/firewall/multiconfig.sh b/firewall/multiconfig.sh
new file mode 100755
index 0000000..1c9b6ff
--- /dev/null
+++ b/firewall/multiconfig.sh
@@ -0,0 +1,25 @@
+#!/bin/sh
+set -e
+
+mkdir /etc/iptables
+
+configure() {
+ if ! grep -q "$3_SAVE=\"/etc/iptables/$1\""; then
+ echo "Reconfiguring $2 service configuration"
+ sed -i "s#^$3_SAVE=.*\$#$3_SAVE=\"/etc/iptables/$1\"#" "/etc/conf.d/$2"
+ fi
+}
+configure ipv4 iptables IPTABLES
+configure ipv6 ip6tables IP6TABLES
+
+H="$(hostname)"
+
+if inst "firewall/$H.ipv4" /etc/iptables/ipv4; then
+ echo "Reloading IPv4 firewall"
+ service iptables reload
+fi
+
+if inst "firewall/$H.ipv6" /etc/iptables/ipv6; then
+ echo "Reloading IPv6 firewall"
+ service ip6tables reload
+fi