Installer un serveur IMAP avec uw-imap

Auteur : Olivier BOYER - oboyer () ajoute ! org

Mots clés

NetBSD, imap, imaps, pop, pop3, ssl, cram-md5

Introduction

Ce document décrit comment installer un mail pop3, et imap sur un système NetBSD 1.6.x et 2.x.

Le produit est disponible à l'adresse : http://www.washington.edu/imap/

Ce document utilise la version : imap-2004a

Présentation de la maquette

Le système de packages de NetBSD propose l'installation de uw-imap.

Cependant, nous n'allons pas utiliser l'arbre des packages pour installer ce produit. Nous le compilerons depuis les sources.

Voici les choix de configuration retenus :

  • Utilisation de mots de passe en clair sur SSL.
  • Utilisation d'une base password différente de /etc/passwd

Note

Toutes les commandes présentées ici, sont à executer, sauf mention contraire, en tant qu'administrateur de la machine.

Pré-requis

Ce document suppose qu'OpenSSL est déjà installé sur la machine

Compilation de uw-imap

Obtenir les sources

Elles sont disponibles sur le site de l'Université de Washington : http://www.washington.edu/imap/

Pour le téléchargement : ftp://ftp.cac.washington.edu/mail/imap.tar.Z

La version utlisée dans ce document est : imap-2004a

Support cram-md5

Présentation

Le fichier /etc/cram-md5.pwd contient la base de mots de passe en CLAIR pour les services POP et IMAP. Il est utilisé pour les authentifications APOP ou CRAM-MD5.

Si ce fichier existe lors de la compilation de uw-imap, alors le produit authentifiera les utilisateurs via ce fichier, et non pas via /etc/passwd (ou NIS, LDAP), que l'on utilise ou non l'APOP, MD5-CRAM.

Ainsi, la présence du fichier /etc/cram-md5.pwd permet d'utiliser des mots de passe pour les services mail différents de ceux utilisés pour le login sur la machine.

Le format du fichier est très simple. Il est contient une série de lignes de text, représentant le nom UNIX de l'utilisateur, suivi d'une tabulation, et du mot de passe en CLAIR. Une ligne commencant par le caractère '#' est un commentaire, et est ignorée.

Voici un exemple de fichier /etc/cram-md5.pwd :

# CRAM-MD5 authentication database
# Entries are in form <user><tab><password>
# Lines starting with "#" are comments

bill    hubba-hubba
monica  beret
kenstarr        inquisitor

Chaque entrée dans le fichier /etc/cram-md5.pwd DOIT correspondre à une entrée dans la base password du système (/etc/passwd ou map NIS, LDAP). En effet, uw-imap ne consulte que les entrees : UID, GID et HOMEDIR. Cette entrée dans la base password peut-etre désactivée (compte verouillé, ou shell à /bin/false).

Il est FORTEMENT conseillé que le mot de passe dans /etc/cram-md5.pwd diffère de celui de la base password.

Créer le fichier /etc/cram-md5.pwd

Ce fichier sera lu par les daemons uw-imap (pop, pops, imap, imaps) durant la phase d'authentification de l'utilisateur. Ces daemons tournent en tant qu'utilisateur root. Donc, seul root doit avoir accès à ce fichier.

# touch /etc/cram-md5.pwd
# chown root:wheel /etc/cram-md5.pwd
# chmod 600 /etc/cram-md5.pwd

Configuration de OpenSSL

Editer le fichier src/osdep/unix/Makefile et vérifier que les paramètres SSL sont corrects. Voici un exemple, ou OpenSSL est installé dans /usr/local/ssl.

# Extended flags needed for SSL.  You may need to modify.

SSLDIR=/usr/pkg
SSLCERTS=/etc/openssl/certs
SSLKEYS=$(SSLCERTS)
SSLINCLUDE=${SSLDIR}/include
SSLLIB=${SSLDIR}/lib

Compilation

Décompresser les sources

# cd /tmp
# tar xvzf imap.tar.Z
# cd /tmp/imap-2004a

Choisir la bonne plateforme

A la racine des sources, éditer le fichier Makefile. Il contient la liste des plateformes supportées par uw-imap. Pour un système NetBSD, choisir : 'neb'

Lancer la compilation

# cd /tmp/imap-2004a
# make neb

Installation de uw-imap

Copier les binaires

# cd /tmp/imap-2004a
# make install

Générer le certificat SSL

Générer une clef RSA

# openssl genrsa -out privkey.pem 4096

Généré un certificat serveur auto-signé

# openssl req -new -x509 -key privkey.pem -out imapd.pem -days 3650
 Using configuration from /etc/openssl/openssl.cnf
 You are about to be asked to enter information that will be incorporated
 into your certificate request.
 What you are about to enter is what is called a Distinguished Name or a DN.
 There are quite a few fields but you can leave some blank
 For some fields there will be a default value,
 If you enter '.', the field will be left blank.
 -----
 Country Name (2 letter code) [AU]:FR
 State or Province Name (full name) [Some-State]:Haute-Garonne
 Locality Name (eg, city) []:Toulouse
 Organization Name (eg, company) [Internet Widgits Pty Ltd]:Leaves Networks Ltd
 Organizational Unit Name (eg, section) []:leaves.org
 Common Name (eg, YOUR name) []:mail.leaves.org
 Email Address []:postmaster@leaves.org

Modifier le fichier /etc/inetd.conf

Les daemons d'uw-imap ne fonctionnent pas seuls. Il utilisent le super daemon inetd pour attendre les requêtes entrantes. Modifiez comme suit le fichier /etc/inetd.conf

pop     stream  tcp     nowait  root    /usr/local/uw-imap/ipop2d   ipop2d
pop3    stream  tcp     nowait  root    /usr/local/uw-imap/ipop3d   ipop3d
pop3s   stream  tcp     nowait  root    /usr/local/uw-imap/ipop3d   ipop3d
imap    stream  tcp     nowait  root    /usr/local/uw-imap/imapd    imapd
imaps   stream  tcp     nowait  root    /usr/local/uw-imap/imapd    imapd

Modifier le fichier /etc/services

Ajoutez, si necessaire, les lignes suivantes au fichier /etc/services :

pop2		109/tcp		# Post Office Protocol - V2
pop3		110/tcp		# Post Office Protocol - V3
pop3s		995/tcp		# Post Office Protocol - V3 over SSL
imap		143/tcp		# Internet Mail Access Protocol
imaps		993/tcp		# Internet Mail Access Protocol over SSL

Relancer inetd

# kill -HUP `cat /var/run/inetd.pid`

Liens

 
doc/netbsd/uw-imap.txt · Dernière modification: 2009/12/23 22:36 (édition externe)     Haut de page