Postfix

Postfix est le Service de Transfert de Courriel (MTA) par défaut d'Ubuntu. Il est conçu pour être sûr autant que facile et rapide à configurer. Il est compatible avec le MTA sendmail. Cette section détaille l'installation et la configuration de postfix. Elle explique aussi comment en faire un serveur SMTP utilisant une connexion sécurisée (afin d'assurer la sécurité des courriels envoyés).

Installation

Pour installerpostfix avec les fonctions SMTP-AUTH et Transport Layer Security (TLS), utilisez la commande suivante:

sudo apt-get install postfix

Appuyez simplement sur la touche Entrée à chaque fois que le processus d'installation vous posera une question, la configuration sera faite plus précisément lors de la prochaine étape.

Configuration de base

Pour configurerpostfix, utilisez la commande suivante:

sudo dpkg-reconfigure postfix

L'interface utilisateur sera alors affichée. Dans chaque écran, sélectionnez les valeurs suivantes :

  • Ok

  • Site Internet

  • NONE

  • courriel.exemple.fr

  • courriel.exemple.fr, localhost.localdomain, localhost

  • Non

  • 127.0.0.0/8

  • Oui

  • 0

  • +

  • tous

[Note]

Remplacer courriel.exemple.fr par le nom d'hôte de votre serveur de messagerie.

Authentification SMTP

Les prochaines étapes sont la configuration de postfix pour qu'il utilise SASL pour le SMTP AUTH (authentification sur le serveur SMTP). Au lieu de modifier le fichier de configuration directement, vous pouvez utiliser la commande postconf pour ajuster tous les paramètres de postfix. Les paramètres de configuration sont enregistrés dans le fichier /etc/postfix/main.cf. Par la suite si vous voulez modifier un paramètre en particulier, vous pouvez soit utiliser une commande, soit le changer manuellement dans le fichier.

  1. Configurez Postfix pour qu'il demande une authentification (SMTP AUTH) en utilisant SASL (saslauthd) :

    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'
    

    Ouvrez le fichier /etc/postfix/sasl/smtpd.conf et ajoutez les lignes suivantes à la fin du fichier :

    pwcheck_method: saslauthd
    mech_list: plain login
    
  2. Ensuite, configurez les certificats numériques pour TLS. Lorsque le système vous posera des questions, suivez les instructions et répondez de manière appropriée.

    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 365 -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
    sudo mv smtpd.key /etc/ssl/private/
    sudo mv smtpd.crt /etc/ssl/certs/
    sudo mv cakey.pem /etc/ssl/private/
    sudo mv cacert.pem /etc/ssl/certs/
    
    [Note]

    Vous pouvez obtenir des certificats numériques à partir d'une autorité de certification. Il est également possible de créer ces certificats vous-même. Consultez la sous-section Créer un certificat autosignée pour plus de détails.

  3. Configurez Postfix pour qu'il utilise un chiffrement par TLS à la fois pour les courriels entrants et sortants :

    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/ssl/private/smtpd.key'
    postconf -e 'smtpd_tls_cert_file = /etc/ssl/certs/smtpd.crt'
    postconf -e 'smtpd_tls_CAfile = /etc/ssl/certs/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 = courriel.exemple.fr'
    
[Note]

Après avoir exécuté toutes les commandes, le SMTP AUTH est configuré avec postfix. Le certificat auto-signé a été créé pour TLS et il est configuré avec postfix.

Maintenant, le fichier /etc/postfix/main.cf doit ressembler à ça.

La configuration initiale de postfix est complète. Exécutez la commande suivante pour démarrer le démon postfix :

          
            sudo /etc/init.d/postfix start
          
        

Le démon postfix est maintenant installé, configuré et fonctionne correctement. Postfix prend en charge SMTP AUTH comme défini dans la RFC2554. Il est basé sur SASL. Cependant, il est toujours nécessaire de paramétrer l'authentification SASL avant de pouvoir utiliser SMTP.

Configuration de SASL

Libsasl2, sasl2-bin et libsasl2-modules sont nécessaire pour activer l'authentification (SMTP AUTH) via SASL. Vous pouvez installer ces applications si vous ne les avez pas déjà installées.

sudo apt-get install libsasl2 sasl2-bin

Quelques modifications sont nécessaires pour que tout cela fonctionne correctement. Comme Postfix s'exécute dans un environnement restreint au répertoire /var/spool/postfix, SASL à besoin d'être configuré pour qu'il s'exécute dans la fausse racine ( /var/run/saslauthd devient /var/spool/postfix/var/run/saslauthd ) :

sudo mkdir -p /var/spool/postfix/var/run/saslauthd
sudo rm -rf /var/run/saslauthd

Pour activer saslauthd, éditez le fichier /etc/default/saslauthd, et modifiez ou ajoutez le paramètre START. Afin de configurer saslauthd pour qu'il s'exécute dans une fausse racine, ajoutez les paramètres PWDIR, PIDFILE et PARAMS. Pour finir, configurez le paramètre MECHANISMS selon votre souhait. Le fichier doit ressembler à cela :

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

PWDIR="/var/spool/postfix/var/run/saslauthd"
PARAMS="-m ${PWDIR}"
PIDFILE="${PWDIR}/saslauthd.pid"

# 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"
[Note]

Si vous le préférez, vous pouvez utiliser shadow au lieu de pam. Cela sélectionne le transfert des mots de passe haché par MD5, ce qui est parfaitement sûr. Le nom d'utilisateur et le mot de passe nécessaires pour l'authentification seront ceux des utilisateurs du système que vous utilisez sur le serveur.

Ensuite, mettez à jour l'"état" dpkg de /var/spool/portfix/var/run/saslauthd. Le script d'initialisation de saslauthd utilise ce paramètre pour créer le répertoire manquant avec les permissions et le propriétaire appropriés :

dpkg-statoverride --force --update --add root sasl 755 /var/spool/postfix/var/run/saslauthd

Tests

La configuration de SMTP AUTH est complète. Il est maintenant temps de démarrer et de tester la configuration. Vous pouvez exécuter la commande suivante pour démarrer le démon SASL :

          
            sudo /etc/init.d/saslauthd start
          
        

Pour vérifier si SMTP-AUTH et TLS fonctionnent correctement, exécutez la commande suivante :

          
            telnet courriel.exemple.fr 25
          
        

Après avoir établi la connexion au serveur de courriel postfix, saisissez :

ehlo courriel.exemple.fr

Si vous voyez les lignes suivantes parmi d'autres, alors tout fonctionne correctement. Saisissez quit pour quitter.

250-STARTTLS
250-AUTH LOGIN PLAIN
250-AUTH=LOGIN PLAIN
250 8BITMIME