Starbridge Corp

Installation Serveur Mail Postfix, Amavisd, Mysql, Spamassassin, Dspam, Dovecot

samedi 19 mai 2007 par tonio

Mise à jour du 17/08/2010

Le système sur lequel est basé ce document est une DEBIAN stable (Lenny). La version ancienne Stable (Etch) à la date de rédaction présente quelques différences sur certains paquets (changement de nom lors des montées de version : voir le site Debian pour les versions équivalentes) mais cela n’entraîne aucun problème dans les fonctionnalités. Le tuto est aussi compatible avec la version Testing.

Par souci de clarté, on a détaillé chaque action le plus précisement possible, et ce pour ne pas réduire le tuto à une simple succession de commandes. Mais cela peut se révéler parfois fastidieux de créer un fichier en copier/coller puis de modifier le mot de passe. (surtout quand il faut modifier plusieurs occurences).
C’est pour cela que l’on trouvera en note en pied de page les commandes rapides pour exécuter certaines actions longues.
Un hyperlien avec un numéro est le signe de l’existence d’une commande rapide. Pratique lorsque l’on refait le tuto (ou pour les fainéants !)

Ce tuto fonctionne également sous Ubuntu mais certains paquets présentent de légères différences. On essaiera de les indiquer si possible.

On prendra comme base pour l’exemple le domaine starbridge.org et le hostname du serveur de mail sera spike.

On met le système à jour :

aptitude update
aptitude dist-upgrade

On vérifie les fichiers :

  • /etc/hostname :
  • /etc/hosts :

 Cache DNS Local

Le fonctionnement d’un serveur de mail nécessite l’utilisation intensive de requêtes DNS. Pour des raisons de performances, il est très fortement conseillé d’installer un cache DNS local.

aptitude install bind9

La configuration de base sous Debian fournie un serveur cache (on peut bien sur le configurer pour gérer son domaine local voire son domaine public mais ce n’est pas le sujet de cet article).

On modifie le /etc/resolv.conf pour pointer en local :

on relance le serveur DNS :

/etc/init.d/bind9 restart

Puis on teste la résolution avec nslookup ou dig

nslookup

 >server

doit retourner :

Default server: 127.0.0.1
Address: 127.0.0.1#53

puis :

>yahoo.fr

La résolution doit se faire correctement.

On installe ensuite les outils pour la compilation, ils seront nécessaires tout au long de l’installation :

aptitude install bzip2 gcc libpcre3-dev libpcre++-dev courier-authlib-dev g++ libtool libmysqlclient15-dev make libssl-dev automake autoconf

 Postfix et Mysql

aptitude install postfix postfix-mysql mysql-client-5.0 mysql-server-5.0 courier-authdaemon courier-authlib-mysql libsasl2-2 libsasl2-modules sasl2-bin libpam-mysql openssl ntp tmpreaper

note : la version debian testing installera par défaut mysql 5.1. Pour Lenny il faudra utiliser les backports si on souhaite cette version (indispensable si on veut partitionner des tables)

D’autre paquets vont s’installer en même temps. L’ancien MTA exim4 sera désintallé.

Note : pour les questions de l’installeur Debian :

  • postfix configuration : SITE INTERNET. Pour le reste on répond par défaut.

On installe apache + php5 pour gérer plus tard le tout avec l’interface postfixadmin.

aptitude install apache2 libapache2-mod-php5 php5-mysql

Note : Il est fortement conseillé d’installer le SSL avec Apache pour sécuriser les échanges. Cette configuration sera détaillée plus loin lors de l’installation de Postfixadmin.

Pour ceux qui le préfère, on peut tout de suite installer Phpmyadmin pour effectuer l’étape suivante. (on ne détaillera pas cette installation, en dehors du scope de ce document)

On passe donc à la création de la base sql Postfix :

Note : Si l’on a mis un password lors de l’installation du paquet mysql, il faut sauter la première commande ci dessous et exécuter directement la seconde.

mysqladmin -u root password '*****'
mysqladmin -u root --password='*****' create postfix

Création de l’user postfix :

$ mysql -u root -p
Enter password:
GRANT ALL PRIVILEGES ON postfix.* TO "postfix"@"localhost" IDENTIFIED BY '******';

On crée les tables suivantes dans la base Postfix :

Evidemment on modifie la commande sed pour inclure son domaine.

wget http://www.starbridge.org/spip/doc/Procmail/postfix/postfix.sql
sed -i 's/starbridge.org/toto.com/g' postfix.sql
mysql -u root -p < postfix.sql

Explications : Seules 3 tables sont nécessaires à Postfix. Le reste est pour l’interface Postfixadmin que l’on installera plus tard.

Le password (MD5) est "secret"

Le premier INSERT permet à Postfix de savoir que ce domaine est virtuel et qu’il doit donc le gérer.

Le 3ème INSERT est un alias virtuel pointant vers un user de la table mailbox. Cet alias vers lui même sera utilisé par Postfixadmin.

le 4ème INSERT est un simple alias virtuel.

Le 7ème INSERT est un compte (boite email) virtuel, qui utilise un mot de passe encrypté en MD5.

Les deux derniers INSERT permettent de créer le superadministrateur que l’on utilisera plus tard dans Postfixadmin.

 Paramétrage de Postfix

Note : on remarquera que l’on laisse Postfix chrooté et que l’on utilise le daemon proxy pour communiquer avec le socket de Mysql.

On remplace tout le /etc/postfix/main.cf par le contenu ci dessous :

On modifie le /etc/postfix/master.cf comme ci dessous :

On crée le groupe et le user vmail avec l’uid et gid 20001, ainsi que le répertoire des mails :

groupadd -g 20001 vmail
useradd -g vmail -u 20001 vmail -d /home/virtual -m

On sécurise :

chown -R vmail: /home/virtual
chmod 770 /home/virtual

On crée les fichiers d’appel des tables par Postfix : (la commande sed permet de specifier votre password d’accès à la base, dans l’exemple ici c’est toto)

cd /etc/postfix
wget http://www.starbridge.org/spip/doc/Procmail/postfix/mysql_virtual_alias_maps.cf
wget http://www.starbridge.org/spip/doc/Procmail/postfix/mysql_virtual_domains_maps.cf
wget http://www.starbridge.org/spip/doc/Procmail/postfix/mysql_virtual_mailbox_maps.cf
wget http://www.starbridge.org/spip/doc/Procmail/postfix/mysql_relay_domains_maps.cf
wget http://www.starbridge.org/spip/doc/Procmail/postfix/mysql_relay_recipients_maps.cf
wget http://www.starbridge.org/spip/doc/Procmail/postfix/mysql_virtual_alias_domain_maps.cf
wget http://www.starbridge.org/spip/doc/Procmail/postfix/mysql_virtual_alias_domain_catchall_maps.cf
wget http://www.starbridge.org/spip/doc/Procmail/postfix/mysql_virtual_alias_domain_mailbox_maps.cf
wget http://www.starbridge.org/spip/doc/Procmail/postfix/mysql_transport.cf
wget http://www.starbridge.org/spip/doc/Procmail/postfix/mysql_transport2.cf
sed -i 's/\*\*\*\*/toto/g' mysql_virtual_alias_maps.cf mysql_virtual_domains_maps.cf mysql_virtual_mailbox_maps.cf mysql_relay_domains_maps.cf mysql_relay_recipients_maps.cf mysql_virtual_alias_domain_maps.cf mysql_virtual_alias_domain_catchall_maps.cf mysql_virtual_alias_domain_mailbox_maps.cf mysql_transport.cf mysql_transport2.cf

On sécurise le tout :

chmod 640 /etc/postfix/mysql_*
chgrp postfix /etc/postfix/mysql_*

HURRICANe Pro

HURRICANe Pro


Mots-clés

Forum

Accueil du site | Contact | Plan du site | | Statistiques | visites : 212155

Suivre la vie du site fr  Suivre la vie du site HowTo Mail   ?

Site réalisé avec SPIP 2.1.1 + AHUNTSIC

Creative Commons License