Modifications entre les versions 1 et 8 (s'étendant sur 7 versions)
Version 1 à la date du 2006-10-05 18:46:59
Taille: 3155
Commentaire: copie de l'ancien wiki
Version 8 à la date du 2008-06-14 14:31:15
Taille: 3116
Commentaire:
Texte supprimé. Texte ajouté.
Ligne 1: Ligne 1:
== Comment protéger bind9 sous Sarge == ## page was renamed from sécuriser Bind
== Comment protéger bind9 sous Debian ==
Ligne 3: Ligne 4:
La version de bind9 disponible sous DebianSarge est maintenant automatiquement lancée sous l'utilisateur bind par défaut, mais toujours pas en chroot, ce qui serait pourtant une bonne idée du point de vue sécurité. Depuis [[Debian]] "Sarge", bind9 est automatiquement lancée sous l'utilisateur `bind` par défaut, mais toujours pas en `chroot`, ce qui serait pourtant une bonne idée du point de vue sécurité.
Ligne 5: Ligne 6:
{{{# stopper l'exécution de bind pendant son emprisonnement {{{
# stopper l'exécution de bind pendant son emprisonnement
Ligne 9: Ligne 11:
mkdir -p /srv/chroot/bind
cd /srv/chroot/bind
mkdir -p /var/chroot/bind
cd /var/chroot/bind
Ligne 19: Ligne 21:
ln -s /srv/chroot/bind/etc/bind /etc/ ln -s /var/chroot/bind/etc/bind /etc/
Ligne 25: Ligne 27:
ln -s /srv/chroot/bind/var/cache/bind /var/cache/ ln -s /var/chroot/bind/var/cache/bind /var/cache/
Ligne 29: Ligne 31:
ln -s /srv/chroot/bind/var/run/bind /var/run/
Ligne 32: Ligne 33:
ln -s /var/chroot/bind/var/run/bind /var/run/
Ligne 34: Ligne 36:
usermod -d /srv/chroot/bind bind usermod -d /var/chroot/bind bind
Ligne 40: Ligne 42:
[ -r /etc/init.d/sysklogd ] && sed -i '/^SYSLOGD=/s#"\(.*\)"#"\1 -a /srv/chroot/bind/dev/log"#' /etc/init.d/sysklogd && /etc/init.d/sysklogd restart [ -r /etc/init.d/sysklogd ] && sed -i '/^SYSLOGD=/s#"\(.*\)"#"\1 -a /var/chroot/bind/dev/log"#' /etc/default/sysklogd && /etc/init.d/sysklogd restart
Ligne 43: Ligne 45:
[ -r /etc/syslog-ng/syslog-ng.conf ] && sed -i '/unix-stream("\/dev\/log");/a\\t# bind9 chroot\n\tunix-stream("/srv/chroot/bind/dev/log");' /etc/syslog-ng/syslog-ng.conf && /etc/init.d/syslog-ng restart [ -r /etc/syslog-ng/syslog-ng.conf ] && sed -i '/unix-stream("\/dev\/log");/a\\t# bind9 chroot\n\tunix-stream("/var/chroot/bind/dev/log");' /etc/syslog-ng/syslog-ng.conf && /etc/init.d/syslog-ng restart
Ligne 48: Ligne 50:

''Note : il n'y a actuellement pas de moyen plus propre pour '''sysklogd''' ([http://bugs.debian.org/241350 BogueDebian:241350 (interwiki))]''
Ligne 59: Ligne 59:
17938 ? Ss 0:00 /usr/sbin/named -u bind -t /srv/chroot/bind
17939 ? S 0:00 /usr/sbin/named -u bind -t /srv/chroot/bind
17941 ? S 0:00 /usr/sbin/named -u bind -t /srv/chroot/bind
17942 ? S 0:00 /usr/sbin/named -u bind -t /srv/chroot/bind
17943 ? S 0:00 /usr/sbin/named -u bind -t /srv/chroot/bind
17938 ? Ss 0:00 /usr/sbin/named -u bind -t /var/chroot/bind
17939 ? S 0:00 /usr/sbin/named -u bind -t /var/chroot/bind
17941 ? S 0:00 /usr/sbin/named -u bind -t /var/chroot/bind
17942 ? S 0:00 /usr/sbin/named -u bind -t /var/chroot/bind
17943 ? S 0:00 /usr/sbin/named -u bind -t /var/chroot/bind
Ligne 66: Ligne 66:
Et on peut aussi vérifier que le repertoire racine du processus '''named''' est bien devenu '''/srv/chroot/bind''' : Et on peut aussi vérifier que le repertoire racine du processus '''named''' est bien devenu '''/var/chroot/bind''' :
Ligne 70: Ligne 70:
lrwxrwxrwx 1 root root 0 Jul 13 14:05 /proc/17938/root -> /srv/chroot/bind lrwxrwxrwx 1 root root 0 Jul 13 14:05 /proc/17938/root -> /var/chroot/bind
Ligne 75: Ligne 75:
Une bonne doc sur les autres aspects largement aussi importants (allow-transfer, allow-query) : [http://www.security-labs.org/full-page.php3?page=411 Sécuriser un serveur de nom] (a copier-coller et adapter ici si besoin). Une bonne doc sur les autres aspects largement aussi importants (allow-transfer, allow-query) : [[http://www.security-labs.org/full-page.php3?page=411|Sécuriser un serveur de nom]] (a copier-coller et adapter ici si besoin).
----
CatégorieSécurité
CatégorieManuel
CatégorieDNS
CatégorieLogiciel

Comment protéger bind9 sous Debian

Depuis Debian "Sarge", bind9 est automatiquement lancée sous l'utilisateur bind par défaut, mais toujours pas en chroot, ce qui serait pourtant une bonne idée du point de vue sécurité.

# stopper l'exécution de bind pendant son emprisonnement
/etc/init.d/bind9 stop

# créer la prison pour bind
mkdir -p /var/chroot/bind
cd /var/chroot/bind
mkdir -p dev etc var/cache var/run
cp -a /dev/log /dev/null /dev/random dev/
cp -p /etc/localtime etc/

# la configuration
mv /etc/bind etc/
chown -R root:bind etc/bind
chmod -R u=rwX,g=rX,o= etc/bind
ln -s /var/chroot/bind/etc/bind /etc/

# le cache
mv /var/cache/bind var/cache/
chown -R bind:bind var/cache/bind
chmod -R u=rwX,g=rX,o= var/cache/bind
ln -s /var/chroot/bind/var/cache/bind /var/cache/

# le pid
mv /var/run/bind var/run/
chown -R bind:bind var/run/bind/run
chmod -R u=rwX,g=rX,o= var/run/bind/run
ln -s /var/chroot/bind/var/run/bind /var/run/

# changer le répertoire personnel de bind vers sa future prison
usermod -d /var/chroot/bind bind

# modifier les options de demarrage de bind
sed -i '/^OPTIONS=/c OPTIONS="-u bind -t /srv/chroot/bind"' /etc/default/bind9

# configurer sysklogd pour accepter les messages de logs depuis le bind emprisoné
[ -r /etc/init.d/sysklogd ] && sed -i '/^SYSLOGD=/s#"\(.*\)"#"\1 -a /var/chroot/bind/dev/log"#' /etc/default/sysklogd && /etc/init.d/sysklogd restart

# configurer syslog-ng pour accepter les messages de logs depuis le bind emprisoné
[ -r /etc/syslog-ng/syslog-ng.conf ] && sed -i '/unix-stream("\/dev\/log");/a\\t# bind9 chroot\n\tunix-stream("/var/chroot/bind/dev/log");' /etc/syslog-ng/syslog-ng.conf && /etc/init.d/syslog-ng restart

# enfin, redemarrer bind dans sa prison !
/etc/init.d/bind9 start

Vérifier que tout va bien

En surveillant le contenu du fichier /var/log/daemon.log qui ne doit pas contenir d'erreur ou de warning suite aux redemarrage des deux services.

En faisant un ps ax | grep named, le résultat doit ressembler à cela :

# ps ax | grep named
17938 ?        Ss     0:00 /usr/sbin/named -u bind -t /var/chroot/bind
17939 ?        S      0:00 /usr/sbin/named -u bind -t /var/chroot/bind
17941 ?        S      0:00 /usr/sbin/named -u bind -t /var/chroot/bind
17942 ?        S      0:00 /usr/sbin/named -u bind -t /var/chroot/bind
17943 ?        S      0:00 /usr/sbin/named -u bind -t /var/chroot/bind

Et on peut aussi vérifier que le repertoire racine du processus named est bien devenu /var/chroot/bind :

# ls -l /proc/17938/root
lrwxrwxrwx    1 root     root            0 Jul 13 14:05 /proc/17938/root -> /var/chroot/bind

Lien

Une bonne doc sur les autres aspects largement aussi importants (allow-transfer, allow-query) : Sécuriser un serveur de nom (a copier-coller et adapter ici si besoin).


CatégorieSécurité CatégorieManuel CatégorieDNS CatégorieLogiciel

BindChroot (dernière édition le 2012-02-20 18:25:00 par MoussaNombre)