|
@@ -0,0 +1,47 @@
|
|
|
+#!/bin/sh /etc/rc.common
|
|
|
+# Copyright (C) 2018 Mikael Magnusson
|
|
|
+
|
|
|
+START=15
|
|
|
+
|
|
|
+log_output() {
|
|
|
+ logger -t container_init "$@"
|
|
|
+}
|
|
|
+
|
|
|
+boot() {
|
|
|
+ # Only execute for lxc containers
|
|
|
+ if [ "$container" != "lxc" ]; then
|
|
|
+ exit 0
|
|
|
+ fi
|
|
|
+
|
|
|
+ local disable_ipv6="$(uci_get firewall @defaults[0] disable_ipv6 false)"
|
|
|
+ case "$disable_ipv6" in
|
|
|
+ '0'|'no'|'off'|'false'|'disabled') disable_ipv6=false ;;
|
|
|
+ '1'|'yes'|'on'|'true'|'enabled') disable_ipv6=true ;;
|
|
|
+ esac
|
|
|
+
|
|
|
+ tables='filter nat mangle raw'
|
|
|
+ res=0
|
|
|
+ for table in $tables; do
|
|
|
+ iptables -n -t $table -L >/dev/null 2>/dev/null
|
|
|
+ if ! grep $table /proc/net/ip_tables_names >/dev/null; then
|
|
|
+ log_output -p daemon.crit "ip $table load failed"
|
|
|
+ res=1
|
|
|
+ fi
|
|
|
+
|
|
|
+ if [ "$disable_ipv6" = "false" ]; then
|
|
|
+ ip6tables -n -t $table -L >/dev/null 2>/dev/null
|
|
|
+ if ! grep $table /proc/net/ip6_tables_names >/dev/null; then
|
|
|
+ log_output -p daemon.crit "ip6 $table load failed"
|
|
|
+ res=1
|
|
|
+ fi
|
|
|
+ fi
|
|
|
+ done
|
|
|
+ if [ "$res" == "0" ]; then
|
|
|
+ if [ "$disable_ipv6" = "false" ]; then
|
|
|
+ log_output -p daemon.info "ip and ip6 tables loaded successfully"
|
|
|
+ else
|
|
|
+ log_output -p daemon.info "ip tables loaded successfully"
|
|
|
+ fi
|
|
|
+ fi
|
|
|
+ exit $res
|
|
|
+}
|