|
|
@ -0,0 +1,126 @@ |
|
|
|
#!/bin/sh |
|
|
|
############################################################################## |
|
|
|
# |
|
|
|
# This program is free software; you can redistribute it and/or modify |
|
|
|
# it under the terms of the GNU General Public License version 2 as |
|
|
|
# published by the Free Software Foundation. |
|
|
|
# |
|
|
|
# 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. |
|
|
|
# |
|
|
|
# Copyright (C) 2016 Eric Luehrsen |
|
|
|
# |
|
|
|
############################################################################## |
|
|
|
# |
|
|
|
# TODO: This file will build the UCI for Unbound. This iteration only puts |
|
|
|
# our default unbound configuration and root.key into /var/lib/unbound. |
|
|
|
# |
|
|
|
############################################################################## |
|
|
|
|
|
|
|
# TODO: Just default definitions versus real UCI coming soon. |
|
|
|
UNBOUND_B_MAN_CONF=1 |
|
|
|
UNBOUND_B_DNSSEC=1 |
|
|
|
UNBOUND_N_ROOT_AGE=7 |
|
|
|
|
|
|
|
############################################################################## |
|
|
|
|
|
|
|
UNBOUND_ANCHOR=/usr/bin/unbound-anchor |
|
|
|
UNBOUND_CONTROL=/usr/bin/unbound-control |
|
|
|
|
|
|
|
UNBOUND_LIBDIR=/usr/lib/unbound |
|
|
|
|
|
|
|
UNBOUND_PIDFILE=/var/run/unbound.pid |
|
|
|
|
|
|
|
UNBOUND_VARDIR=/var/lib/unbound |
|
|
|
UNBOUND_CONFFILE=$UNBOUND_VARDIR/unbound.conf |
|
|
|
UNBOUND_KEYFILE=$UNBOUND_VARDIR/root.key |
|
|
|
UNBOUND_HINTFILE=$UNBOUND_VARDIR/root.hints |
|
|
|
UNBOUND_CHECKFILE=$UNBOUND_VARDIR/unbound.check |
|
|
|
|
|
|
|
############################################################################## |
|
|
|
|
|
|
|
. /lib/functions.sh |
|
|
|
. /lib/functions/network.sh |
|
|
|
|
|
|
|
. $UNBOUND_LIBDIR/rootzone.sh |
|
|
|
|
|
|
|
############################################################################## |
|
|
|
|
|
|
|
unbound_mkdir() { |
|
|
|
mkdir -p $UNBOUND_VARDIR |
|
|
|
|
|
|
|
|
|
|
|
if [ -f /etc/unbound/root.hints ] ; then |
|
|
|
# Your own local copy of root.hints |
|
|
|
cp -p /etc/unbound/root.hints $UNBOUND_HINTFILE |
|
|
|
|
|
|
|
elif [ -f /usr/share/dns/root.hints ] ; then |
|
|
|
# Debian-like package dns-root-data |
|
|
|
cp -p /usr/share/dns/root.hints $UNBOUND_HINTFILE |
|
|
|
|
|
|
|
else |
|
|
|
logger -t unbound -s "iterator will use built-in root hints" |
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
if [ -f /etc/unbound/root.key ] ; then |
|
|
|
# Your own local copy of a root.key |
|
|
|
cp -p /etc/unbound/root.key $UNBOUND_KEYFILE |
|
|
|
|
|
|
|
elif [ -f /usr/share/dns/root.key ] ; then |
|
|
|
# Debian-like package dns-root-data |
|
|
|
cp -p /usr/share/dns/root.key $UNBOUND_KEYFILE |
|
|
|
|
|
|
|
elif [ -x "$UNBOUND_ANCHOR" ] ; then |
|
|
|
$UNBOUND_ANCHOR -a $UNBOUND_KEYFILE |
|
|
|
|
|
|
|
else |
|
|
|
logger -t unbound -s "validator will use built-in trust anchor" |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
############################################################################## |
|
|
|
|
|
|
|
unbound_conf() { |
|
|
|
# TODO: Just structure to real UCI coming soon. |
|
|
|
if [ "$UNBOUND_B_MAN_CONF" -gt 0 -a -f /etc/unbound/unbound.conf ] ; then |
|
|
|
# You don't want UCI and use your own manual configuration |
|
|
|
cp -p /etc/unbound/unbound.conf $UNBOUND_CONFFILE |
|
|
|
fi |
|
|
|
} |
|
|
|
|
|
|
|
############################################################################## |
|
|
|
|
|
|
|
unbound_own() { |
|
|
|
# Debug UCI |
|
|
|
{ |
|
|
|
echo "# $UNBOUND_CHECKFILE generated by UCI $( date )" |
|
|
|
echo |
|
|
|
set | grep ^UNBOUND_ |
|
|
|
} > $UNBOUND_CHECKFILE |
|
|
|
|
|
|
|
|
|
|
|
if [ ! -f "$UNBOUND_CONFFILE" ] ; then |
|
|
|
# if somehow this happened |
|
|
|
touch $UNBOUND_CONFFILE |
|
|
|
fi |
|
|
|
|
|
|
|
|
|
|
|
# Ensure Access |
|
|
|
chown -R unbound:unbound $UNBOUND_VARDIR |
|
|
|
chmod 775 $UNBOUND_VARDIR |
|
|
|
chmod 664 $UNBOUND_VARDIR/* |
|
|
|
} |
|
|
|
|
|
|
|
############################################################################## |
|
|
|
|
|
|
|
unbound_prepare() { |
|
|
|
unbound_mkdir |
|
|
|
unbound_conf |
|
|
|
unbound_own |
|
|
|
} |
|
|
|
|
|
|
|
############################################################################## |
|
|
|
|