|
[Exécuter Sendmail sans droit root] Cette page présente
successivement les raisons qui font que Sendmail est majoritairement
exécuté avec l'identité de l'utilisateur "root" et propose
une solution alternative pour permettre d'exécuter Sendmail sous une
autre identité, avec des pouvoirs moins importants. [Pourquoi Sendmail utilise classiquement root ?] Plusieurs
raisons essentielles permettent de jusitifier l'exécution de Sendmail en
tant que root, notamment : [Comment permettre à Sendmail de s'exécuter sans droit root] Les étapes suivantes permettent de réaliser l'opération. 1. Création du compte d'exécution et mise en place des permissions Il
convient de créer en premier lieu le compte de service utilisé par
Sendmail pour s'exécuter, et de fixer les droits adéquats sur les
fichiers et répertoires utilisés par Sendmail : mail:*:uid:gid:Compte de service Sendmail:/home/mail:/bin/false -
Disposition des droits sur les répertoires
Fixer les droits 1775 sur le répertoire /var/spool/mail (éventuellement 1770 si aucun programme local de messagerie n'accède le répertoire) :
Tous les répertoires contenus dans /var/spool/mail doivent disposer de droits d'accès 660.
Le répertoire /var/spool/mqueue doit appartenir à mail et disposer de droits 700 : chown mail /var/spool/mqueue ; chmod 600 /var/spool/mqueue. 2. Forcer Sendmail a utiliser le shell restreint smrsh smrsh
a pour objectif de remplacer /bin/sh et de contrôler et spécifier la
liste explicite des programmes utilisables par Sendmail. Il convient donc : - De
déterminer quels programmes sont autorisés pour Sendmail (ex. : /bin/mail,
/usr/bin/procmail). Ceci permet aux programmes listés d'être exécutés
depuis les fichiers des utilisateurs tels que .forward.
- De configurer Sendmail pour utiliser le shell restreint smrsh : Remplacer
dans le fichier /etc/mail/sendmail.cf la ligne :
3. Lancer Sendmail depuis Inetd et non comme démon Pour permettre à Sendmail d'écouter sur le port 25 sans disposer de droits root, il convient de lancer le service non plus comme démon, mais via inetd (le super-démon). Pour celà, ajouter la ligne suivante dans le fichier /etc/inetd.conf : smtp stream tcp nowait mail /usr/sbin/tcpd /usr/sbin/sendmail -bs Remarques
: Arrêter le démon Sendmail :
Veiller à ne plus permettre à Sendmail de démarrer en tant que démon, par exemple (sous Linux) :
Relancer le super-démon inetd :
4. Scruter la queue de messages régulièrement Il
est maintenant nécessaire de préciser à Sendmail de scruter
régulièrement la queue de messages. Il faut donc programmer le démon
cron pour lancer périodiquement la vérification de queue par Sendmail.
Insérer la ligne suivante (séparateur : tabulation) :
5. Dernière étape : modifier l'UID et le GID de Sendmail Sendmail
doit être exécuté avec l'UID "mail" et le GID
"mail".
Pour que les changements soient effectués, exécuter les commandes suivantes :
Changer les permissions sur les répertoires liés à Sendmail de la manière suivante : chown mail:mail /usr/sbin/sendmail chmod 6555 /usr/sbin/sendmail chown mail /var/spool/mqueue/* chgrp mail /etc/aliases.db chmod 664 /etc/aliases.db
[Références] -
"Sendmail, 2nd edition" - Edition O'Reilly, janvier
1997, Bryan Costales & Eric Allman (ISBN 1-56592-222-0).
|
securIT@free.fr -
Plein accès