Tags

arm bin_sh blocage blosxom bsd bsdfrance cblog certification chroot cluster dg834 dhcp dns dnsmasq dovecot fail-over fail2ban firefox freebsd ftp git guruplug install ipv6 jail kernel kimsufi lex libre linutop makefile ml150 mohawk netbook netbsd nginx ntp ntp.org openbsd openntpd openrd openwrt pkgng poudriere proxy python reverse rmll route rrdcgi sendmail sieve sl2009 ssd symon update usb var_empty vimperator world xen yacc zfs

Powered by

blOg
maRdown
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