Fermer

Installation d’un serveur de mail : Postfix + POP3/IMAP4 + MySQL

Notes Préliminaires

Le tutoriel est basé sur une Debian Etch Wheezy Squeeze Wheezy – stable. Il faut avant de continuer ce tutoriel, vérifier que vous avez à votre disposition une Debian disposant d’une installation standard et basique avec Apache, PHP5, MySQL et phpMyAdmin déjà installé, configuré et fonctionnel sur la machine.

Le système est configuré pour utiliser une adresse IP statique. J’utiliserais par la suite : 217.70.178.216 comme adresse IP et mx.enguehard.info comme nom de domaine.

Installer Postfix, Courier, Saslauthd

On dois répondre à quelques questions :

Type de configuration :
Site Internet

Nom de courrier :
mx.enguehard.info

Faut-il créer les répertoires nécessaires à l’administration web ?
Non

Base de données

Créer rapidement un utilisateur root avec le mot de passe gntmmjgqncly

Création de la base de Données MySQL pour les paquets Postfix et Courier :

Ensuite on va sur le shell de MySQL :

On créer un utilisateur nommé gestion avec le mot de passe gestion_password avec les droits nécessaires pour utiliser les tables dans la base gestion. Cet utilisateur sera utilisé par Postfix et Courrier pour se connecter à la base de données.

Ensuite on créer, les bases de données dont Postfix et Courier vont avoir besoin :

On est de retour sur le shell Linux.

La table domains stocke chaque domaine virtuel dont Postfix recevra le courrier.(e.g. example.com).

La table forwardings donne la liste des alias. Par exemple, forward les mails de info@example.com vers sales@example.com

La table users stocke tous les utilisateurs virtuels et les mots de passe (encryptés) et les quotas de chaque boîte mail. (dans l’exemple, la valeur par défaut est de 10485760 octets qui correspondant à 10 Mo).

La table optionnelle transport est à utiliser pour les utilisateurs avancés. Il permet de transférer les mails d’un utilisateur, d’un domaine entier ou tous les mails vers un autre serveur. Exemple :

Cet exemple transfère tous les email de example.com via le protocole SMTP vers le serveur ayant l’adresse IP 1.2.3.4 (les crochets indique de ne pas chercher un enregistrement MX dans le DNS ce qui n’aurait pas de sens sur une adresse IP…). Si on utiliser un nom de domaine pleinement qualifié, il ne faut pas utiliser les crochets.

La table relay donne la liste des domaines relayés. A utiliser principalement sur un serveur secondaire.

Configurer Postfix

Modifions les 7 fichiers de configuration relatif à la base de données MySQL

On change les permissions sur le groupe de fichiers crées :

Maintenant on crée un utilisateur et un groupe nommé vmail vmail avec le home positionné sur /home/vmail. C’est l’emplacement ou seront stockés toutes les boîtes e-mails.

Modifions la configuration de Postfix. N’oubliez pas de remplacer server1.example.com par un nom de domaine valide ; sinon Postfix ne pourra pas tourner correctement.

Création du certificat SSL dont on a besoin pour le TLS :

On change la permission sur certificat smtp.key :

Configurer Saslauthd

Premièrement, créer le répertoire :

Ajouter l’utilisateur sasl à l’utilisateur postfix

Ensuite éditer /etc/default/saslauthd. Mettre START à yes et changer la ligne OPTIONS= »-c » en OPTIONS= »-c -m /var/spool/postfix/var/run/saslauthd -r » :

Ensuite créer le fichier /etc/pam.d/smtp. Il dois contenir ces 2 lignes (vérifiez qu’ils contiennent bien le bon utilisateur et mot de passe MySQL)

Ensuite il faut créer un fichier /etc/postfix/sasl/smtpd.conf comme suit (modifier les informations MySQL) :

Il faut ensuite redémarrer Postfix et Saslauthd :

Lancer postfix check afin de vérifier les erreurs et les warnings.

Si vous avez des paramètres inutilisés, vous pouvez les commenter directement dans le fichier /etc/main.cf

Remarque : Le service étant chrooter dans le répertoire /var/spool/postfix ; la commande “testsaslauthd -u tata-gisele@enguehard.info -p acfgmnortuwx” doit retourner : “connect() : No such file or directory”

Configurer Courier

Dans un premier temps, il faut que le serveur Courier s’identifie à la base de donnée MySQL. Éditons le fichier /etc/courier/authdaemonrc pour modifier la variable authmodulelist qui indique la façon dont s’identifie le serveur.

Ensuite faisons, une copie de sauvegarde (on ne sais jamais ; n’est ce pas Vincent 😉 )

Ouvrir le fichier /etc/courier/authmysqlr pour y mettre les lignes suivantes (pensez à modifier les infos de MySQL) :

Ensuite redémarrer tous les serveurs (pop, popssl, imap, auth, pop-ssl) courier :

Vérifier le bon fonctionnement en lançant :

Vous devriez vous connecter au shell POP3 du serveur courier. Il dois indiquer +OK. Tapez quit pour quitter le shell.

Modifier le fichier /etc/aliases

Maintenant éditons le fichier /etc/aliases. Vérifiez que postmaster pointe bien sur root et que root sur votre nom d’utilisateur ou une adresse email.

Ensuite il faut mettre à jour les aliases en tapant la commande :

Ensuite pour prendre en compte toutes les modifications, il faut redémarrer postfix :

Installer amavisd-new, SpamAssassin et ClamAV

Pour installer tous les paquets, il faut lancer la commande suivante :

Après l’installation, nous devons configurer amavisd-new. La configuration est séparé dans plusieurs fichiers qui sont dans le répertoire /etc/amavis/conf.d/.

Modifions le fichier /etc/amavis/conf.d/15-content_filter_mode en dé-commentant @bypass_virus_checks_maps et la ligne @bypass_spam_checks_maps:

Ensuite éditons le fichier /etc/amavis/conf.d/50-user pour ajouter la ligne $pax=’pax’; dans le milieu du fichier :

Après ces modifications, il faut ajouter l’utilisateur clamav au groupe amavis. et redémarrer les serveurs Amavis et ClamAV :

Configurons maintenant Postix afin qu’il passe les emails entrants à amavis-newd :

Ajoutons les lignes de configuration d’amavis dans les fichiers de configuration de Postfix :

Et redémarrons Postfix :

Vérifions que tous les services sont lancés en tapant la commande :

On devrait voir Postfix écouter sur le port 25 (smtp) et sur le port 100025 et amavisd-new sur le port 100024

Installer Razor, Pyzor, DCC et configurer SpamAssassin

Razor, Pyzor et DCC sont des filtres anti-spams qui utilise des filtres collaboratifs. Pour installer ces paquets :

Indiquons à SpamAssassin d’utiliser ces programmes en éditant le fichier /etc/spamassassin/local.cf et en rajoutant les lignes suivantes :

Notifications de dépassements de Quota

Si l’on souhaite recevoir des notifications de dépassements de quota, il faut rajouter un script.

Ouvrir le fichier /usr/local/sbin/quota_notify et modifier quelques variables :

Ensuite, il faut programmer le script dans la crontab :

Tester Postfix

Pour voir si Postfix est prêt pour l’identification et le TLS, il faut lancer la commande :

Et une fois la connexion établie, taper :

On dois voir apparaître ces 2 lignes :

La fenêtre de connections :

Pour quitter, le shell SMTP, il faut taper la commande :

Pour revenir au shell Linux

Peupler et tester la base de données

Connections nous à la base de données MySQL en ligne de commande :

Créons les entrées dans la table domains et users :

A noter que le mot de passe en encrypter avec la fonction ENCRYPT() de MySQL
Exemple d’autres entrées dans les autres tables :

Pour quitter le shell de MySQL, il faut taper la commande :

Explications sur la table forwardings :

Explications sur la table transport :

Tester le fonctionnement

  • Créer un compte en POP
  • Créer un compte en IMAP
  • Envoyer un mail via smtp:25
  • Envoyer un mail via smtp:2525
  • Créer un dossier en IMAP

Webmails

Installation des webmails

Squirrelmail

Configuration de squirrelmail : ajout de plugins, de la langues par défaut,…

Créer un fichier de configuration Apache /etc/apache2/sites-enabled/squirrelmail :

Redémarrer Apache, et se connecter via http://ip.du.serveur/squirrelmail/

Ilohamail

On corrige l’erreur situé le fichier /etc/IlohaMail/conf.php au alentour de la ligne 401, il y a un slash à la fin de la ligne.

Restreindre l’accès à notre seul serveur ; Indiquez $default_host = « localhost »; dans le fichier /etc/IlohaMail/login.php

Redémarrer Apache, et se connecter via http://ip.du.serveur/IlohaMail/

Page d’accès aux webmails

Création d’une page avec liens vers les webmail :

Éditer la page /var/www/index.html

Activez le https :

On va faire écouter le serveur Web sur le https ; d’abord activer le SSL et le site par default :

Si problème avec le certificat, il faut le régénérer :

Adresses des webmail :

  • http://mx.enguehard.info/roundcube/
  • http://mx.enguehard.info/squirrelmail/
  • http://mx.enguehard.info/IlohaMail/

Ajouter un transport ‘lent’ pour certains FAI

Dans le fichier /etc/postfix/main.cf, ajoutez :

Dans le fichier /etc/postfix/master.cf, ajoutez :

Peupler la base de données

Redémarrer postfix :

Ajouter un port d’écoute supplémentaire pour l’envoi des mails

Typiquement lorsque le FAI bloque le port 25, il faut pouvoir le contourner. On va donc faire écouter Postfix sur le port 2525 en plus du port par défaut.

Dans le fichier /etc/postfix/master.cf, ajoutez :

Redémarrer postfix :

Activez le port 465 (smtps)

Dans le fichier /etc/postfix/master.cf, dé-commentez les lignes suivantes :

Redémarrer postfix :

Notes

Postfix utilise un système de cache pour le transport des mails. Il peut donc se passer un moment entre le moment ou il y a un changement dans la table de transport et son effet. Pour que les changements soit pris en comptes immédiatement, il faut lancer la commande :

Les log d’erreurs de Postfix peuvent se consulter grâce à la commande :

Les erreurs de configuration de Postfix ou savoir pourquoi Postfix ne démarrent pas peuvent être déterminé grâce à la commande :

Plus d’informations sur le transport des mails grâce à la commande :

Configurer les entrées DNS pour utiliser un serveur de sauvegarde de mail :

Pour spécifier la taille maximale des mails ; dans le fichier /etc/postfix/main.cf

Liens

  • Postfix MTA : http://www.postfix.org/
  • Postfix Quota Patch : http://web.onda.com.br/nadal/
  • phpMyAdmin : http://www.phpmyadmin.net/
  • Debian : http://www.debian.org/
  • Postfix + Quota : http://vhcs.net/new/modules/newbb/viewtopic.php?topic_id=3496&forum=17
  • Mail Passwords Encrypted using saslauthd : http://www.syscp.de/docs/public/contrib/cryptedmailpws
  • Workaround – Tutorial: ISP-style Email Service with Debian-Sarge and Postfix 2.1 : http://workaround.org/articles/ispmail-sarge/
  • HowToForge – Virtual Users And Domains With Postfix, Courier And MySQL (Debian Etch) : http://www.howtoforge.com/virtual_users_and_domains_with_postfix_debian_etch_p6

Laisser un commentaire

Votre adresse email ne sera pas publié. Required fields are marked *