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).
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
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 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.
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
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.
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.
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 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
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.
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.