Wikiland

Chrooter

PagePrincipale :: DerniersChangements :: DerniersCommentaires :: ParametresUtilisateur :: Vous êtes ec2-52-91-255-225.compute-1.amazonaws.com
<< Configurer? NewSyndrome ChrootUpdate >>


Chrooter le bot NewSyndrome v1.4



But :

Chrooter le bot Newsyndrome pour une meilleur sécurité du serveur même si le bot n'est pas un élement critique et que sa sécurité est excellent.


Pré-requis/infos :



Principe :

1.) Créez un répertoire dédié (ici : /choot/newsyndrome) et un utilisateur dédié bot appartenant au groupe bot :
$ adduser bot --shell /sbin/nologin
$ mkdir -pv /chroot/newsyndrome

2.) Compiler NewSyndrome dans un répertoire a part (par exemple : /home/bot/newsyndrome).

3.) Créez les répertoires nécessaires :
$ install -dv /chroot/newsyndrome/bin/
$ install -dv /chroot/newsyndrome/conf/bases
$ install -dv /chroot/newsyndrome/dev/
$ install -dv /chroot/newsyndrome/etc/
$ install -dv /chroot/newsyndrome/lib/
$ install -dv /chroot/newsyndrome/modules/
$ install -dv /chroot/newsyndrome/proc/
$ install -dv /chroot/newsyndrome/tmp/
$ install -dv /chroot/newsyndrome/var/log/
$ mknod -m 666 /chroot/newsyndrome/dev/null c 1 3

4.) Copiez le binaire et les modules de NewSyndrome, ils se trouvent respectivement dans le sous-repertoire bin et le sous répertoire modules du répertoire dédié (/home/bot/newsyndrome).
$ cp /home/bot/newsyndrome/NewSyndrome /chroot/newsyndrome/bin
$ cp -a modules/* /chroot/newsyndrome/modules
$ cp /home/bot/newsyndrome/tdbrowser /chroot/newsyndrome/bin

5.) Copiez les quelqes binaires externes :
$ cp /bin/{sh,cat,uname} /chroot/newsyndrome/bin
$ cp /usr/bin/uptime /chroot/newsyndrome/bin

6.) Copiez les librairies nécessaires :
$ cp /lib/{libtermcap.so.2,libdl.so.2,libc.so.6,ld-linux.so.2} /chroot/newsyndrome/lib

Je sais que sur certaines distributions (des vieilles mdk essentiellement) si on copie uniquement ces libs tous les modules avec des sockets ne fonctionneront pas. Une solution possible est de copier toutes les libs du système dans le repertoire /chroot/newsyndrome/lib, de faire tourner le bot pendant une semaine puis de regarder les derniers accès au libs (à l'aide de find). Celle n'ayant pas été accédée pendant la semaine peuvent être supprimées.

7.) Quelques scripts, liens à ajouter :
$ touch /chroot/newsyndrome/var/log/NewSyndrome.log
$ ln -s /chroot/newsyndrome/var/log/NewSyndrome.log /chroot/newsyndrome/NewSyndrome.log

Copiez et configurer selon vos besoin le fichier de configuration (NewSyndrome.conf dans le repertoire /chroot/newsyndrome/conf ) :
$ cp NewSyndrome.conf /chroot/newsyndrome/conf/
Il faut modifier le paramètre log_path pour le faire pointer vers /var/log/. Tous les logs de conversation sur les channels et en pv seront dans ce repertoire.


Si vous chooter un bot déjà en fonctionnement il vous foudra copier les bases admins et channels dans le repertoire /chroot/newsyndrome/conf/bases et recréez le fichier ns.lock :
$ cp bases/{admins,channels} /chroot/newsyndrome/conf/bases/
$ touch /chroot/newsyndrome/conf/ns.lock

Créez le script de lancement du bot (nous prenons l'option de ne pas modifier les variables d'environnement) :
$ cat > /chroot/newsyndrome/lance.sh << "EOF"
mount -vt proc proc /chroot/newsyndrome/proc
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/lib
chroot /chroot/newsyndrome/ /bin/NewSyndrome --conf /conf/NewSyndrome.conf -d
EOF
$ chmod u+x /chroot/newsyndrome/lance.sh

Changez le propriétaire et le groupe de tous les fichiers :
$ chown -R bot.bot *

"Setuidez" le binaire :
$ chow u+s /chroot/newsyndrome/bin/NewSyndrome

Lancez le bot :
$ ./lance.sh

8.) Voilà c'est fini vous pouvez verifier que votre bot tourne bien sous l'utilisateur bot avec la commande :
$ ps -edf | grep bot qui devrait vous affichez une ligne proche de celle-ci : /bin/NewSyndrome --conf /conf/NewSyndrome.conf -d


Aide/Contacts :

N'hésitez pas à me contacter en cas de problèmes, questions, critiques, etc ...



<< Configurer? NewSyndrome ChrootUpdate >>

Il n'y a pas de commentaire sur cette page. [Afficher commentaires/formulaire]