Navigation --> NiQoZ WeB  >>  Gentoo  >>  Tutoriels Gentoo
Tutoriel :

Installer le serveur Dovecot POP IMAP avec Postfix

Configuration d’un serveur sécurisé Dovecot sur Gentoo

mercredi 4 octobre 2006.

Ce tutoriel necessite un serveur mail Postfix minimal opérationel, c’est à dire capable d’émetre et de reçevoir du courrier local et distant.
Veuillez consultez la documentation officielle pour le configurer.
Ce tutoriel est complémentaire à Configurer postfix amavisd-new clamav spamassassin sur Gentoo et à Configurer TLS SSL et Cyrus SASL avec Postfix.

Sommaire

Installations des programmespage 1
Configuration de PAMpage 1
Configuration de Postfixpage 1
Configuration de Cyrus-SASLpage 1
Configuration de Dovecotpage 1
Configuration du serveur Dovecotpage 1
Testspage 1
Fichiers exemplespage 1

Installations des programmes

Cyrus-SASL

Configurez la variable USE et compilez Cyrus SASL : # echo 'dev-libs/cyrus-sasl pam ssl crypt urandom' >> /etc/portage/packages.use urandom est optionelle # emerge cyrus-sasl

Postfix

Configurez et compilez Postfix : # echo 'mail-mta/postfix pam ssl sasl dovecot-sasl mbox' >> /etc/portage/packages.use Ne choisissez pas "mbox" si vous voulez vos boites aux lettres au format Maildir. # emerge postfix

Dovecot

Configurez et compilez Dovecot :
# echo 'net-mail/dovecot pam ssl mbox' >> /etc/portage/packages.use
# emerge dovecot

Configuration de PAM

/etc/pam.d/dovecot. A créer :
auth             required        pam_unix.so
account    required        pam_unix.so

Configuration de Postfix

/etc/postfix/main.cf :
smtpd_recipient_restrictions = permit_sasl_authenticated, permit_mynetworks, reject_unauth_destination
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
smtpd_sasl_local_domain =
smtpd_sasl_type = dovecot
smtpd_sasl_path = private/auth
smtp_sasl_auth_enable = no

/etc/sasl2/smtpd.conf :
pwcheck_method:saslauthd
mech_list: plain login
Alternative : Cette configuration utilise la méthode d’accès PAM, en choisissant pwcheck_method = auxprop vous utilisez la base de donnée de mots de passes SASL2DB ainsi vous pouvez obtenir des methodes d’authentifications beaucoup plus évoluées qu’avec PAM où seulement PLAIN et LOGIN y sont authorisés.
Avec SASL2DB vous disposez de : mech_list : CRAM-MD5 DIGEST-MD5 DIGEST-MD5 NTLM OTP...etc.
Par contre elle necessitent la tenue d’une base de donnée SASL2 à part, à créer avec les outils saslpasswd2 sasldblistusers2...

Notez que si la communication est cryptée le mot de passe voyagera crypté également. Une authentification chiffrée est valable seulement pour les communications IMAP et POP et SMTP en clair... smiley

Démarrage du service : # /etc/init.d/postfix start

Configuration de Cyrus-SASL

/etc/conf.d/saslauthd :
SASLAUTHD_OPTS="-a pam"

Démarrage du service : # /etc/init.d/saslauthd start

Configuration de Dovecot

Création des clés de cryptage

Utilisons les outils fournis avec Dovecot :
# gzcat /usr/share/doc/dovecot-<VOTRE_VERSION>/dovecot-openssl.cnf.gz > /etc/ssl/dovecot-openssl.cnf
# gzcat /usr/share/doc/dovecot-<VOTRE_VERSION>/mkcert.sh.gz > /etc/ssl/misc/dovecot-mkcert.sh
/etc/ssl/dovecot-openssl.cnf. Modifiez le selon vos paramètres :
[ req ]
default_bits = 2048
encrypt_key = yes
distinguished_name = req_dn
x509_extensions = cert_type
prompt = no

[ req_dn ]
# country (2 letter code)
C=FR

# State or Province Name (full name)
#ST=

# Locality Name (eg. city)
L= ==> Votre Localité

# Organization (eg. company)
O=NiQoZ WeB ==> (ou si vous ne voulez pas, commentez le)

# Organizational Unit Name (eg. section)
OU=Dovecot IMAP server ==> (par exemple...)

# Common Name (*.example.com is also possible)
CN=machine.domaine.ext ==> Les caractères joker sont acceptés

# E-mail contact
emailAddress=yourname@yourdomain.ext

[ cert_type ]
nsCertType = server
/etc/ssl/misc/dovecot-mkcert.sh. Modifiez la ligne suivante :
$OPENSSL req -new -x509 -nodes -config $OPENSSLCONFIG -out $CERTFILE -keyout $KEYFILE -days 365 || exit 2
par celle ci :
$OPENSSL req -new -x509 -nodes -config $OPENSSLCONFIG -out $CERTFILE -keyout $KEYFILE -days 9999 || exit 2
Si la sécurité est une priorité maximale, ne le faite pas ou réduisez ce chiffre...Néanmoins ce type de clé s’avère trés difficile à décryptée, généralement les problèmes de sécurité ne proviennent pas de là, mais plutot de failles dans certains logiciels, rapelez vous que la résistance totale d’une chaine est celle du plus faible de ces maillons smiley !

Génerez le jeu de clés :
# sh /etc/ssl/misc/dovecot-mkcert.sh
Generating a 2048 bit RSA private key
......................................... .........................................+++
.............+++
writing new private key to '/etc/ssl/private/dovecot.pem'
----

subject= /C=FR/L=Ma région/O=NiQoZ WeB/OU=Dovecot IMAP server/CN=machine.domaine.ext/emailAddress=yourname@yourdomain.ext
SHA1 Fingerprint=89:DC:05:99:27:AA:62:2A:3C:B1:4E:84:11:68:B2:0D

Vous avez vos clé :

  • Certificat :
    • /etc/ssl/certs/dovecot.pem
  • Clé privée :
    • /etc/ssl/private/dovecot.pem

Les certificats X509 sont autosignés ils ne necessitent donc pas d’Autorité de certification.
Pour plus de sécurité il est toujours possible d’utiliser cette méthode.

Configuration du serveur Dovecot

/etc/dovecot/dovecot.conf :
#
## Les protocoles que vous désirez
#
protocoles = imap imaps pop3 pop3s


#
## Vos certificats
#
ssl_cert_file = /etc/ssl/certs/dovecot.pem
ssl_key_file = /etc/ssl/private/dovecot.pem

# Si vous avez signé vos certificats avec une AC décommentez cette ligne.
#ssl_ca_file = /etc/<CHEMIN_VERS_AC>/<CACERT>.pem

# Optionnel message à la connexion
login_greeting = Serveur Dovecot, en attente...


#
## Locations des  boites aux lettres
#

# Si vous ne définissez pas de paramètres, Dovecot essayera une détection
# automatique de vos boites aux lettres.
# Voici les variables que vous pouvez utiliser :
#
#   %u - utilisateur (complet utilisateur + domaine)
#   %n - Même chose que %u sans le domaine.
#   %d - Nom de domaine. Vide si inéxistant.
#   %h - Répertoire utilisateur home
#
# Voir doc/variables.txt pour la liste complète.
#
#        Voici plusieurs exemples :
#  Boites aux lettres de type Maildir :
#   default_mail_env = maildir:/var/mail/%1u/%u/Maildir
#
#  Boites aux lettres de type MBOX :
#   default_mail_env = mbox:~/mail/:INBOX=/var/mail/%u
#   default_mail_env = mbox:/var/mail/%d/%n/:INDEX=/var/indexes/%d/%n
#                default_mail_env = mbox:~/:INBOX=~/mbox
#   default_mail_env = mbox:/var/spool/mail/%u:INDEX=/var/dovecot/%u


# SI VOTRE POSTFIX EST PARAMETREE PAR DEFAULT AVEC MBOX (pas d'antispam, pas de procmail, etc...) CETTE CONFIGURATION DOIT ETRE LA BONNE :
default_mail_env = mbox:/var/spool/mail/%u:INDEX=/var/dovecot/%u

# Pour ma part j'utilise PROCMAIL qui distribue mes mail dans mes ~/mbox :
# default_mail_env = mbox:~/:INBOX=~/mbox


#
## Donnez les privilèges du groupe mail au serveur
#
mail_extra_groups = mail


#
## Configuration des protocoles
#
protocol imap {
}

protocol pop3 {
}

protocol lda {
        postmaster_address = systeme@niqoz.homelinux.org
        sendmail_path = /usr/sbin/sendmail
}


##
## Configuration de l'authentification
##

auth default {
 mechanisms = plain login
 passdb pam {
   args = "*"
 }
 userdb passwd {
 }
 socket listen {
   client {
     path = /var/spool/postfix/private/auth
     mode = 0660
     user = postfix
     group = postfix
   }
 }
}
Avec PAM seuls PLAIN et LOGIN sont disponibles, si vous voulez des méchanismes d’authentification plus perfectionnés pour votre serveur POP IMAP, préferez utilisez passdb LDAP {---} ou passdb passwd-file {---} .
Encore une fois ces méchanismes ont peu d’interets lors d’une communications cryptée SSL/TLS.

Démarrage du service : # /etc/init.d/dovecot start

Tests

Utilisez vos clients mail préférés... vous devez avoir accès au contenu des boites aux lettres sous tous les protocoles POP3 POP3S IMAP4 IMAP4S.

Fichiers exemples

PostfixSASLDovecot
Fichier Exemple - 2.5 ko
main.cf
Fichier de configuration de Postfix
Fichier Exemple - 891 octets
saslauthd
Fichier de configuration du démon SASL saslauthd
Fichier Exemple - 37.7 ko
dovecot.conf
Fichier de configuration de Dovecot
Fichier Exemple - 159 octets
smtpd.conf
Fichier de configuration SASL de Postfix

Sources utilisées pour ce document [*]