bind9 in ein Chroot auslagern!

Hallo! Habe hier mal ein Script erstellt welches es vereinfachen soll bind9 in ein Chroot auszulagern!
Das Script wurde anhand folgender Quelle erstellt: Bind 9 in Chroot
Ich habe es erstmal nur für Debian Wheezy eingerichtet. Für Jessie sind noch ein paar andere Dinge notwendig. Also Bitte nur unter Debian Wheezy anwenden!


#!/bin/bash

##### Bind9 ins Chroot auslagern #####
##### Für Debian Wheezy nicht für Jessie!!! #####

service bind9 stop

sed -i 's/OPTIONS="-u bind"/#OPTIONS="-u bind"/' /etc/default/bind9
if ! [ $? = 0 ] ; then
        exit 1
fi

sed -i 's!PIDFILE=/var/run/named/named.pid!''PIDFILE=/var/bind9/chroot/var/run/named/named.pid!' /etc/init.d/bind9
if ! [ $? = 0 ] ; then
        exit 1
fi
sed -i 's!#OPTIONS="-u bind"!''OPTIONS="-u bind -t /var/bind9/chroot"!' /etc/init.d/bind9
if ! [ $? = 0 ] ; then
        exit 1
fi

mkdir -p -v /var/bind9/chroot/{etc,dev,var/cache/bind,var/run/named,var/log/bind}
if ! [ $? = 0 ] ; then
        exit 1
fi

if ! [ -c /var/bind9/chroot/dev/null ] ; then
        mknod /var/bind9/chroot/dev/null c 1 3
        if ! [ $? = 0 ] ; then
        exit 1
        fi
fi
if ! [ -c /var/bind9/chroot/dev/random ] ; then
        mknod /var/bind9/chroot/dev/random c 1 8
        if ! [ $? = 0 ] ; then
        exit 1
        fi
fi

chmod 660 /var/bind9/chroot/dev/{null,random}
if ! [ $? = 0 ] ; then
        exit 1
fi

if ! [ -d /var/bind9/chroot/etc/bind ] ; then
        if [ -d /etc/bind ] ; then
                mv /etc/bind /var/bind9/chroot/etc
                echo "Bind9 Ordner ins Chroot kopiert!!!"
                if ! [ $? = 0 ] ; then
                        exit 1
                fi
        else echo "/etc/bind nicht vorhanden!!!"
        exit 1
        fi
fi

if ! [ -L /etc/bind ] ; then
        ln -s /var/bind9/chroot/etc/bind /etc/bind
        if ! [ $? = 0 ] ; then
        exit 1
        fi
        echo "Link von Chroot zu /etc/bind/ erstellt!!!"
        else echo "Link von Chroot zu /etc/bind/ schon vorhanden!!!"
fi

cp /etc/localtime /var/bind9/chroot/etc/
if ! [ $? = 0 ] ; then
        exit 1
fi

chown -R bind:bind /etc/bind/*
if ! [ $? = 0 ] ; then
        exit 1
fi
chmod 775 /var/bind9/chroot/var/{cache/bind,log/bind,run/named}
if ! [ $? = 0 ] ; then
        exit 1
fi
chgrp bind /var/bind9/chroot/var/{cache/bind,log/bind,run/named}
if ! [ $? = 0 ] ; then
        exit 1
fi

echo "$AddUnixListenSocket /var/bind9/chroot/dev/log" > /etc/rsyslog.d/bind-chroot.conf
if ! [ $? = 0 ] ; then
        exit 1
fi

echo "Bind9 erfolgreich ins Chroot verlagert!!!"

service bind9 start
service bind9 status

exit 0

Grundsätzlich sollte man Scripte, die man nicht selbst erstellt hat, immer zuerst auf einem Testsystem ausprobieren. Es kann vorkommen das die Ordnerpfade in der named.conf oder named.conf.option usw abweichen! Das gilt besonders dem PID File oder der log Dateien!
Das Wurzelverzeichnis für bind9 ist dann „/var/bind9/chroot/“! Der Pfad „/var/bind9/chroot/“ darf in keiner conf Datei als Pfad auftauchen!

Check Also

fail2ban mit IPv6

IPv6 verbreitet sich immer mehr. Leider nehmen auch die BruteFroce Angriffe zu. Wer jetzt fail2ban ...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Enladung zum Webinar
3 Schritte zu 4 stelligen Einnahmen

 

Moderator: Lars Pilawski

Lars Pilawski

 

 

 

 

 

 

 

 

 

Dipl.-Ing. Lars Pilawski ist als
„Der Win-Win-Win-Marketer“
im deutschen Raum bekannt
und zeigt kostenlos, wie man
nur mit Fleiß ohne Kapital
und Risiko automatisiert
Online Geld verdient.

 


Guardar

Guardar