summaryrefslogtreecommitdiffstats
path: root/roles/common/files/etc/network
diff options
context:
space:
mode:
Diffstat (limited to 'roles/common/files/etc/network')
-rwxr-xr-xroles/common/files/etc/network/if-post-down.d/iptables15
-rwxr-xr-xroles/common/files/etc/network/if-pre-up.d/iptables15
-rwxr-xr-xroles/common/files/etc/network/if-up.d/ipsec15
3 files changed, 36 insertions, 9 deletions
diff --git a/roles/common/files/etc/network/if-post-down.d/iptables b/roles/common/files/etc/network/if-post-down.d/iptables
index 944ff3a..d27977d 100755
--- a/roles/common/files/etc/network/if-post-down.d/iptables
+++ b/roles/common/files/etc/network/if-post-down.d/iptables
@@ -1,27 +1,36 @@
#!/bin/sh
-#
+
# A post-down hook to flush ip tables and delete custom chains in the
# loaded v4 and v6 rulesets.
+# Copyright © 2013 Guilhem Moulin <guilhem@fripost.org>
#
-# Copyright 2013 Guilhem Moulin <guilhem@fripost.org>
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
-# Licensed under the GNU GPL version 3 or higher.
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
set -ue
PATH=/usr/sbin:/usr/bin:/sbin:/bin
# Ignore the loopback interface; run the script for ifdown only.
[ "$IFACE" != lo -a "$MODE" = stop ] || exit 0
case "$ADDRFAM" in
inet) ipts=/sbin/iptables-save; ipt=/sbin/iptables;;
inet6) ipts=/sbin/ip6tables-save; ipt=/sbin/ip6tables;;
*) exit 0
esac
$ipts | sed -nr 's/^\*//p' | \
while read table; do
$ipt -t "$table" -F
$ipt -t "$table" -X
done
diff --git a/roles/common/files/etc/network/if-pre-up.d/iptables b/roles/common/files/etc/network/if-pre-up.d/iptables
index 644211f..2b83cdc 100755
--- a/roles/common/files/etc/network/if-pre-up.d/iptables
+++ b/roles/common/files/etc/network/if-pre-up.d/iptables
@@ -1,30 +1,39 @@
#!/bin/bash
-#
+
# A pre-up hook to auto-(re)load the iptables rulesets whenever the
# network is brought up. If the action fails, an alert message is passed
# to syslogd.
+# Copyright © 2013 Guilhem Moulin <guilhem@fripost.org>
#
-# Copyright 2013 Guilhem Moulin <guilhem@fripost.org>
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
-# Licensed under the GNU GPL version 3 or higher.
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
set -uo pipefail
PATH=/usr/sbin:/usr/bin:/sbin:/bin
# NOTE: syslog starts after networking during the boot process, messages
# won't be logged at boot time.
log="/usr/bin/logger -st firewall"
# Ignore the loopback interface; run the script for ifup only.
[ "$IFACE" != lo -a "$MODE" = start ] || exit 0
# We support only IPv4 and IPv6.
[ "$ADDRFAM" = inet -o "$ADDRFAM" = inet6 ] || exit 0
$log -p user.info -- "Loading $ADDRFAM firewall on interface $IFACE."
case "$ADDRFAM" in
inet) iptr=/sbin/iptables-restore; rules=rules.v4;;
inet6)iptr=/sbin/ip6tables-restore; rules=rules.v6;;
esac
diff --git a/roles/common/files/etc/network/if-up.d/ipsec b/roles/common/files/etc/network/if-up.d/ipsec
index db9f979..4a84112 100755
--- a/roles/common/files/etc/network/if-up.d/ipsec
+++ b/roles/common/files/etc/network/if-up.d/ipsec
@@ -1,29 +1,38 @@
#!/bin/sh
-#
+
# A post-up/down hook to automatically create/delete a 'sec' VLAN
# device, and a dedicated, host-scoped, IP for IPSec (v4 only).
+# Copyright © 2013 Guilhem Moulin <guilhem@fripost.org>
#
-# Copyright 2013 Guilhem Moulin <guilhem@fripost.org>
+# This program is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
#
-# Licensed under the GNU GPL version 3 or higher.
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
set -ue
PATH=/usr/sbin:/usr/bin:/sbin:/bin
ifsec=sec0
ipsec=172.16.0.1/32
# /!\ This mark much match that in /usr/local/sbin/update-firewall.sh.
secmark=0xA99
# Ignore the loopback interface and non inet4 families.
[ "$IFACE" != lo -a "$ADDRFAM" = inet ] || exit 0
# Only the device with the default, globally-scoped route, is of
# interest here.
[ "$( /bin/ip -4 route show to default scope global \
| sed -nr '/^default via \S+ dev (\S+).*/ {s//\1/p;q}' )" \
= \
"$IFACE" ] || exit 0