6. Les autres programmes à mettre à jour

Contenu de cette section

Le paquetage shadow contient la plupart des programmes de remplacement aux programmes accédant aux mots de passe. Mais toutefois, il reste quelques programmes présents en général sur la plupart des systèmes qui nécessitent une mise à jour pour fonctionner correctement.

Si vous utilisez une Distribution Debian (et même si vous n'en utilisez pas), vous pouvez obtenir les sources des programmes que vous avez besoin de recompiler à : <ftp://ftp.debian/org/debian/stable/source/>

La but de cette section concerne la mise à jour des programmes: adduser, wu_ftpd, ftpd, pop3d, xlock xdm et sudo

Reportez vous à la section sec-prog pour vous aider à mettre à jour les programmes qui nécessitent l'accès aux mots de passes (sans que le programme soit SUID root ou SGID shadow).

6.1 le programme Adduser (Slackware)

Les distributions Slackware (et probablement d'autres) contiennent un programme interactif /bin/adduser permettant d'ajouter facilement des utilisateurs. Une version Shadow de ce programme peut être trouvée sur: ftp://sunsite.unc.edu/pub/Linux/ system/Admin/accounts/adduser.shadow-1.4.tar.gz .

Je vous encourage à utiliser les programmes qui sont fournis par le paquetage shadow (useradd, usermod et userdel) à la place de adduser. Ils nécessitent un peu de temps pour savoir s'en servir, mais l'effort est d'autant plus grand que ces programmes effectuent un blocage de fichier sur /etc/passwd et /etc/shadow, ce que ne fait pas adduser

Lisez la section sec-fonction pour de plus amples informations.

L'installation est aisée:

tar -xzvf adduser.shadow-1.4.tar.gz
cd adduser.shadow.1.4
make adduser
chmod 700 adduser
make install

6.2 Le serveur wu_ftpd

La plupart des distributions Linux incluent le serveur wu_ftpd. Si votre distribution n'est pas ``native shadow'', votre serveur wu_ftpd n'est pas compilé pour le support shadow. wu_ftpd est lancé à partir de inetd/tcpd en tant que processus root. Si vous utilisez un ancien démon wu_ftpd, vous devrez de toute façon le mettre à jour car les vieilles versions ont un bug, le compte root pouvait être compromis (pour plus d'informations, consultez la page web: http://bach.cis.temple.edu/linux/linux-security/Linux- Security-FAQ/Linux-wu.ftpd-2.4-Update.html ).

Heureusement, la seule démarche à faire est de récupérer les sources et de les compiler avec l'option shadow.

Le serveur wu_ftpd peut être récupéré sur Sunsite: wu-ftp-2.4-fixed.tar.gz

Une fois l'archive récupérée, placez là dans /usr/src et tapez:

cd /usr/src
tar -xzvf wu-ftpd-2.4-fixed.tar.gz
cd wu-ftpd-2.4-fixed
cp ./src/config/config.lnx.shadow ./src/config/config.lnx
éditer alors le fichier ./src/makefiles/Makefile.lnx et changez la ligne:
LIBES     = -lbsd -support
par
LIBES     = -lbsd -support -lshadow
Maintenant vous êtes près à lancer le script de compilation installer le résultat:
cd /usr/src/wu-ftpd-2.4-fixed
/usr/src/wu-ftpd-2.4-fixed/build lnx
cp /usr/sbin/wu-ftpd /usr/src/wu-ftpd.old
cp ./bin/ftpd /usr/sbin/wu-ftpd

Sur mon système basé sur une Slackware 3.0 j'ai du faire ces modifications avant de lancer build: build:

cd /usr/include/netinet
ln -s in_systm.h in_system.h
cd -

Des problèmes ont été rapportés lors de la compilation de ce paquetage sous des systèmes ELF, mais la béta version de la prochaine publication fonctionne bien. Elle peut être trouvé à: wu-ftp-2.4.2-beta-10.tar.gz <ftp://tscnet.com/pub/linux/network/ftp/wu-ftpd-2.4.2-beta-20.tar.gz>

Une fois que vous avez récupéré le serveur, placez-le dans le répertoire /usr/src/ et tapez:

cd /usr/src
tar -xzvf wu-ftpd-2.4.2-beta-10.tar.gz
cd wu-ftpd-beta-10
cd ./src/config
éditez alors le fichier config.lnx et remplacez:
#undef SHADOW_PASSWORD
par
#define SHADOW_PASSWORD
Allez alors dans le répertoire des Makefiles
cd ../Makefiles
et éditez le fichier Makefile.lnx. Modifiez alors:
LIBES = -lsupport -lbsd # -lshadow
par
LIBES = -lsupport -lbsd -lshadow
Il ne reste plus qu'à compiler le programme et l'installer:
cd ..
build lnx
cp /usr/sbin/wu-ftpd /usr/sbin/wu-ftpd.old
cp ./bin/ftpd /usr/sbin/wu-ftpd

Notez que vous devrez contrôler le fichier /etc/inetd.conf afin d'être sûr que votre serveur wu-ftpd soit réellement présent. Il a été rapporté que certaines distributions placent les serveurs démons à d'autres endroits, et donc, wu-ftpd en particulier pourrait être nommé différemment.

6.3 ftpd standard

Si vous utilisez le serveur ftpd standard, tout d'abord, je vous recommande de passer au serveur wu_ftpd, mis à part les bugs cités précédemment, il est considéré comme plus sécurisé.

Si vous insistez et voulez garder la version standard - ou bien vous avez besoin du support NIS - le fichier est sur Sunsite: ftpd-shadow-nis.tgz

6.4 pop3d (Post Office Protocol 3)

Si vous utilisez le 3eme Post Office Protocol (POP3), vous devrez recompiler le programme pop3d. pop3d est normalement lancé par inet2/tcpd dans un process root.

Il y a deux versions disponibles sur Sunsite: pop3d-1.00.4.linux.shadow.tar.gz et pop3d+shadow+elf.tar.gz

Les deux versions sont très simples à installer.

6.5 xlock

Si vous utilisez X-window et que vous ne mettez pas à jour xlock, vous devrez utiliser CTRL-ALT-Fx pour vous déplacer sur un autre terminal, vous loguer et tuer le process xlock (ou utiliser CTRL-ALT-BS pour tuer le serveur X). Mais par chance, la mise à jour d' xlock n'est vraiment pas compliquée.

Si vous utilisez XFree86 Versions 3.x.x, c'est probablement xlockmore qui est installé (c'est un superbe économiseur d'écran et un système de lock). Ce paquetage supporte shadow après recompilation. Si vous utilisez une vieille version xlock, je vous recommande celle-ci.

xlockmore-3.7.tgz disponible sur Sunsite: ftp://sunsite.unc.edu/pub/Linux/X11/xutils/screen-savers/ xlockmore-3.7.tgz

En gros, voilà comment procéder:

Récupérez xlockmore-3.7.tgz et copiez-le dans /usr/src, décompressez-le:

tar -xzvf xlockmore-3.7.tgz

Editez le fichier: /usr/X11R6/lib/X11/config/linux.cf, et changez la ligne:

#define HasShadowPasswd    NO
en
#define HasShadowPasswd    YES

Alors, construisez les exécutables:

cd /usr/src/xlockmore
xmkmf
make depend
make

Maintenant, déplacez le tout vers le bon endroit, et mettez-à-jour les propriétaires et les permissions de fichier:

cp xlock /usr/X11R6/bin/
cp XLock /var/X11R6/lib/app-defaults/
chown root.shadow /usr/X11R6/bin/xlock
chmod 2755 /usr/X11R6/bin/xlock
chown root.shadow /etc/shadow
chmod 640 /etc/shadow

Votre xlock fonctionnera désormais correctement.

6.6 xdm

xdm est un programme qui présente un écran de login pour W-Window. Quelques sytèmes démarrent xdm lorsqu'il se situe dans un niveau spécifique (voir /etc/inittab).

Avec le kit Shadow installé, xdm doit être mis à jour. Heureusement, il est relativement facile de mettre à jour votre programme xdm.

xdm.tar.gz est disponible à: <ftp://sunsite.unc.edu/pub/Linux/X11/xutils/xdm.tar.gz>;

Récupérez xdm.tar.gz et placez-le dans le répertoire /usr/src, et décompressez-le:

tar -xzvf xdm.tar.gz
éditez le fichier /usr/X11R6/lib/X11/config/linux.cf, et changez la ligne:
#define HasShadowPassword           NO
en
#define HasShadowPassword           YES
Vous pouvez alors compiler les exécutables;:
cd /usr/src/xdm
xmkmf
make depend
make
Copier alors l'exécutable:
cp xdm /usr/X11R6/bin
xdm est exécuté en tant que root donc vous n'avez pas à changer les permissions.

6.7 sudo

Le programme sudo permet à l'administrateur système de laisser des utilisateurs lancer des programmes qui normalement nécessiteraient les permissions root. C'est intéressant car ça permet à l'administrateur de se limiter lui même l'accès root pendant qu'il permet aux utilisateurs de faire des opérations comme monter un disque.

sudo a besoin d'accéder aux mots de passe car il vérifie le mot de passe des utilisateurs quand il est invoqué.sudo fonctionne déjà SUID root, donc accéder au fichier /etc/shadow n'est pas un problème.

la mise à jour sudo pour shadow est disponible: ftp://sunsite.unc.edu/pub/Linux/system/Admin/sudo-1.2-shadow.tgz

Cette version a été prévue pour fonctionner avec des mots de passe shadow, donc la seule chose à faire est de recompiler le tout (mettez-le dans /usr/src):

cd /usr/src
tar -xzvf sudo-1.2-shadow.tgz
cd sudo-1.2-shadow
make all
make install

6.8 imapd (paquetage Email pine)

imapd est un serveur e-mail tout comme pop3d. imapd est compris dans l'ensemble Email pine. La documentation qui est fournie avec le paquetage prétend que la configuration par défaut pour un système linux fonctionne avec shadow. Or j'ai constaté que ce n'est pas vrai. De plus, je n'ai pas encore compris comment fonctionne la combinaison Makefile / Script Build et je n'ai pas réussi à le modifier pour qu'il supporte le format shadow.

Si quelqu'un arrive à faire cette mise à jour, merci de m'envoyer un email, je l'incluerai ici.

6.9 pppd (Serveur Point-to-Point protocol)

Le serveur pppd peut être configuré selon de nombreuses méthodes d'authentification: Password Authentifocation Protocol (PAP) et Cryptographic Authentification Protocol (CHAP). Le serveur pppd utilise en général les mots de passe stockés dans le fichier /etc/ppp/chap-secrets et /etc/ppp/pap-secret. Si vous utilisez cette méthode, ce n'est pas la peine de faire de mise-à-jour.

pppd vous permet aussi d'utiliser le paramètre login (soit en ligne de commande, soit dans le fichier de configuration). Si l'option login est utilisée, alors pppd utilisera pour le PAP le fichier /etc/passwd pour le nom d'utilisateur et le mot de passe. Bien sur ça ne fonctionnera plus sur un système mots de passe shadow. Pour pppd-1.2.1d, un ajout de code est nécesssaire.

L'exemple donné dans la prochaine section est la modification du code de pppd-1.2.1d (une vieille version de pppd).

pppd-2.2.0 contient déjà le support shadow.


Chapitre suivant, Chapitre Précédent

Table des matières de ce chapitre, Table des matières générale

Début du document, Début de ce chapitre