1
Compte rendu serveur Postfix
Sommaire
Connexion SSH page 2
Configuration de la zone du domaine page 2
Postfix anatomy page 2
Début tutoriel page 3
Patch de gestion des Quotas pour Postfix page 6
Reprise du Tutoriel (1) page 11
Problèmes rencontrés page 16
Reprise du Tutoriel (2) page 19
TEST d’envoie/reception mail page 20
Reprise du Tutoriel (3) page 22
Fichiers de Configuration page 26
Conclusion page 31
2 Connexion SSH
ssh root@ip.du.serveur.mail -p 22
ou
ssh ip.du.serveur.mail -l root -p 22
Pwd : password
mysql : root password
mysql :
« postfix » password
Configuration de la zone du domaine
Serveur DNS de la zone à configurer : Entrée « MX »
Postfix anatomy
http://www.porcupine.org/postfix/doc/big-picture.html
3
Postfix
http://www.tutoriels-video.fr/
Installation de Postfix
apt-get install postfix-mysql
root@mail2:/etc/init.d# apt-get install postfix-mysql Lecture des listes de paquets... Fait
Construction de l'arbre des dépendances Lecture des informations d'état... Fait
Les paquets supplémentaires suivants seront installés : postfix
Paquets suggérés :
procmail postfix-pgsql postfix-ldap postfix-pcre sasl2-bin dovecot-common resolvconf postfix-cdb mail-reader postfix-doc
Les NOUVEAUX paquets suivants seront installés : postfix postfix-mysql
0 mis à jour, 2 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 1 331 ko dans les archives.
Après cette opération, 3 552 ko d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer [O/n] ?
Réception de : 1 http://ubuntu.mirrors.ovh.net/ftp.ubuntu.com/ubuntu/ precise-updates/main postfix amd64 2.9.3-2~12.04.4 [1 317 kB]
Réception de : 2 http://ubuntu.mirrors.ovh.net/ftp.ubuntu.com/ubuntu/ precise-updates/main postfix-mysql amd64 2.9.3-2~12.04.4 [14,2 kB]
1 331 ko réceptionnés en 0s (7 815 ko/s) Préconfiguration des paquets...
Selecting previously unselected package postfix.
(Lecture de la base de données... 34701 fichiers et répertoires déjà installés.) Dépaquetage de postfix (à partir de .../postfix_2.9.3-2~12.04.4_amd64.deb) ...
Selecting previously unselected package postfix-mysql.
Dépaquetage de postfix-mysql (à partir de .../postfix-mysql_2.9.3-2~12.04.4_amd64.deb) ...
Traitement des actions différées (« triggers ») pour « man-db »...
Traitement des actions différées (« triggers ») pour « ureadahead »...
Traitement des actions différées (« triggers ») pour « ufw »...
Paramétrage de postfix (2.9.3-2~12.04.4) ...
Adding group `postfix' (GID 115) ...
Done.
Adding system user `postfix' (UID 107) ...
4
Adding new user `postfix' (UID 107) with group `postfix' ...
Not creating home directory `/var/spool/postfix'.
Creating /etc/postfix/dynamicmaps.cf
Adding tcp map entry to /etc/postfix/dynamicmaps.cf Adding sqlite map entry to /etc/postfix/dynamicmaps.cf Adding group `postdrop' (GID 116) ...
Done.
setting myhostname: mail2.abware_testing.com setting alias maps
setting alias database
changing /etc/mailname to mail2.abware_testing.com setting myorigin
setting destinations: mail2.abware_testing.com, localhost.abware_testing.com, , localhost setting relayhost:
setting mynetworks: 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128 setting mailbox_size_limit: 0
setting recipient_delimiter: + setting inet_interfaces: all
/etc/aliases does not exist, creating it.
WARNING: /etc/aliases exists, but does not have a root alias.
Postfix is now set up with a default configuration. If you need to make changes, edit
/etc/postfix/main.cf (and others) as needed. To view Postfix configuration values, see postconf(1).
After modifying main.cf, be sure to run '/etc/init.d/postfix reload'.
Running newaliases
* Stopping Postfix Mail Transport Agent postfix [ OK ]
* Starting Postfix Mail Transport Agent postfix [ OK ]
Paramétrage de postfix-mysql (2.9.3-2~12.04.4) ...
Adding mysql map entry to /etc/postfix/dynamicmaps.cf
Traitement des actions différées (« triggers ») pour « libc-bin »...
ldconfig deferred processing now taking place
5
Création des tables SQL pour Postfix
On a besoin de créer 3 tables pour Postfix :
1.Une table « domaines » qui contient la liste des noms de domaine hébergés sur le serveur 2.Une table « comptes » qui contient toutes les adresses emails virtuelle de la forme
« contact@nomdedomaine.tld »
3.Une table « alias » qui contient différents alias email que nous n’utiliserons pas.
mysql --user=root -p
mysql> create database postfix;
Pour vérifier que votre base de données a bien été créée, utilisez la commande suivante : mysql> show databases;
Création de l'utilisateur postfix dans mysql
mysql> CREATE USER 'postfix'@ 'localhost' IDENTIFIED BY 'VOTRE_PASS_POSTFIX_MYSQL';
mysql> GRANT USAGE ON * . * TO 'postfix'@'localhost' IDENTIFIED BY ' password';
Création de la base de donnée nommée postfix
mysql> CREATE DATABASE `postfix` ;
mysql> GRANT ALL PRIVILEGES ON `postfix` . * TO 'postfix'@ 'localhost';
mysql> FLUSH PRIVILEGES;
Si votre base de données a été créée avec succès, vous pouvez désormais la sélectionner comme base à utiliser : Si jamais le mot de passe root ne peut être changé voici une petite procédure pour pouvoir le faire:
/etc/init.d/mysql stop rm -Rf /var/lib/mysql/*
mysql_install_db /etc/init.d/mysql start
mysqladmin -u root password 'xxxxxxxx'
Insertion des tables dans la base de données USE postfix;
CREATE TABLE `domaines` (
`domaine` varchar(255) NOT NULL default '', `etat` tinyint(1) NOT NULL default '1', PRIMARY KEY (`domaine`)
) ENGINE=MyISAM;
CREATE TABLE `comptes` (
6 `email` varchar(255) NOT NULL default '',
`password` varchar(255) NOT NULL default '', `quota` int(10) NOT NULL default '0',
`etat` tinyint(1) NOT NULL default '1', `imap` tinyint(1) NOT NULL default '1', `pop3` tinyint(1) NOT NULL default '1', PRIMARY KEY (`email`)
) ENGINE=MyISAM;
CREATE TABLE `alias` (
`source` varchar(255) NOT NULL default '', `destination` text NOT NULL,
`etat` tinyint(1) NOT NULL default '1', PRIMARY KEY (`source`)
) ENGINE=MyISAM;
quit;
ou par phpmyadmin
• creation base « postfix »
• ajout utilisateur « postfix » h84GadfeXXUfUBYy
• lignes SQL dans l'onglet
Patch de gestion des Quotas pour Postfix
3 Apply The Quota Patch To Postfix
We have to get the Postfix sources, patch it with the quota patch, build new Postfix .deb packages and install those .debpackages:
apt-get build-dep postfix cd /usr/src
apt-get source postfix
(Make sure you use the correct Postfix version in the following commands. I have Postfix 2.9.3 installed.
You can find out your Postfix version by running postconf -d | grep mail_version
The output should look like this:
root@server1:/usr/src# postconf -d | grep mail_version mail_version = 2.9.3
milter_macro_v = $mail_name $mail_version
root@server1:/usr/src#
)
wget http://vda.sourceforge.net/VDA/postfix-vda-v11-2.9.3.patch
cd postfix-2.9.3
patch -p1 < ../postfix-vda-v11-2.9.3.patch
Next open debian/rules and change DEB_BUILD_HARDENING from 1 to 0:
vi debian/rules
7 [...]
export DEB_BUILD_HARDENING=0 [...]
If you don't do this, your build will fail with the following error messages:
maildir.c: In function âdeliver_maildirâ:
maildir.c:974:17: error: format not a string literal and no format arguments [- Werror=format-security]
maildir.c:977:17: error: format not a string literal and no format arguments [- Werror=format-security]
maildir.c:983:17: error: format not a string literal and no format arguments [- Werror=format-security]
maildir.c:986:17: error: format not a string literal and no format arguments [- Werror=format-security]
maildir.c: In function âsql2fileâ:
maildir.c:404:25: warning: ignoring return value of âreadâ, declared with attribute warn_unused_result [-Wunused-result]
maildir.c:417:26: warning: ignoring return value of âwriteâ, declared with attribute warn_unused_result [-Wunused-result]
cc1: some warnings being treated as errors make: *** [maildir.o] Error 1
make: Leaving directory `/usr/src/postfix-2.9.1/src/virtual' make[1]: *** [update] Error 1
make[1]: Leaving directory `/usr/src/postfix-2.9.1' make: *** [build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2 root@server1:/usr/src/postfix-2.9.1#
Now we can build the new Postfix .deb packages:
dpkg-buildpackage
Now we go one directory up, that's where the new .deb packages have been created:
cd ..
The command ls -l
shows you the available packages:
root@server1:/usr/src# ls -l total 6932
drwxr-xr-x 24 root root 4096 Apr 27 11:20 linux-headers-3.2.0-23
drwxr-xr-x 7 root root 4096 Apr 27 11:20 linux-headers-3.2.0-23-generic drwxr-xr-x 18 root root 4096 May 7 15:57 postfix-2.9.1
-rw-r--r-- 1 root root 3814 May 7 15:58 postfix_2.9.1-4_amd64.changes -rw-r--r-- 1 root root 1497792 May 7 15:58 postfix_2.9.1-4_amd64.deb -rw-r--r-- 1 root root 246141 May 7 15:51 postfix_2.9.1-4.diff.gz -rw-r--r-- 1 root root 1492 May 7 15:51 postfix_2.9.1-4.dsc -rw-r--r-- 1 root root 3768329 Mar 22 05:05 postfix_2.9.1.orig.tar.gz -rw-r--r-- 1 root root 46620 May 7 15:58 postfix-cdb_2.9.1-4_amd64.deb -rw-r--r-- 1 root root 160196 May 7 15:58 postfix-dev_2.9.1-4_all.deb -rw-r--r-- 1 root root 1080772 May 7 15:58 postfix-doc_2.9.1-4_all.deb -rw-r--r-- 1 root root 55478 May 7 15:58 postfix-ldap_2.9.1-4_amd64.deb -rw-r--r-- 1 root root 48550 May 7 15:58 postfix-mysql_2.9.1-4_amd64.deb -rw-r--r-- 1 root root 48718 May 7 15:58 postfix-pcre_2.9.1-4_amd64.deb -rw-r--r-- 1 root root 48686 May 7 15:58 postfix-pgsql_2.9.1-4_amd64.deb
8
-rw-r--r-- 1 root root 55009 Apr 11 14:54 postfix-vda-v11-2.9.1.patch root@server1:/usr/src#
Pick the postfix and postfix-mysql packages and install them like this:
dpkg -i postfix_2.9.3-4_amd64.deb postfix-mysql_2.9.3-4_amd64.deb
root@mail2:/usr/src# ll total 6916
drwxr-xr-x 3 root root 4096 janv. 16 20:59 ./
drwxr-xr-x 10 root root 4096 avril 24 2012 ../
drwxr-xr-x 18 root root 4096 janv. 16 20:58 postfix-2.9.3/
-rw-r--r-- 1 root root 3825 janv. 16 20:59 postfix_2.9.3-2~12.04.4_amd64.changes -rw-r--r-- 1 root root 1506706 janv. 16 20:59 postfix_2.9.3-2~12.04.4_amd64.deb -rw-r--r-- 1 root root 228442 janv. 16 20:55 postfix_2.9.3-2~12.04.4.diff.gz -rw-r--r-- 1 root root 1524 janv. 16 20:55 postfix_2.9.3-2~12.04.4.dsc -rw-r--r-- 1 root root 3760555 mai 30 2012 postfix_2.9.3.orig.tar.gz
-rw-r--r-- 1 root root 46994 janv. 16 20:59 postfix-cdb_2.9.3-2~12.04.4_amd64.deb -rw-r--r-- 1 root root 159160 janv. 16 20:59 postfix-dev_2.9.3-2~12.04.4_all.deb -rw-r--r-- 1 root root 1080872 janv. 16 20:59 postfix-doc_2.9.3-2~12.04.4_all.deb -rw-r--r-- 1 root root 56140 janv. 16 20:59 postfix-ldap_2.9.3-2~12.04.4_amd64.deb -rw-r--r-- 1 root root 49074 janv. 16 20:59 postfix-mysql_2.9.3-2~12.04.4_amd64.deb -rw-r--r-- 1 root root 49230 janv. 16 20:59 postfix-pcre_2.9.3-2~12.04.4_amd64.deb -rw-r--r-- 1 root root 49218 janv. 16 20:59 postfix-pgsql_2.9.3-2~12.04.4_amd64.deb -rw-r--r-- 1 root root 55009 janv. 7 14:59 postfix-vda-v11-2.9.3.patch
dpkg -i postfix_2.9.3-2~12.04.4_amd64.deb postfix-mysql_2.9.3-2~12.04.4_amd64.deb
root@mail2:/usr/src# dpkg -i postfix_2.9.3-2~12.04.4_amd64.deb postfix-mysql_2.9.3- 2~12.04.4_amd64.deb
(Lecture de la base de données... 37327 fichiers et répertoires déjà installés.) Préparation du remplacement de postfix 2.9.3-2~12.04.4 (en utilisant postfix_2.9.3- 2~12.04.4_amd64.deb) ...
* Stopping Postfix Mail Transport Agent postfix /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_overquota_bounce=yes
/usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter:
virtual_mailbox_limit_maps=mysql:/etc/postfix/mysql-virtual_quotas.cf /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter:
virtual_maildir_limit_message="La boite mail de votre destinataire est pleine, merci de reessayez plus tard."
/usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter:
virtual_mailbox_limit_override=yes
9
[ OK ] postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_overquota_bounce=yes postconf: warning: /etc/postfix/main.cf: unused parameter:
virtual_mailbox_limit_maps=mysql:/etc/postfix/mysql-virtual_quotas.cf
postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_maildir_limit_message="La boite mail de votre destinataire est pleine, merci de reessayez plus tard."
postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_limit_override=yes postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_overquota_bounce=yes postconf: warning: /etc/postfix/main.cf: unused parameter:
virtual_mailbox_limit_maps=mysql:/etc/postfix/mysql-virtual_quotas.cf
postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_maildir_limit_message="La boite mail de votre destinataire est pleine, merci de reessayez plus tard."
postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_limit_override=yes postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_overquota_bounce=yes postconf: warning: /etc/postfix/main.cf: unused parameter:
virtual_mailbox_limit_maps=mysql:/etc/postfix/mysql-virtual_quotas.cf
postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_maildir_limit_message="La boite mail de votre destinataire est pleine, merci de reessayez plus tard."
postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_limit_override=yes
* Stopping Postfix Mail Transport Agent postfix [ OK ]
Dépaquetage de la mise à jour de postfix ...
Préparation du remplacement de postfix-mysql 2.9.3-2~12.04.4 (en utilisant postfix-mysql_2.9.3- 2~12.04.4_amd64.deb) ...
Dépaquetage de la mise à jour de postfix-mysql ...
Paramétrage de postfix (2.9.3-2~12.04.4) ...
postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes
Postfix configuration was not changed. If you need to make changes, edit /etc/postfix/main.cf (and others) as needed. To view Postfix configuration
10 values, see postconf(1).
After modifying main.cf, be sure to run '/etc/init.d/postfix reload'.
Running newaliases
postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes
* Stopping Postfix Mail Transport Agent postfix [ OK ]
* Starting Postfix Mail Transport Agent postfix postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes
postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes
/usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes
11
/usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_mailbox_extended=yes [ OK ]
Traitement des actions différées (« triggers ») pour « man-db »...
Traitement des actions différées (« triggers ») pour « ureadahead »...
Traitement des actions différées (« triggers ») pour « ufw »...
Paramétrage de postfix-mysql (2.9.3-2~12.04.4) ...
Traitement des actions différées (« triggers ») pour « libc-bin »...
ldconfig deferred processing now taking place
Reprise du Tutoriel (1)
root@mail2:~# apt-get upgrade
Les paquets suivants seront mis à jour : postfix
1 mis à jour, 0 nouvellement installés, 0 à enlever et 0 non mis à jour.
Il est nécessaire de prendre 0 o/1 317 ko dans les archives.
Après cette opération, 197 ko d'espace disque supplémentaires seront utilisés.
Souhaitez-vous continuer [O/n] ? Préconfiguration des paquets...
(Lecture de la base de données... 37328 fichiers et répertoires déjà installés.)
Préparation du remplacement de postfix 2.9.3-2~12.04.4 (en utilisant .../postfix_2.9.3- 2~12.04.4_amd64.deb) ...
* Stopping Postfix Mail Transport Agent postfix [ OK ]
* Stopping Postfix Mail Transport Agent postfix [ OK ]
Dépaquetage de la mise à jour de postfix ...
Traitement des actions différées (« triggers ») pour « man-db »...
12
Traitement des actions différées (« triggers ») pour « ureadahead »...
Traitement des actions différées (« triggers ») pour « ufw »...
Paramétrage de postfix (2.9.3-2~12.04.4) ...
Postfix configuration was not changed. If you need to make changes, edit /etc/postfix/main.cf (and others) as needed. To view Postfix configuration values, see postconf(1).
After modifying main.cf, be sure to run '/etc/init.d/postfix reload'.
Running newaliases
* Stopping Postfix Mail Transport Agent postfix [ OK ]
* Starting Postfix Mail Transport Agent postfix [ OK ]
Traitement des actions différées (« triggers ») pour « libc-bin »...
ldconfig deferred processing now taking place
Configuration de Postfix pour le lier à la BDD /etc/postfix/mysql-virtual_domaines.cf hosts = 127.0.0.1
user = postfix password = password dbname = postfix
select_field = 'virtual' table = domaines
where_field = domaine
additional_conditions = AND etat=1
/etc/postfix/mysql-virtual_comptes.cf hosts = 127.0.0.1
user = postfix password = password dbname = postfix table = comptes
select_field = CONCAT(SUBSTRING_INDEX(email,'@',- 1),'/',SUBSTRING_INDEX(email,'@',1),'/')
where_field = email
additional_conditions = AND etat=1
/etc/postfix/mysql-virtual_aliases.cf hosts = 127.0.0.1
user = postfix password = password
13 dbname = postfix
table = alias
select_field = destination where_field = source
additional_conditions = AND etat=1
/etc/postfix/mysql-virtual_aliases_comptes.cf hosts = 127.0.0.1
user = postfix password = password dbname = postfix table = comptes select_field = email where_field = email
additional_conditions = AND etat=1
/etc/postfix/mysql-virtual_quotas.cf hosts = 127.0.0.1
user = postfix password = password dbname = postfix table = comptes select_field = quota where_field = email
Une fois terminée, je vous recommande de sécuriser un peu tout cela avec ces lignes de commandes : chmod u=rw,g=r,o= /etc/postfix/mysql-virtual_*.cf
chgrp postfix /etc/postfix/mysql-virtual_*.cf
Création de l’utilisateur et groupe vmail
Pour avoir une configuration assez propre et sécurisé, nous pouvons créer un utilisateur et un groupe vmail qui se chargera de gérer/stocker les courriels sur le serveurs. Nous devons préciser des UID et GID précis (5000) car nous en auront besoin plus tard dans un fichier de configuration.
# Créer un groupe vmail avec le gid 5000 groupadd -g 5000 vmail
# Créer un utilisateur vmail avec un uid 5000 et son répertoire perso dans /var/spool/vmail useradd -g vmail -u 5000 vmail -d /var/spool/vmail/ -m
Configuration de Postfix
Maintenant on doit configurer le fichier principal de Postfix. Par défaut le fichier est vide, car nous avons choisi « pas de configuration » pendant l’installation. Comme promis dans la vidéo, voici un exemple de fichier de configuration commenté pour vous expliquer les différentes lignes :
vi /etc/postfix/main.cf
14
# Bannière afficher lorsqu'on se connecte en SMTP sur le port 25
smtpd_banner = $myhostname ESMTP Test $mail_name (Debian/GNU)
# Service qui envoie des notifications "nouveau message"
biff = no
# Desactive la commande SMTP VRFY. Arrête certaine technique pour avoir des adresses email disable_vrfy_command = yes
# Impose au client SMTP de démarrer la session SMTP par une commande Helo (ou ehlo) smtpd_helo_required = yes
# Avec le courier local ça ajoute .NDD aux adresses incomplètes (seulement le nom d'hote) append_dot_mydomain = no
# Le nom de la machine du système de messagerie
# Par défaut c'est host.domain.tld mais on peut mettre un reverse dns myhostname = mail2.abware_testing.com
# Le domaine utilisé par defaut pour poster les message local myorigin = /etc/mailname
# Liste des domaines pour lequel le serveur doit accepter le courrier mydestination = 109.183.135.5, mail2.abware_testing.com, localhost
# Pour effectuer des livraisons de courrier avec un relay (ici non) relayhost =
# Liste des réseaux locaux autorisés
mynetworks = 127.0.0.0/8, ip.du.serveur.mail
# Taille des boîtes au lettre (0 = illimité) mailbox_size_limit = 0
# Séparateur entre le nom d'utilisateur et les extensions d'adresses recipient_delimiter = +
# Interfaces réseaux à écouter (ici toutes) inet_interfaces = all
# Gestion des boites mails virtuelles
# Contient les fichiers qui permettent de relier postfix mysql
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_aliases.cf,mysql:/etc/postfix/mysql- virtual_aliases_comptes.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_domaines.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_comptes.cf
# Le dossier ou seront contenu les mails (=home de l'user vmail) virtual_mailbox_base = /var/spool/vmail/
# L'id du groupe et de l'utilisateur vmail créé précédement virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
# Créer un dossier par comte email virtual_create_maildirsize = yes
# A activer si vous souhaitez ajouter des quotas
15 virtual_mailbox_extended = yes
# Impose les limites au niveau des mails, dans notre cas aucune
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql-virtual_quotas.cf
# Ajouter une limite sur la taille des messages pour les boites virtuelles virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = "La boite mail de votre destinataire est pleine, merci de reessayez plus tard."
virtual_overquota_bounce = yes
# adresses d'expedition smtpd_sender_restrictions = permit_mynetworks,
warn_if_reject reject_unverified_sender
# adresses de destination smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, reject_non_fqdn_recipient
# client
smtpd_client_restrictions = permit_mynetworks
/etc/init.d/postfix restart /etc/init.d/postfix check
# Un petit tour dans les logs aussi cat /var/log/syslog ou tail -fn 40 cat /var/log/mail.log
16 Problèmes rencontrés
1)
root@ubuntu-VirtualBox:/etc/postfix# service postfix check
/usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_overquota_bounce=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter:
virtual_mailbox_limit_maps=mysql:/etc/postfix/mysql-virtual_quotas.cf /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter:
virtual_maildir_limit_message="La boite mail de votre destinataire est pleine, merci de reessayez plus tard."
/usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter: virtual_create_maildirsize=yes /usr/sbin/postconf: warning: /etc/postfix/main.cf: unused parameter:
virtual_mailbox_limit_override=yes
=>
##les erreurs ???
Conclusion de « Patch de gestion des Quotas pour Postfix »
Cela n’a pas marché ; Dû a
• Une mauvaise recompilation du Pach ?
• Non prise en compte du Patch par Postfix ?
• Une mise à jour de Postfix ?
2)
error: open database /etc/aliases.db: No such file or directory Resolu par:
# postfix stop
# newaliases
# postfix start
3)
error: open /etc/postfix/mysql-virtual_aliases_comptes.cf: No such file or directory
=>
erreur de frappe : mv virtual_aliases_comptes.cf /etc/postfix/mysql-virtual_aliases_comptes.cf +chown + chgrp
4)
root@ubuntu-VirtualBox:/etc# postfix start
postfix/postfix-script: warning: not owned by root: /var/spool/postfix/pid postfix/postfix-script: warning: not owned by root: /var/spool/postfix/etc postfix/postfix-script: warning: not owned by root: /var/spool/postfix/etc/ssl postfix/postfix-script: warning: not owned by root: /var/spool/postfix/etc/ssl/certs
17
postfix/postfix-script: warning: not owned by root: /var/spool/postfix/etc/ssl/certs/ca-certificates.crt postfix/postfix-script: warning: not owned by root: /var/spool/postfix/lib
postfix/postfix-script: warning: not owned by root: /var/spool/postfix/lib/i386-linux-gnu postfix/postfix-script: warning: not owned by root: /var/spool/postfix/usr
postfix/postfix-script: warning: not owned by root: /var/spool/postfix/usr/lib
postfix/postfix-script: warning: not owned by root: /var/spool/postfix/usr/lib/zoneinfo postfix/postfix-script: warning: not owned by root: /var/spool/postfix/usr/lib/sasl2
postfix/postfix-script: warning: /var/spool/postfix/etc/resolv.conf and /etc/resolv.conf differ postfix/postfix-script: starting the Postfix mail system
=>
Dû à un problème de droit des dossiers indices :
697 service postfix restart 698 service postfix status 699 cd /var/log/
700 ls -rt
701 tail -f mail.err
702 cd /var/spool/postfix/
703 ll
704 cd public/
705 ll
706 chown postfix.postdrop * 707 ll
708 chown postfix.postdrop . 709 ll
710 service postfix restart 711 service postfix status 712 tail -f mail.err
713 tail -f /var/log/mail.err 714 cd ..
715 chown -R postfix.postdrop * 716 service postfix restart 717 service postfix status
root@ubuntu-VirtualBox:/etc/postfix# ll total 116
drwxr-xr-x 3 root root 4096 déc. 28 11:14 ./
drwxr-xr-x 139 root root 12288 déc. 28 10:52 ../
-rw-r--r-- 1 root root 329 déc. 17 18:52 dynamicmaps.cf -rw-r--r-- 1 root root 2835 déc. 28 11:12 main.cf
-rw-r--r-- 1 root postfix 5531 déc. 17 18:52 master.cf
-rw-r--- 1 root postfix 168 déc. 17 19:24 mysql-virtual_aliases.cf -rw-r--- 1 root postfix 232 déc. 17 19:23 mysql-virtual_comptes.cf -rw-r--- 1 root postfix 170 déc. 17 19:20 mysql-virtual_domaines.cf -rw-r--- 1 root postfix 128 déc. 17 19:27 mysql-virtual_quotas.cf
18 -rw-r--r-- 1 root root 19707 oct. 23 12:10 postfix-files -rwxr-xr-x 1 root root 8729 oct. 23 12:10 postfix-script*
-rwxr-xr-x 1 root root 26498 oct. 23 12:10 post-install*
drwxr-xr-x 2 root root 4096 oct. 23 12:10 sasl/
-rw-r--r-- 1 root root 163 déc. 17 19:26 virtual_aliases_comptes.cf
5)
Jan 17 13:09:01 mail2 postfix/pickup[27915]: AEF262041C: uid=0 from=<root>
Jan 17 13:09:01 mail2 postfix/cleanup[27917]: warning: connect to mysql server 127.0.0.1: Access denied for user 'postfix'@'localhost' (using password: YES)
Jan 17 13:09:01 mail2 postfix/cleanup[27917]: warning: mysql:/etc/postfix/mysql-virtual_aliases.cf lookup error for "root@109.183.135.5"
Jan 17 13:09:01 mail2 postfix/cleanup[27917]: warning: AEF262041C: virtual_alias_maps map lookup problem for root@109.183.135.5 -- deferring delivery
Jan 17 13:09:01 mail2 postfix/pickup[27915]: AFDFC2041C: uid=0 from=<root>
Jan 17 13:09:01 mail2 postfix/cleanup[27917]: warning: mysql:/etc/postfix/mysql-virtual_aliases.cf lookup error for "root@109.183.135.5"
Jan 17 13:09:01 mail2 postfix/cleanup[27917]: warning: AFDFC2041C: virtual_alias_maps map lookup problem for root@109.183.135.5 -- deferring delivery
Jan 17 13:09:01 mail2 postfix/pickup[27915]: B086D2041C: uid=0 from=<root>
Jan 17 13:09:01 mail2 postfix/cleanup[27917]: warning: mysql:/etc/postfix/mysql-virtual_aliases.cf lookup error for "root@109.183.135.5"
Jan 17 13:09:01 mail2 postfix/cleanup[27917]: warning: B086D2041C: virtual_alias_maps map lookup problem for root@109.183.135.5 -- deferring delivery
=> pbl connexion postfix ds mysql :
local changé en localhost dans fichier de configuration !
19
Reprise du Tutoriel (2)
Ajout d’adresses email virtuelles
Tout est bon au niveau de postfix, il ne nous reste plus qu’à ajouter un nom de domaine et une adresse email virtuelle dans notre base de données via phpmyadmin. Voilà les codes SQL utilisés dans la vidéo :
mysql --user=root -p Ajouter un nom de domaine
INSERTINTO'domaines' ( 'domaine' , 'etat' ) VALUES('abware_testing.com', '1');
Ajouter une adresse virtuelle
sql generé :
INSERT INTO `postfix`.`comptes` (
`email` ,
`password` ,
`quota` ,
`etat` ,
`imap` ,
`pop3`
)
VALUES (
'test@abware_testing.com', ENCRYPT( 'testest' ) , '0', '1', '1', '1'
);
Un petit test
Il ne nous reste plus qu’à tester notre configuration globale en nous connectant avec telnet sur le port 25 et en envoyant un email. De plus, en envoyant ce premier mail ça va automatiquement créer le dossier pour le nom de domaine dans /var/spool/vmail.
telnet ip.du.serveur.mail 25 ehlo abware_testing.com
mail from: test@abware_testing.com rcpt to: testmail@gmail.com
data blabla blabla .
Si vous n’avez pas d’erreurs, c’est que tout ce passe bien et vous pouvez le vérifier grâce aux fichiers de logs.
Si vous n’arrivez pas vous connecter en telnet, vous pouvez tenter ces lignes de commandes : /etc/init.d/postfix stop
newaliases
/etc/init.d/postfix start
20 Return-Path: <test@abware_testing.com>
X-Original-To: test@abware_testing.com Delivered-To: test@abware_testing.com
Received: from abware_testing.com (localhost [127.0.0.1])
by mail2.abware_testing.com (Postfix) with ESMTP id D7E7620418 for <test@abware_testing.com>; Thu, 17 Jan 2013 14:28:11 +0100 (CET) Message-Id: <20130117132913.D7E7620418@mail2.abware_testing.com>
Date: Thu, 17 Jan 2013 14:28:11 +0100 (CET) From: test@abware_testing.com
TEST
Ceci est le 1er test
Envoi et reception sur meme @ (adresse)
_____________________________________________________________________________
Delivered-To: testmail@gmail.com
Received: by 10.11.12.13 with SMTP id ow6csp25026lab;
Thu, 17 Jan 2013 05:34:50 -0800 (PST)
Received-SPF: pass (google.com: domain of designates 10.9.8.7 as permitted sender) client-ip=10.9.8.7
Authentication-Results: mr.google.com;
spf=pass (google.com: domain of designates 10.9.8.7 as permitted sender) smtp.mail=;
dkim=pass header.i=@gmail.com
X-Received: from mr.google.com ([10.9.8.7])
by 10.9.8.7 with SMTP id to4mr4802970lab.39.1358429690035 (num_hops = 1);
Thu, 17 Jan 2013 05:34:50 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
d=gmail.com; s=20120113;
h=x-received:mime-version:from:to:x-failed-recipients:subject :message-id:date:content-type:content-transfer-encoding;
bh=VkZ/BCedzv9DXEUnG4WPB00xCz2lNIKuhGzB0Hd8zwc=;
b=xOE5LRQb9yOQfMs977cccNYUumSloP3ycLp2yb9bldFXJI7NZyw0rYRLMc6/yqb7qz 7hr2cOOBnoMzfhmIf0vtUyOIS6QBO20/kP2OOrOSn5DP5+SaoDy6pDnuEzshHWnEM7Us vr1fSvWpgyxO80uao6/CvOzmshY3V9YsZVeHUNproATVv/7ka/PjbQaP8blpyKkS3bM1 IwLDf3/0DkMmOFjxe6R1SGy8n696dc3cg5VdkeHOzWPvpTBv97cbBh3aZ4r5FrBUMGiB rV+RENiuj1Aff+hfVDCK9h9QRIrqMhJH5ahUPWWOf+GBQxvfDz2JRFOt9/22IpJN7/BD e2EA==
X-Received: by 10.9.8.7 with SMTP id to4mr4802970lab.39.1358429690032;
Thu, 17 Jan 2013 05:34:50 -0800 (PST) MIME-Version: 1.0
Return-Path: <>
Received: by 10.9.8.7 with SMTP id to4mr6172650lab.39; Thu, 17 Jan 2013 05:34:50 -0800 (PST)
From: Mail Delivery Subsystem <mailer-daemon@googlemail.com>
To: testmail@gmail.com
21
X-Failed-Recipients: test@abware_testing.com Subject: Delivery Status Notification (Failure)
Message-ID: <e89a8f2345b3206ed304d37c0fcb@google.com>
Date: Thu, 17 Jan 2013 13:34:50 +0000
Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
Delivery to the following recipient failed permanently:
test@abware_testing.com
Technical details of permanent failure:=20
Google tried to deliver your message, but it was rejected by the recipient = domain. We recommend contacting the other email provider for further inform=
ation about the cause of this error. The error that the other server return=
ed was: 550 550 sorry, no mailbox here by that name (#5.1.1) (state 13).
--- Original message ---
DKIM-Signature: v=3D1; a=3Drsa-sha256; c=3Drelaxed/relaxed;
d=3Dgmail.com; s=3D20120113;
h=3Dmime-version:x-received:date:message-id:subject:from:to :content-type;
bh=3DOpL/nmMmZqRHC8VMRBqSckCe5YsF3l/BG+EJm/FNNuQ=3D;
b=3DDX70hC7/f4spLAuu0lbEePTbV92KU98eOBoamJ8QqwVzRMb4tAL/E3o7xbFUYxj=
wqE
MFOydnjLmjfdrQarddl5tlDU8KDTkySU+pQBS01pCb/nvCdIhMTs8el0xhfcy1jDj8=
7f
knNu3Uul6QNxmNwsU8XFSCXCJ1wbvHcU6Y/iP+BHdj8LavMEXJaLOJvRP1GoLHuIWw=
TR
oA8rc4JPatKBviVaDrMgVtheRI/LMbvENZ+G8hBq0Xq44aYx8FbRNRC4a/HRT7QhHr=
Ta
Yxo+6Pue4Sjr/46p5l2fSa/8jEvgsqRV+Um9w4bWbZsH2udDXnkwNi2Pp+H5wB3h9o=
ao
EEiw=3D=3D MIME-Version: 1.0
X-Received: by 10.9.8.7 with SMTP id to4mr4802944lab.39.1358429689515;
Thu, 17 Jan 2013 05:34:49 -0800 (PST)
Received: by 10.11.12.13 with HTTP; Thu, 17 Jan 2013 05:34:49 -0800 (PST=
)
Date: Thu, 17 Jan 2013 14:34:49 +0100
Message-ID: <CAH8WaoqYrVpN441FUBVCMe119i9kLPjKCFRH4XhQjJ4hzqjR9w@mail.gmail=
.com>
Subject: 2eme test
From: asr abware <testmail@gmail.com>
To: test@abware_testing.com
Content-Type: multipart/alternative; boundary=3De89a8f2345b318909204d37c0f3=
f
2eme test
envoi de @gmail vers @domaine
Une erreur est survenue lors de l'envoi du courrier. Le serveur de courrier a répondu : 5.7.1
<testmail@gmail.com>: Relay access denied. Veuillez vérifier l'adresse du destinataire testmail@gmail.com et essayer à nouveau.
22
Reprise du Tutoriel (3)
Installation de Courier pour la gestion de l’imap et pop
Maintenant que Postfix est installé et configuré, on a besoin d’installer courier afin de gérer les protocoles pop et imap, qui nous permettent de récupérer nos email via un client comme Thunderbird ou de mettre en place un Webmin comme Roundcube. Voici la liste des paquets à installer :
apt-get installcourier-base courier-authdaemon courier-authlib-mysql courier-imap courier-pop
┌───────────────────────────────────────────────────┤
Configuration de courier-base
├────────────────────────────────────────────────────┐
│ │ │ Courier utilise de nombreux fichiers de configuration dans /etc/courier. Certains de ces fichiers peuvent être remplacés par un │
│ sous-répertoire contenant des fichiers qui seront concaténés et seront considérés ensemble comme un seul fichier de configuration. │
│ │
│ L'outil d'administration par le web fourni par le paquet courier-webadmin n'utilise pas de fichier pour la configuration, mais des │
│ répertoires. Si vous le souhaitez, tous les répertoires nécessaires pour cet outil seront créés, sauf si un fichier est déjà présent. │
│ │
│ Faut-il créer les répertoires nécessaires à l'administration web ?
│
│ │ │ <Yes> <No>
Configuration
Nous devons configurer courier afin de préciser qu’on utilise une base de données pour les adresses emails virtuelles. Voici les modifications qu’il faut faire :
/etc/courier/authdaemonrc authmodulelist="authmysql"
23
On doit ensuite fournir les identifiants de connexion à la base de données et le nom des tables : /etc/courier/authmysqlrc
MYSQL_SERVER localhost MYSQL_USERNAME postfix MYSQL_PASSWORD password MYSQL_DATABASE postfix MYSQL_USER_TABLE comptes MYSQL_CRYPT_PWFIELD password MYSQL_UID_FIELD 5000 MYSQL_GID_FIELD 5000 MYSQL_LOGIN_FIELD email
MYSQL_HOME_FIELD "/var/spool/vmail/"
MYSQL_MAILDIR_FIELD CONCAT(SUBSTRING_INDEX(email,'@',- 1),'/',SUBSTRING_INDEX(email,'@',1),'/')
Et c’est tout pour la configuration de Courier, il ne nous reste plus qu’à faire un reboot des différents services :
/etc/init.d/courier-authdaemon restart /etc/init.d/courier-pop restart
/etc/init.d/courier-imap restart
Roundcube
Tout est près, on peut d’ores et déjà récupérer ces emails avec un client comme le célèbre Thunderbird, mais je vous propose d’installer un Webmail qui présente l’avantage d’avoir une interface en ligne.
Commencez par récupérer le lien pour télécharger la dernière version de RoundCube sur cette page (Dans sourcefourge faites un clique droit/copier l’adresse du lien sur le
« direct link »).
Ensuite en ligne de commande on télécharge et dé-zippe le fichier avec wget et tar puis on crée un utilisateur pour héberger le code de roundcube :
wget http://surfnet.dl.sourceforge.net/sourceforge/roundcubemail/roundcubemail-X.X- stable.tar.gz
tar -zxvf roundcubemail-X.X-stable.tar.gz adduser roundcube
mv roundcubemail-X.X-stable.tar.gz /home/roundcube/www chown -R roundcube:roundcube /home/roundcube
Désormais le code pour Roundcube est disponible dans le dossier /home/roundcube/www (comme pour les autres sites) et donc nous devons créer un fichier virtual host :
/etc/apache2/sites-available/roundcube ServerAdmin bvek1.prof@gmail.com
ServerName webmail.ks367082.kimsufi.com ServerAlias webmail.tutorielvideo.fr
DocumentRoot /home/roundcube/www
24
# SuexecUserGroup roundcube roundcube # on verra ça plus tard Options FollowSymLinks
AllowOverride All
Options FollowSymLinks MultiViews AllowOverride All
Order allow,deny allow from all
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Maintenant on va créer la base de données pour Roundcube. Connectez-vous sur votre phpmyadmin et créez une base de données Roundcube avec un utilisateur Roundcube qui possède tous les droits sur la base.
Ensuite, on va importer unfichier SQLpour créer les tables nécessaires à Roundcube : mysql -u root -p roundcubemail < /var/www/webmail/SQL/mysql.initial.sql Ensuite, vous devez lancer l’installateur de roundcube en allant sur la page
http://ksXXXXX.kimsufi.com/~roundcube/installer. Les étapes sont simples à suivre, n’oubliez pas de configurer la base de données.
À l’étape 2, Roundcube vous donnera 2 fichiers de configuration que vous devez créer avec l’éditeur VI par exemple.
Enfin n’oubliez pas de donner les répertoires ~roundcube/www/temp et logs à apache avec un chwon www-data:www-data /home/roundcube/www/temp (et logs).
Maintenant il ne vous reste plus qu’à tester Roundcube en envoyant un email de test et en testant l’imap en donnant l’adresse email virtuelle que vous avez configuré précédemment avec le mot de passe sur le serveur 127.0.0.1.
25
Erreurs fréquentes
Dans l’installation et la configuration d’un serveur de mail, on peut très facilement se tromper. Pour vous éviter de rechercher des solutions pendant des jours comme je l’ai fait, je vous propose une petite liste d’erreurs que j’ai déjà commise avec leurs solutions. Cette liste pourra éventuellement se mettre à jour en fonction de vos réactions.
J’ai une erreur 500 sur la page Roundcube
Si vous n’arrivez pas accéder à la page d’installation ou d’index de Roundcube et que vous avez une erreur 500, le problème vient probablement du fichier .htaccess. En effet, Roundcube utilise un fichier .htaccess pour redéfinir des règles pour Apache.
Cependant, il faut autoriser l’utilisation de fichier htaccess en plaçant une directive « AllowOverride All » dans le fichier virtual host du site. Il faut également placer cette directive dans le fichier de configuration de UserDir (/etc/apache2/mods-available/userdir.conf).
De toute manière, en faisant un tour dans les logs, on voit tout de suite si le problème vient des htaccess.
Je n’arrive pas me connecter avec Roundcube / L’imap fonctionne pas
Si le test de l’imap à l’étape 3 de l’installation de Roundcube plante ou si vous n’arrivez pas vous connecter avec une adresse email virtuelle, le problème peut venir du fait que le compte email est
« vide ».
En effet, pendant le tutoriel nous utilisons telnet pour envoyer un email sur l’adresse fraîchement créé via phpmyadmin. Cela permet de vérifier que tout fonctionne bien, mais cela génère également le dossier qui va contenir tous les emails du domaine dans /var/spool/vmail/. Si ce dossier n’existe pas, vous n’arriverez pas à vous connecter sur votre compte avec Roundcube. La solution est donc de refaire l’étape du telnet et de vérifier que ça génère bien le dossier.
Si en regardant les logs, vous avez une erreur du type « authentification failed » ou un message ressemblant, ça vient probablement du fichier /etc/courier/authmysqlrc. Soit vous avez oublié de commenter la ligne « MYSQL_NAME_FIELD », ou alors vous avez oublié le
« MYSQL_MAILDIR_FIELD ».
Je n’arrive pas me connecter en telnet
Si vous n’arrivez pas vous connecter en telnet (si ça freeze), c’est qu’un des fichiers de configuration est mal fait. Vous pouvez le vérifier en regardant dans /var/log/syslog. Si ça ne fonctionne toujours pas, vous pouvez toujours d’arreter postfix et de lancer la commande « newaliases« .
Comment trouver une solution à un problème
Si vous avez un problème qui n’est pas recensé ici, voici quelques pistes pour le trouver. Premier reflexe, si quelque chose ne fonctionne pas -> aller voir les logs.
Voici les fichiers de log intéressant dans ce cas :
•/var/log/syslog : la plupart des erreurs systèmes sont la dedans
•/var/log/mail.log : pour tout ce qui concerne les email
26
•/var/log/apache2/error.log : toutes les erreurs concernant apache
La plupart du temps vous pouvez identifier le problème et avec une recherche Google (et un peu de logique), on arrive trouver des solutions.
Le tutoriel est enfin terminé, si vous avez des questions ou un prolbème vous pouvez toujours laisser un commentaire. En revanche donnez moi des informations si vous voulez de l’aide (comme les fichiers de logs) car je ne suis pas devin :p.
Si vous me donner des fichiers de log, utilisez un service comme pastebin. Les commentaires de personnes qui donne directement les logs en brut dans les commentaires ne seront pas validés !
Fichiers de Configuration
principale:
# Bannière afficher lorsqu'on se connecte en SMTP sur le port 25 smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
# Service qui envoie des notifications "nouveau message"
biff = no
# Desactive la commande SMTP VRFY. Arrête certaine technique pour avoir des adresses email disable_vrfy_command = yes
# Impose au client SMTP de démarrer la session SMTP par une commande Helo (ou ehlo) smtpd_helo_required = yes
# Avec le courier local ça ajoute .NDD aux adresses incomplètes (seulement le nom d'hote) append_dot_mydomain = no
# Le nom de la machine du système de messagerie
# Par défaut c'est host.domain.tld mais on peut mettre un reverse dns myhostname = REVERSE_DNS
# Le domaine utilisé par defaut pour poster les message local myorigin = REVERSE_DNS
# Liste des domaines pour lequel le serveur doit accepter le courrier mydestination = REVERSE_DNS, localhost.localdomain, localhost
# Pour effectuer des livraisons de courrier avec un relay (ici non) relayhost =
# Liste des réseaux locaux autorisés
mynetworks = 127.0.0.0/8, IP_PUBLIQUE_SERVEUR
# Taille des boîtes au lettre (0 = illimité) mailbox_size_limit = 0
# Séparateur entre le nom d'utilisateur et les extensions d'adresses recipient_delimiter = +
# Interfaces réseaux à écouter (ici toutes) inet_interfaces = all
# Gestion des boites mails virtuelle
# Contient les fichiers qui permettent de relier postfix mysql
virtual_alias_maps = mysql:/etc/postfix/mysql-virtual_aliases.cf,mysql:/etc/postfix/mysql- virtual_aliases_comptes.cf
virtual_mailbox_domains = mysql:/etc/postfix/mysql-virtual_domaines.cf virtual_mailbox_maps = mysql:/etc/postfix/mysql-virtual_comptes.cf
# Le dossier ou seront contenu les mails (=home de l'user vmail)
27 virtual_mailbox_base = /var/spool/vmail/
# L'id du groupe et de l'utilisateur vmail créé précédement virtual_uid_maps = static:5000
virtual_gid_maps = static:5000
# Créer un dossier par comte email virtual_create_maildirsize = yes
# A activer si vous souhaitez ajouter des quotas virtual_mailbox_extended = yes
# Impose les limites au niveau des mails, dans notre cas aucune
virtual_mailbox_limit_maps = mysql:/etc/postfix/mysql-virtual_quotas.cf
# Ajouter une limite sur la taille des messages pour les boites virtuelles virtual_mailbox_limit_override = yes
virtual_maildir_limit_message = "La boite mail de votre destinataire est pleine, merci de reessayez plus tard."
virtual_overquota_bounce = yes
# adresses d'expedition smtpd_sender_restrictions = permit_mynetworks,
warn_if_reject reject_unverified_sender
# adresses de destination smtpd_recipient_restrictions = permit_mynetworks, reject_unauth_destination, reject_non_fqdn_recipient
# client
smtpd_client_restrictions = permit_mynetworks
fichier conf final :
# Bannière afficher lorsqu'on se connecte en SMTP sur le port 25
smtpd_banner = $myhostname ESMTP Test $mail_name (Debian/GNU)
# Service qui envoie des notifications "nouveau message"
biff = no
# Desactive la commande SMTP VRFY. Arrête certaine technique pour avoir des adresses email disable_vrfy_command = yes
# Impose au client SMTP de démarrer la session SMTP par une commande Helo (ou ehlo) smtpd_helo_required = yes
# Avec le courier local ça ajoute .NDD aux adresses incomplètes (seulement le nom d'hote) append_dot_mydomain = no
# Le nom de la machine du système de messagerie
# Par défaut c'est host.domain.tld mais on peut mettre un reverse dns myhostname = mail2.abware_testing.com
# Le domaine utilisé par defaut pour poster les message local myorigin = /etc/mailname
# Liste des domaines pour lequel le serveur doit accepter le courrier
mydestination = 109.183.135.5.in-addr.arpa, mail2.abware_testing.com,localhost.localdomain,
28 localhost
# Pour effectuer des livraisons de courrier avec un relay (ici non) relayhost =
# Liste des réseaux locaux autorisés
mynetworks = 127.0.0.0/8, ip.du.serveur.mail
# Taille des boîtes au lettre (0 = illimité) mailbox_size_limit = 0
# Séparateur entre le nom d'utilisateur et les extensions d'adresses recipient_delimiter = +
# Interfaces réseaux à écouter (ici toutes) inet_interfaces = all
# Suppr : "warning dict_nis_init nis domain name not set - nis lookups disabled"
"/etc/postfix/main.cf" 77L, 3412C 1,1 Haut
______________________________________________________________________________
##VERSION: $Id: authmysqlrc,v 1.20 2007/10/07 02:50:45 mrsam Exp $
#
# Copyright 2000-2007 Double Precision, Inc. See COPYING for
# distribution information.
#
# Do not alter lines that begin with ##, they are used when upgrading
# this configuration.
#
# authmysqlrc created from authmysqlrc.dist by sysconftool
#
# DO NOT INSTALL THIS FILE with world read permissions. This file
# might contain the MySQL admin password!
#
# Each line in this file must follow the following format:
#
# field[spaces|tabs]value
#
# That is, the name of the field, followed by spaces or tabs, followed by
# field value. Trailing spaces are prohibited.
##NAME: LOCATION:0
#
# The server name, userid, and password used to log in.
MYSQL_SERVER localhost MYSQL_USERNAME postfix MYSQL_PASSWORD password
##NAME: SSLINFO:0
#
# The SSL information.
#
"authmysqlrc" 288L, 8932C 1,1 Haut
29
##VERSION: $Id: authdaemonrc.in,v 1.13 2005/10/05 00:07:32 mrsam Exp $
#
# Copyright 2000-2005 Double Precision, Inc. See COPYING for
# distribution information.
#
# authdaemonrc created from authdaemonrc.dist by sysconftool
#
# Do not alter lines that begin with ##, they are used when upgrading
# this configuration.
#
# This file configures authdaemond, the resident authentication daemon.
#
# Comments in this file are ignored. Although this file is intended to
# be sourced as a shell script, authdaemond parses it manually, so
# the acceptable syntax is a bit limited. Multiline variable contents,
# with the \ continuation character, are not allowed. Everything must
# fit on one line. Do not use any additional whitespace for indentation,
# or anything else.
##NAME: authmodulelist:2
#
# The authentication modules that are linked into authdaemond. The
# default list is installed. You may selectively disable modules simply
# by removing them from the following list. The available modules you
# can use are: authuserdb authpam authpgsql authldap authmysql authcustom authpipe
"/etc/courier/authdaemonrc" 103L, 3656C 1,1 Haut
_______________________________________________________________________________
hosts = 127.0.0.1 user = postfix
password = password dbname = postfix select_field = 'virtual' table = domaines where_field = domaine
additional_conditions = AND etat=1
~
"/etc/postfix/mysql-virtual_domaines.cf" 8L, 177C 1,1 Tout
hosts = 127.0.0.1 user = postfix
password = password dbname = postfix
30 table = alias
select_field = destination where_field = source
additional_conditions = AND etat=1
~
"/etc/postfix/mysql-virtual_aliases.cf" 8L, 175C 1,1 Tout
__________________________________________________________________________
hosts = 127.0.0.1 user = postfix
password = password dbname = postfix table = comptes select_field = email where_field = email
additional_conditions = AND etat=1
~
<stfix/mysql-virtual_aliases_comptes.cf" 8L, 170C 1,1 Tout
hosts = 127.0.0.1 user = postfix
password = password dbname = postfix table = comptes
select_field = CONCAT(SUBSTRING_INDEX(email,'@',- 1),'/',SUBSTRING_INDEX(email,'@',1),'/')
where_field = email
additional_conditions = AND etat=1
~
"/etc/postfix/mysql-virtual_comptes.cf" 8L, 239C 1,1 Tout
________________________________________________________________________________
hosts = 127.0.0.1 user = postfix
password = password dbname = postfix table = comptes select_field = quota
where_field = email
~
"/etc/postfix/mysql-virtual_quotas.cf" 7L, 135C 1,1 Tout
31 Conclusion
Difficulté de mise en place :
Problème de gestion des quotas (fonction non utilisée) Attention à la configuration DNS de la Zone
Difficulté de réception des mails.
Serveur Postfix prototype est malgré tout, fonctionnel par rapport au cahier des charges.