Tags

freebsd install jail kimsufi symon var_empty

Powered by

blOg
maRkdown
awK
shEll

24/06/2008

[ jail symon var_empty ]

200806240800 jail symon var_empty

Jail et symon

Ou comment ne pas casser son ssh.

J'ai décidé d'utiliser symon pour monitorer mon kimsufi. Le principe: sur l'hôte faire tourner la partie cliente (symon) qui envoie les données vers le collecteur (symux) dans une jail.

Je commence donc par installer symon dans la jail:

jail$ sudo pkg_add -r symon

Les rrdtools font partie du voyage et c'est tant mieux. Le package a créé un utilisateur _symon aux droits limités. Afin de garder un hôte le plus minimaliste possible, je copie uniquement la partie symon :

kimsufi# cp /zfs/jail/www/usr/local/bin/symon /usr/local/bin
kimsufi# cp /zfs/jail/www/usr/local/etc/rc.d/symon /usr/local/etc/rc.d/
kimsufi# cp /zfs/jail/www/usr/local/share/examples/symon/symon.conf /usr/local/etc/

Il ne me reste plus qu'à ajouter mon utilisateur _symon :

kimsufi# grep _symon /zfs/jail/www/etc/passwd
_symon:*:115:1:Symon Account:/var/empty:/usr/sbin/nologin
kimsufi# adduser

Et là c'est le drame. La grosse feign que je suis va ajouter un utilisateur dont le $HOME correspond à /var/empty. Pour bien comprendre le problème, je décide tout à coup de bien pourrir mon terminal avec un zcat /var/log/pflo.0.bz2. Une déconnexion plus tard et quelques reset, je me reconnecte au kimsufi:

maison# ssh kimsufi
ssh_exchange_identification: Connection closed by remote host
maison#

Sueurs froides, panique. Plus d'accès au kimsufi. Ké passa ? Un coup de netboot (FreeBSD 6.2: heureusement que mon / n'est pas en ZFS :), montage de la racine et direction les logs:

netboot# tail /mnt/var/log/auth.log
sshd[96744]: fatal: /var/empty must be owned by root and not group or world-writable

Et ben voila ! chmod 555 /var/empty, reboot sur hd et c'est reparti ! Conclusion: à trop vouloir faire le malin, on oublie les commandes essentielles:

jail$ pkg_info -i symon-2.75
Information for symon-2.75:

Install script:
#!/bin/sh

PATH=/bin:/usr/sbin

USER=_symon
GROUP=daemon
UID=115

case $2 in
  PRE-INSTALL)
  if pw user show "${USER}" 2>/dev/null; then
    echo "You already have a user \"${USER}\", so I will use it."
  else
    if pw useradd ${USER} -u ${UID} -g ${GROUP} -h - \
      -s /usr/sbin/nologin -L daemon -d /var/empty -c "Symon Account"
    then
      echo "Added user \"${USER}\"."
    else
      echo "Adding user \"${USER}\" failed..."
      exit 1
    fi
  fi
  ;;
esac

A venir: je ne veux pas installer syweb (pas de php dans cette jail) pour afficher mes jolis graphes. rrcgi n'est pas encore mon ami mais je ne désespère pas :)


Lien vers ce billet