Niveau :
Résumé : debootstrap
Aujourd'hui post un peu en avance, mais c'est pour des amis.
Mysql chrooté
Comment faire un mysql ou autre chrooté à la sauce debian ?
On prépare un peu de place (300M pour travailler c'est suffisant), au hasard dans /srv comme nous le recommande la FHS.
Et c'est parti :
$ cd /srv $ mkdir -p chroots/chroot0 $ cd chroots $ debootstrap etch chroot0
Nous avons maintenant un chroot de référence qui peut être utilisé pour plusieurs chroots si on le désire. Maintenant installons notre apache chrooté :
$ cp -a /srv/chroots/chroot0 /srv/chroots/mysql $ chroot /srv/chroots/mysql $ apt-get install mysql-server $ exit
Notez que toutes les configurations seront à modifier dans /srv/chroots/mysql/etc. Et pour relancer mysql :
$ chroot /srv/chroots/mysql /etc/init.d/mysql stop
Pour mettre à jour :
$ chroot /srv/chroots/mysql apt-get update $ chroot /srv/chroots/mysql apt-get upgrade
Selon les processus que vous voudrez lancer dans le chroot vous pourrez aussi avoir besoin de certains systèmes de fichiers spéciaux (peu probable pour un simple démon) :
$ mount --bind /dev /srv/chroots/mysql/dev $ mount -t proc proc /srv/chroots/mysql/proc $ mount -t sysfs sys /srv/chroots/mysql/sys
Remarquez que pour bind, debian permet de le lancer dans un chroot avec une simple option.
Notez que cette opération n'est pas nécessaire pour apache et bind qui disposent déjà des options nécessaire pour le faire d'eux même (pas dans tous les cas pour apache).
Un peu plus loin
On peut aussi vouloir réduire un peu le chroot, pour rendre plus difficile la tâche d'un éventuel pirate, mais n'oubliez pas que ce n'est pas une protection en soi.
# on a déjà une petite ditrib $ chroot chroot0 $ du -hs / > 180M $ dpkg -l | wc > 129
Et comme on a un peu de temps devant nous, on va supprimer quelques paquets :
# on se prépare $ apt-get install deborphan # les paquets d'installation $ apt-get remove --purge tasksel tasksel-data # la gestion du réseau (faite sur l'hôte) $ apt-get remove --purge traceroute openbsd-inetd netcat iptables iputils-ping dhcp3-client dhcp3-common update-inetd ifupdown net-tools tcpd # la doc et les éditeurs $ apt-get remove --purge vim-common vim-tiny nano manpages man-db info groff-base # noyau et matériel $ apt-get remove --purge laptop-detect module-init-tools dmidecode procps # divers $ apt-get remove --purge cron logrotate cpio # et fin $ apt-get remove --purge `deborphan` $ apt-get remove --purge deborphan dialog gettext-base $ apt-get clean $ exit
Après, selon ce que vous voulez installer, vous pouvez aussi vous amuser à supprimer des paquets bien plus indispensables pour un système complet, mais pas pour un chroot, comme login ou passwd, mais attention, on cherche à ce que apt puisse continuer à tourner.
Et selon les besoins vous pouvez avoir à récupérer des fichiers dans votre /etc comme /etc/hosts ou /etc/resolv.conf.
À ce sujet, voir aussi un article plus ancien.
Comments