[[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
postfix doit être membre du groupe sasl. Pour ajouter l'utilisateur postfix au groupe sasl, tapez :
sudo adduser postfix sasl
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"
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.
