Ceci est une ancienne révision du document !


Présentation de la configuration

Pour une installation par défaut des serveurs mail d'Ubuntu on utilise les paquets dovecot-imapd, dovecot-pop3d, postfix .

Mais il existe un paquet qui installe les serveurs comme un MDA (mail delivery agent), dovecot-postfix. Il installe les serveurs POP3, IMAP, SMTP. Ce qui ici nous arrange bien ici, car un apt-get install dovecot-postfix nous installe dovecot-imapd, dovecot-pop3d avec postfix et en plus il est déjà configurer.

Le paquet dovecot-postfix est aussi préconfiguré pour le support du chiffrement TLS et de l'authentification SASL pour les protocoles SMTP, POP3 et IMAP. Ainsi que l'on peux facilement y inclure un Filtre SIEVE.

Nous aurons aussi besoin des paquets : mysql-client et mysql-serveur en version 5.1, sasl, ntp, apache2, et enfin php5 pour mysql.

Il faut impérativement la version 5.1 de mysql afin de partitionner les groupe d'utilisateur.

Installation de la configuration

Certification d'authenticité.

Sur un plan théorique on utilise une certification auto-signé. Cela veux dire que aucune autorité assure vos certificats. Pour un serveur de production il faudra utilisé des certification payante.
Pour éviter toute confusions. Je vous recommande fortement de bien lire et de personnaliser toute c'est commande dans un bloc-note, ainsi que de vérifier les concordances. Avant de vous lancer.

Donc nous allons éditer le fichier /etc/ssl/openssl.cnf

Il faut modifiez la ligne default_day pour pouvoir l'éditer sur 10ans.

default_days    = 3650

Maintenant il faut généré un certificat :

cd ~
/usr/lib/ssl/misc/CA.pl -newca
Paramétre Explication
Enter PEM pass phrase Mot de passe du certificat
Country Name (2 letter code) [AU] FR
State or Province Name (full name) [Some-State]: Entrer ici votre département département
Locality Name (eg, city) : Entrer ici votre ville
Organization Name (eg, company) [Internet Widgits Pty Ltd] Ici le nom de votre compagnie
Organizational Unit Name (eg, section) VIDE (Optionnel)
Common Name (eg, YOUR name) : Ici votre nom de domaine
Email Address : Votre adresse email
A challenge password : VIDE
Enter pass phrase for Mot de passe du certificat

Ce certificat racine sert à protéger les autres certificats. Il se situe dans le répertoire /demoCA.

On crée maintenant une clé privée pour le serveur ainsi qu’un certificat public non signé.

mkdir ~/CERT
cd ~/CERT
openssl req -new -nodes -keyout "nomdesociété"-key.pem -out "nomdesociété"-req.pem -days 3650

et on entre les paramètres comme ci dessous :

Paramétre Explication
Enter PEM pass phrase Mot de passe du certificat
Country Name (2 letter code) [AU] FR
State or Province Name (full name) [Some-State]: Entrer ici votre département département
Locality Name (eg, city) : Entrer ici votre ville
Organization Name (eg, company) [Internet Widgits Pty Ltd] Ici le nom de votre compagnie
Organizational Unit Name (eg, section) VIDE (Optionnel)
Common Name (eg, YOUR name) : Ici votre nom de domaine
Email Address : Votre adresse email
A challenge password VIDE

On signe maintenant ce certificat public avec le certificat racine :

cd ~
openssl ca -out CERT/"nomdesociété"-cert.pem -infiles CERT/"nomdesociété"-req.pem

Voici la sortie de la signature :

Using configuration from /usr/lib/ssl/openssl.cnf
Enter pass phrase for ./demoCA/private/cakey.pem:
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number:
            84:7c:ce:d2:f7:cf:df:6d
        Validity
            Not Before: Nov 13 16:51:32 2011 GMT
            Not After : Nov 10 16:51:32 2021 GMT
        Subject:
            countryName               = FR


            stateOrProvinceName       = "Votre département"
            organizationName          = "Votre société Internet"
            commonName                = "Votre nom de domaine"
            emailAddress              = "Votre Adresse Email"
        X509v3 extensions:
            X509v3 Basic Constraints: 
                CA:FALSE
            Netscape Comment: 
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier: 
                05:2A:A9:90:6F:2A:80:F7:E3:EF:2B:F9:44:9D:8E:CF:C3:16:18:EF
            X509v3 Authority Key Identifier: 
                keyid:B9:04:A3:81:E5:5D:D6:82:72:F4:6E:0C:FB:3F:E2:62:1B:EF:B9:57

Certificate is to be certified until Nov 10 16:51:32 2021 GMT (3650 days)
Sign the certificate? [y/n]:y ### Oui


1 out of 1 certificate requests certified, commit? [y/n]y ### Oui
Write out database with 1 new entries
Data Base Updated

On copie maintenant le certificat (cert.pem) et la clé (key.pem) dans postfix :

mkdir /etc/postfix/tls
cp demoCA/cacert.pem CERT/"nomdesociété"-key.pem CERT/"nomdesociété"-cert.pem /etc/postfix/tls/
chmod 644 /etc/postfix/tls/"nomdesociété"-cert.pem /etc/postfix/tls/cacert.pem
chmod 400 /etc/postfix/tls/"nomdesociété"-key.pem
chmod 400 ~/CERT/*

On ajoute maintenant la configuration tls et smtp protégé par ssl. Comme ceci dans le fichier /etc/postfix/main.cf :

smtp_tls_CAfile = /etc/postfix/tls/cacert.pem
smtp_tls_security_level = may
smtp_tls_session_cache_database = btree:${data_directory}/smtp_tls_session_cache
smtpd_tls_security_level = may
smtpd_tls_auth_only = yes
smtpd_tls_key_file = /etc/postfix/tls/"nomdesociété"-key.pem
smtpd_tls_cert_file = /etc/postfix/tls/"nomdesociété"-cert.pem
smtpd_tls_CAfile = /etc/postfix/tls/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_database = btree:${data_directory}/smtpd_tls_session_cache
tls_random_source = dev:/dev/urandom

Configuration de Dovecot :

Nous avons besoin d'un groupes d'utilisateur pour utiliser Dovecot :

adduser --system --group --home /usr/lib/dovecot --gecos "Dovecot mail server" --disabled-password --quiet dovecot
adduser --system --home /nonexistent --gecos "Dovecot login user"  --disabled-password --quiet dovenull

On copie les fichiers de configuration nécessaires :

cd /etc/dovecot/
rm dovecot.conf
rm dovecot-sql.conf
wget http://postfix-mysql-configuration-file.googlecode.com/files/dovecot.conf
wget http://postfix-mysql-configuration-file.googlecode.com/files/dovecot-sql.conf
wget http://postfix-mysql-configuration-file.googlecode.com/files/dovecot-dict-quota-sql.conf
chown vmail:dovecot dovecot-dict-quota-sql.conf
chmod 600 dovecot-sql.conf 
chmod 640 dovecot-dict-quota-sql.conf

Dans le fichier /etc/dovecot/dovecot.conf a la ligne 126 et 127, il faut remplace les nom des certificat ssl que nous avons créer plus haut.

ssl_cert = </etc/postfix/tls/"nomdesociété"-cert.pem
ssl_key = </etc/postfix/tls/"nomdesociété"-key.pem

On indique le mot de passe de la table postfix au fichier de configuration :

sed -i 's/\*\*\*\*\*/"votremotdepass"/g' dovecot-sql.conf dovecot-dict-quota-sql.conf

Configuration du MDA

Nous avons maintenant besoin d’un MDA (mail delivery agent) pour livrer les mails dans les boîtes. Le service de livraison Virtual de Postfix ne convient pas totalement pour notre usage. En effet nous allons avoir besoin de capacité de filtrage sur le MDA ainsi que la possibilité de gérer les quotas, ce que ne sait pas faire Virtual.

Nous allons utiliser Dovecot LDA (Local Delivery Agent, le MDA de dovecot) qui s’occupera de la livraison des mails. Pour cela il faut donc configurer postfix pour qu’il utilise Dovecot comme MDA :

On ajoute ceci au fichier /etc/postfix/main.cf :

dovecot_destination_recipient_limit = 1
virtual_transport = dovecot

et on ajoute un transport dovecot au /etc/postfix/master.cf (sous maildrop par exemple) :

dovecot unix    -       n       n       -       -      pipe
  flags=DRhu user=vmail: argv=/usr/lib/dovecot/deliver -f ${sender} -d ${user}@${nexthop} -a ${recipient}
La configuration de la documentation permet de choisir son transport par domaine. Il faut pour cela choisir Dovecot dans la configuration de domaine grace à Postfixadmin. Le domaine par défaut, crée par le script sql de la 'doc', est déja paramétré pour utiliser Dovecot. Dovecot est également préconfiguré pour utiliser les mêmes certificats SSL que Postfix.

il faut maintenant créer un fichier /etc/init.d/dovecot, pour le rendre exécutable par défaut :

cd /etc/init.d/
wget http://postfix-mysql-configuration-file.googlecode.com/files/dovecot
chmod 755 /etc/init.d/dovecot
insserv -v /etc/init.d/dovecot

On peux maintenant lancer Dovecot :

/etc/init.d/dovecot start

Ainsi que Postfix :

/etc/init.d/postfix reload

On vérifie dans les logs que tout a démarré correctement.

Bon, je continurai aprés il y a des soucis de compatibilité avec la derniére configuration de SIEVE. "Pigeonhole ManageSieve Server".

La gestion des Quotas

Voila le serveur est configuré ! Maintenant si vous souhaitez une sécurisation optimale vous pouvez continuer le lecture de la documentation de spamassassin, amavis etc http://www.starbridge.org.

  • utilisateurs/benjy4537/brouillons/postfix_relecture.1310065846.txt.gz
  • Dernière modification: Le 15/12/2011, 15:21
  • (modification externe)