Table des matières

, , , , , , , ,

Installer un serveur de mail authentifié

Installation de postfix en mode TLS permettant :

Prérequis

L'installation se fait sur une debian lenny a jour. Tous les logiciels installés sont disponbles en paquet debian dans les depôts officiels. Ce tutorial est cependant adaptable à d'autres distributions.

Installation des paquets

apt-get install postfix libsasl2-2 libsasl2-modules sasl2-bin procmail

Choisir le mode “Site internet” à l'installation de postfix, même si nous allons changer le fichier de configuration de postfix généré lors de cette installation.

Configuration initiale

On va supposer ici que votre domaine est mondomaine.com.
La machine enverra mail.mondomaine.com comme nom de serveur mail (et qui doit donc etre resolvable en DNS depuis le monde extérieur sous peine de voir vos mails refusés par les autres serveurs)
Les certificats SSL seront générés pour smtp.mondomaine.com

toute modification sur ce fichier doit etre suivie de l'exeution de la commande
postmap /etc/postfix/windows_virus_checks
toute modification sur ce fichier doit être suivie de l'execution de la commande
postmap /etc/postfix/helo_access
Pour la création initiale du maildir, vous pouvez utiliser la commande suivante :
# maildirmake.dovecot /var/mail/monUtilisateur

Configuration de l'authentification SASL

Fin de l'installation

Il ne reste plus qu'a (re)démarrer tous ces services pour finir l'installation :

/etc/init.d/saslauthd restart
/etc/init.d/postfix restart

Vous n'avez ensuite plus qu'a configurer votre client mail pour utiliser ce serveur SMTP en TLS.

Un peu plus loin

Eviter encore un peu les SPAMS

Dans la configuration choisie, par défaut le nom de votre domaine apparait dans la banière de connexionn SMTP. Le spammeurs peuvent (en ne se gènent pas pour le faire :p ) donc vous envoyer des mails a n'importe-quoi@cedomaine, qui surchargeront inutilement votre serveur.

Une parade simple est donc de remplacer dans le fichier /etc/postfix/main.cf

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)

par une valeur ne comportant pas $myhostname, comme par exemple :

smtpd_banner = bienvenue sur mon serveur de courrier

Scanner les mails en utilisant un antivirus et un anti spam

Je vous conseille la lecture de cet (excellent :p) article : Configurer un antivirus et antispam sur votre serveur de mail

Un serveur de mail compatible IPv6

Pour rendre votre serveur mail compatible IPv6, il vous faut :

Attention ceci n'est pas une liste par ordre de préférence, mais une liste tout court : le paramètre réel de préférence est smtp_address_preference … mais en fait ca n'est pas une préférence non plus : on peut forcer soit ipv4, soit ipv6 mais avec une valeur à any postfix utilise au choix ipv4 ou ipv6 en alternance selon son humeur et l'alignement des planètes
Attention à ne rajouter ici que vos réseaux internes ipv6, vous n'en avez donc peut être aucun à rajouter en dehors du réseau loopback [::1]/128
Il faut bien sur adapter ces adresses pour mettre les vôtres

Toujours un peu plus loin : contourner le blocage du port 25 chez tout plein de FAI

Pour lutter contre le spam plein de FAI ont l'extreme bonne idée de bloquer le port 25 en sortie depuis leur réseau vers les autres. C'est une bonne idée qui ne vous permet plus en revanche d'utiliser votre serveur de mail pour envoyer des mails depuis votre thunderbird fétiche lorsque vous vous déplacez ;).

Du coup on va utiliser le port “submission” (587) sur lequel on va exiger une authentification pour nous permettre d'envoyer nos mails.

Cette configuration s'effectue dans le fichier /etc/postfix/main.cf : décommenter/ajouter les lignes suivantes :

submission inet n       -       -       -       -       smtpd
  -o smtpd_tls_security_level=encrypt
  -o smtpd_sasl_auth_enable=yes
  -o smtpd_client_restrictions=permit_sasl_authenticated,reject
  -o milter_macro_daemon_name=ORIGINATING
  -o syslog_name=postfix/submission
On voit que l'on passe certaines options comme exiger l’authentification mais aussi un syslog_name explicite pour clarifier les logs

Il ne reste plus ensuite qu'à redémarrer postfix :

# /etc/init.d/postfix restart

On eut ensuite vérifier qu'il écoute bien sur le port 587 avec netstat, ce qui devrait vous donner un résultat similaire à :

# netstat -tulpen | grep master
tcp        0      0 127.0.0.1:10025         0.0.0.0:*               LISTEN      0          179608558   28748/master    
tcp        0      0 0.0.0.0:587             0.0.0.0:*               LISTEN      0          179608461   28748/master    
tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      0          179608453   28748/master    
tcp6       0      0 :::587                  :::*                    LISTEN      0          179608463   28748/master    
tcp6       0      0 :::25                   :::*                    LISTEN      0          179608455   28748/master    

Une fois votre firewall troué sur ce port 587, vous devriez être capable modulo une configuration de votre client mail (changer le port 25 que vous deviez avoir par ce nouveau port 587 concernant le SMTP sortant) d'envoyer des mails depuis n'importe quel FAI

Références