ubuntu-fr

Communauté francophone des utilisateurs d'Ubuntu

[[postfix]]

Piste: » postfix


Postfix : agent de transfert de courriels (SMTP)

Postfix est l'agent de transfert de courriel (MTA) par défaut d'Ubuntu.
Il est dans les dépôts main, donc il reçoit les mises à jour de sécurité.
Cette page décrit son installation et sa configuration pour en faire un serveur SMTP utilisant une connexion sécurisée.

Installation

Pour installer Postfix avec SMTP-AUTH et TLS, installez les paquets

libdb3 libdb3-util postfix procmail sasl2-bin

Configuration

Pour configurer postfix, tapez :

sudo dpkg-reconfigure postfix

Lorsqu'on vous les demande, entrez les détails suivant (remplacez fserver1.exemple.com par votre nom de domaine) :

 Internet Site
 NONE
 server1.exemple.com
 server1.exemple.com, localhost.exemple.com, localhost
 No
 127.0.0.0/8
 0
 +

Ensuite entrez les commandes suivantes :

postconf -e 'smtpd_sasl_local_domain ='
postconf -e 'smtpd_sasl_auth_enable = yes'
postconf -e 'smtpd_sasl_security_options = noanonymous'
postconf -e 'broken_sasl_auth_clients = yes'
postconf -e 'smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination'
postconf -e 'inet_interfaces = all'
echo 'pwcheck_method: saslauthd' >> /etc/postfix/sasl/smtpd.conf
echo 'mech_list: plain login' >> /etc/postfix/sasl/smtpd.conf 

mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 1024
chmod 600 smtpd.key
openssl req -new -key smtpd.key -out smtpd.csr
openssl x509 -req -days 3650 -in smtpd.csr -signkey smtpd.key -out smtpd.crt
openssl rsa -in smtpd.key -out smtpd.key.unencrypted
mv -f smtpd.key.unencrypted smtpd.key
openssl req -new -x509 -extensions v3_ca -keyout cakey.pem -out cacert.pem -days 3650 

postconf -e 'smtpd_tls_auth_only = no'
postconf -e 'smtp_use_tls = yes'
postconf -e 'smtpd_use_tls = yes'
postconf -e 'smtp_tls_note_starttls_offer = yes'
postconf -e 'smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key'
postconf -e 'smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt'
postconf -e 'smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem'
postconf -e 'smtpd_tls_loglevel = 1'
postconf -e 'smtpd_tls_received_header = yes'
postconf -e 'smtpd_tls_session_cache_timeout = 3600s'
postconf -e 'tls_random_source = dev:/dev/urandom'
postconf -e 'myhostname = server1.example.com' 

Le fichier /etc/postfix/main.cf doit ressembler à ceci :

# See /usr/share/postfix/main.cf.dist for a commented, more complete version

smtpd_banner = $myhostname ESMTP $mail_name (Ubuntu)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

myhostname = server1.example.com
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = server1.example.com, localhost.example.com, localhost
relayhost =
mynetworks = 127.0.0.0/8
mailbox_size_limit = 0
recipient_delimiter = +
inet_interfaces = all
smtpd_sasl_local_domain =
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions = permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
smtpd_tls_auth_only = no
smtp_use_tls = yes
smtpd_use_tls = yes
smtp_tls_note_starttls_offer = yes
smtpd_tls_key_file = /etc/postfix/ssl/smtpd.key
smtpd_tls_cert_file = /etc/postfix/ssl/smtpd.crt
smtpd_tls_CAfile = /etc/postfix/ssl/cacert.pem
smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom

N'oubliez pas de donner un myorigine correct. Les serveur destinataires vont en effet tester ce paramètre. Ils vérifieront dans les serveurs DNS si cette adresse existe bien !

D'autre part, vérifiez aussi que votre ligne internet accepte les connexions smtp sortantes !

Puis redémarrez le serveur Postfix :

sudo /etc/init.d/postfix restart

Authentification

L'authentification utilise saslauthd.

Il est possible de changer quelques détails pour le faire fonctionner proprement. Postfix exécutant "chroot" dans /var/spool/postfix nous devons faire :

mkdir -p /var/spool/postfix/var/run/saslauthd
rm -fr /var/run/saslauthd

Maintenant éditez /etc/default/saslauthd pour y activer saslauthd.

Pour ce faire décommentez la ligne

START=yes

et ajouter la ligne

PARAMS="-m /var/spool/postfix/var/run/saslauthd"

Ce qui donne :

# This needs to be uncommented before saslauthd will be run automatically
START=yes

PARAMS="-m /var/spool/postfix/var/run/saslauthd"

# You must specify the authentication mechanisms you wish to use.
# This defaults to "pam" for PAM support, but may also include
# "shadow" or "sasldb", like this:
# MECHANISMS="pam shadow"

MECHANISMS="pam"
Si vous préférez, vous pouvez utiliser shadow au lieu de pam. Ceci utilisera MD5 au lieu de password et le rendra parfaitement sécurisé. Le nom d'utilisateur et le mot de passe requis pour l'authentification sera le même que pour les utilisateurs de votre système.

Finallement éditez le fichier /etc/init.d/saslauthd :

Commentez la ligne (aux alentours de la ligne 48)

dir=`dpkg-statoverride --list $PWDIR`

Modifiez la variable PWDIR et PIDFILE et ajoutez la variable dir au début du fichier:

PWDIR="/var/spool/postfix/var/run/${NAME}"
PIDFILE="${PWDIR}/saslauthd.pid"
dir="root sasl 755 ${PWDIR}"

Les tests

Démarrez saslauthd :

sudo /etc/init.d/saslauthd start

Afin de vérifier que SMTP-AUTH et TLS fonctionnent correctement, tapez :

telnet localhost 25

Ensuite après avoir établi la connexion avec postfix tapez :

EHLO somename.tld

Si vous voyez ces lignes

250-STARTTLS
250-AUTH

Ça fonctionne !

Pour retourner à l'invite de commande, tapez :

quit

Pour aller plus loin

Si vous avez envie d'installer un serveur IMAP, la configuration avec procmail est un peu ardue. Vous pouvez installer et utiliser maildrop à la place.

Dans main.cf, il faudra alors modifier la ligne

mailbox_command = procmail -a "$EXTENSION"

en

mailbox_command = maildrop

N'oubliez pas de créer un dossier Maildir pour chaque utilisateur :

maildirmake.courier ~/Maildir

Et d'activer l'option dans /etc/maildroprc

Bridage SMTP

Consulter le dernier paragraphe de : comment_soumettre_un_probleme_postfix_sur_le_forum.

État de la queue des messages

La commande suivante permet de connaître le status des messages :

/usr/bin/mailq

Pour plus de détails, on peut également consulter le fichier /var/log/mail.log

Pour supprimer un message de la queue :

postsuper -d queue_id

ou queue_id doit être remplacer par l'identifiant correspondant au message.

Pour supprimer tous les messages de la queue :

postsuper -d ALL

Pour mettre un problème postfix dans le forum

Allez consulter cette page : comment_soumettre_un_probleme_postfix_sur_le_forum.


Contributeurs principaux : Phetu, Stéphane Guedon.

Basé sur http://wiki.ubuntu.com/postfix.


postfix.txt · Dernière modification: 2008/11/22 19:49 par Skippy le Grand Gourou
Le contenu de ce wiki est sous double licence : CC BY-SA et GNU FDL