#!/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 } ##############################################################################