Publié le: 2013-07-31

Introduction

Installation

Je vous conseille d’installer postfix via vos repos ou arbres de port

Configuration simple

De base postfix possède 3 fichiers de configuration :

  • /etc/postfix/dynamicmaps.cf
  • /etc/postfix/main.cf
  • /etc/postfix/master.cf

Nous allons ici nous intéresser uniquement au main.cf

Configurer les domaines SMTP

Postfix étant un serveur SMTP, il convient de définir des domaines pour vos mails. Exemple : machin@gmail.com

Le domaine est dans le cas présent gmail.com

Il convient de définir ce domaine dans deux paramètres postfix.

  • myhostname: le nom d’hôte de la machine courante
  • mydestination: les domaines de destination de vos mail, séparés par une virgule.

Exemple :

mydestination = frostsapphirestudios.com, localhost

Configurer les réseaux d’écoute

Pour plus de sécurité il vaut mieux définir des réseaux particuliers d’écoute. Le champ mynetworks définit la zone d’écoute du serveur SMTP. Postfix étant suffisamment à jour, il est capable d’écouter sur des réseaux IPv6.

Le champ mynetworks remplit cet usage. Défaut : 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128

Ajouter à la suite votre classe d’adresse d’écoute pour pouvoir utiliser le SMTP. Exemple pour la classe B 94.23.0.0/24

mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 94.23.0.0/24

Configurer les interfaces d’écoute

Postfix n’est pas obligé d’écouter à toutes les portes. Vous pouvez spécifier des interfaces d’écoute avec la directive inet_interfaces. Defaut : all Vous souhaitez écouter uniquement l’interface 1 et le localhost ?

inet_interfaces = eth0, lo

Configurer le message de bienvenue SMTP

Bien qu’inutile fonctionnellement, vous pouvez tout de même modifier le message de bienvenue SMTP, notamment pour confondre les potentiels pirates.

La directive smtpd_banner permet ceci.

Exemple:

smtpd_banner = SMTP de machin.com sur openSuse 6.1

Votre serveur SMTP est prêt. Je vous expliquerai ultérieurement comment activer l’identification.

Sécuriser la solution avec du chiffrement

Voici quelques instructions pour préparer STARTTLS et SMTPS. Ceci se fait automatiquement sur le port SMTP classique (25). Tout d’abord générez l’ensemble des certificats nécessaires à la solution, et répondez comme d’habitude aux questions pour le certificat. Celui-ci est autosigné et déchiffré afin de ne pas demander la clé à chaque utilisation de postfix. Il dure 10 ans.

mkdir /etc/postfix/ssl
cd /etc/postfix/ssl/
openssl genrsa -des3 -rand /etc/hosts -out smtpd.key 2048
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 -keyout cakey.pem -out cacert.pem -days 3650

Configurer STARTTLS

STARTTLS s’appuie sur le port par défaut SMTP (25). Nous allons utiliser les certificats précédément générés pour l’implémenter. Ajoutez tout simplement les lignes suivantes:

smtp_use_tls = yes
smtp_tls_note_stattls_offer = yes
smtpd_tls_loglevel = 1
smtpd_use_tls = 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
_random_source = dev:/dev/urandom

Vous configurez ainsi TLS sur le MTU et MTA de postfix, et définissez les certificats à utiliser. La random source permet renforcer la sécurité du cryptage.

Configurer SSL (smtps)

SMTPS est une implémentation de SMTP over SSL. Cela contribue à renforcer encore plus la sécurité. L’implémentation de SMTPS se fait tout d’abord en ajoutant la configuration du paragraphe précédent au main.cf. Ouvrez ensuite le fichier master.cf et décommentez/ajoutez les lignes suivantes:

smtps     inet  n       -       -       -       -       smtpd
  -o smtpd_tls_wrappermode=yes

Redémarrez ensuite le service pour prendre en compte la configuration.