3278
Commentaire: ad Catégorie
|
3115
mise à jour pour Etch (quasiment rien ne change)
|
Texte supprimé. | Texte ajouté. |
Ligne 4: | 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 6: | Ligne 6: |
{{{# stopper l'exécution de bind pendant son emprisonnement | {{{ # stopper l'exécution de bind pendant son emprisonnement |
Ligne 10: | Ligne 11: |
mkdir -p /srv/chroot/bind cd /srv/chroot/bind |
mkdir -p /var/chroot/bind cd /var/chroot/bind |
Ligne 20: | Ligne 21: |
ln -s /srv/chroot/bind/etc/bind /etc/ | ln -s /var/chroot/bind/etc/bind /etc/ |
Ligne 26: | Ligne 27: |
ln -s /srv/chroot/bind/var/cache/bind /var/cache/ | ln -s /var/chroot/bind/var/cache/bind /var/cache/ |
Ligne 30: | Ligne 31: |
ln -s /srv/chroot/bind/var/run/bind /var/run/ | |
Ligne 33: | Ligne 33: |
ln -s /var/chroot/bind/var/run/bind /var/run/ | |
Ligne 35: | Ligne 36: |
usermod -d /srv/chroot/bind bind | usermod -d /var/chroot/bind bind |
Ligne 41: | 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 44: | 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 49: | Ligne 50: |
''Note : il n'y a actuellement pas de moyen plus propre pour '''sysklogd''' ([http://bugs.debian.org/241350 BogueDebian:241350 (interwiki))]'' |
|
Ligne 60: | 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 67: | 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 71: | 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 76: | 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). |
Comment protéger bind9 sous Sarge
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