Le système d'exploitation GNU-Linux/Le serveur de mails Postfix

Un livre de Wikilivres.
Sauter à la navigation Sauter à la recherche


  1. Qu'est-ce qu'un système d'exploitation ?
  2. Unix et Linux
  3. Partitionnement du disque
  4. Installation
    1. Installer Debian via le réseau
  5. Utilisateur Unix, l'interface console
    1. Le login
    2. Commandes de base
    3. L'aide en ligne man
    4. L'éditeur de texte vi
    5. Les shells
    6. La complétion
    7. Les jokers
    8. Les répertoires importants
    9. Redirection des entrées/sorties
    10. Invoquer un programme en tâche de fond
    11. Propriétaires et droits d'accès
    12. Processus
    13. Locale
  6. Administration du système
    1. Configuration du réseau
    2. Les utilisateurs et groupes
    3. Le processus d'initialisation
    4. Les systèmes de fichiers
    5. Le système virtuel /proc
    6. Les périphériques /dev
    7. L'ordonnanceur de travaux cron
    8. Le backup : tar et gzip
    9. ghost avec partimage
    10. sauvegarde de fichiers avec rsync
    11. Les fichiers journaux syslog
    12. Installation de nouveaux logiciels
    13. Le noyau Linux et les modules
    14. Autres commandes utiles
    15. Installation RAID1 logiciel + LVM + XFS
    16. Scripts de surveillance
    17. Réseaux sans fil
  7. Administration des services réseaux
    1. Le serveur de noms BIND
    2. Le serveur de configuration réseau DHCP
    3. Le serveur de shell distant SSH
    4. Le partage de fichiers Samba
    5. Le partage de fichiers NFS
    6. Le serveur d'impression CUPS
    7. Le serveur de fichiers FTP
    8. Le serveur Web Apache
    9. La base de données MySQL
    10. Le serveur de mails Postfix
    11. Les annuaires LDAP
    12. L'outil d'administration Webmin
    13. La supervision
  8. Sécurisation d'un serveur Linux
    1. Installation d'un service en mode chroot
    2. Protection avec iptables
  9. Médiagraphie
  10. Auteurs


Sections

Le serveur de mail Postfix[modifier | modifier le wikicode]

Postfix est un serveur de mail écrit dans l'idée de remplacer Sendmail, serveur de mail historique de moins en moins utilisé car sa configuration est très complexe et qu'il contient des failles de sécurité.

Postfix effectue 99 % des fonctions de Sendmail, les 1% restant ne sont que purement applicable dans une minorité de cas. De plus, il allie performance et facilité d'installation et de paramétrage.

Il existe de nombreux autres serveurs de mails, parmi les plus connus : Qmail, Exim, Qpsmtpd, Courier...

Quelques définitions[modifier | modifier le wikicode]

Comment ça marche ?[modifier | modifier le wikicode]

Schéma du cheminement des mails entre les correspondants (trois cas illustrés en fonction des moyens mis en œuvre).
Postfix-server(c).png

Le schéma précédent nous propose trois cas de figure :

Cas numéro 1[modifier | modifier le wikicode]

  • Nous avons deux sociétés : societe.com et client.com
  • Paul (paul@societe.com) veut envoyer un mail à Pierre (pierre@client.com)
  • Le mail part en direction du serveur SMTP de sa société (smtp.societe.com)
  • Celui-ci est accepté par le serveur de mail smtp.societe.com car il vient de son propre réseau
  • smtp.societe.com fait une demande au serveur DNS pour connaitre le serveur de mail qui gère les courriers de @client.com : client.com MX ? (Mail eXchanger)
  • Le serveur DNS répond : smtp.client.com
  • Le serveur de mail smtp.societe.com contacte donc le serveur SMTP smtp.client.com
  • Lorsque le client de messagerie de Pierre veut consulter ces mails, il va demander à POP si il y a quelque chose pour lui et télécharge le mail de Paul
  • Pierre a donc bien reçu le mail de Paul
  • Pierre répond à Paul de la même manière
  • Le mail suit le cheminement inverse : smtp.client.com demande au serveur DNS le serveur de messagerie de societe.com. Celui-ci lui répond : smtp.societe.com
  • Le mail est acheminé vers le serveur SMTP smtp.societe.com
  • Il est stocké jusqu'à la demande de Paul de lire ces mails. Contrairement à Pierre, le client de messagerie de Paul interroge le serveur IMAP imap.societe.com. La différence est que le mail de Pierre est lu directement depuis le serveur IMAP et reste stocké sur ce dernier

Cas numéro 2[modifier | modifier le wikicode]

  • Notre ami Paul fait partie d'une association (asso.org) et dispose d'un email sur ce domaine : paul@asso.org
  • L'association dispose d'un hébergement chez hebergeur.net qui lui fournit différents services serveur SMTP, POP, IMAP et accès webmail
  • Paul utilise son email sur asso.org (paul@asso.org) pour envoyer un email à son ami Jack qui dispose aussi d'un email sur asso.org : jack@asso.org
  • Ce mail est acheminé via son réseau vers son serveur SMTP. Dans son client Outlook, Paul a paramétré plusieurs comptes
  • Le serveur de sa société (smtp.societe.com) accepte d'envoyer le mail sur Internet, même si l'email émetteur et le destinataire utilisent des noms de domaine différents, car il vient de son propre réseau
  • Ce mail est donc envoyé au serveur SMTP asso.org : smtp.hebergeur.net
  • Paul peut donc s'il le souhaite aller consulter ses mails sur asso.org via le serveur POP ou IMAP qui va rapatrier directement les mails paul@asso.org

Cas numéro 3[modifier | modifier le wikicode]

  • Jack utilise une connexion à Internet fournie par un fournisseur d'accès à Internet : fai.fr. Pour lire son email sur asso.org (jack@asso.org), Jack utilise son navigateur Web et l'accès Webmail fournit par fai.fr
  • Il se connecte donc sur l'adresse webmail.asso.org et peut ainsi visualiser ses mails. Aucun email ne sera rapatrié sur son PC.
  • Il peut également répondre à tous ses mails via un Webmail.

Installation de Postfix[modifier | modifier le wikicode]

Installer en premier Postfix, si un autre serveur de mail est déjà présent, il le supprimera :

 # apt-get install postfix

Pour l'instant, nous laissons toutes les options par défaut, nous allons le configurer par la suite.

Une fois l'installation terminée, nous allons configurer Postfix.

sudo adduser postfix sasl[1]
sudo dpkg-reconfigure postfix

Configuration de Postfix[modifier | modifier le wikicode]

Attention !
link={{{link}}}

Pour que cela fonctionne sur Internet, il faut que le nom local du serveur (hostname) soit le même que celui du réseau (défini dans les DNS). Dans cet exemple, il s'appellera mail.mondomaine.fr. De plus, il faut commenter la ligne ci-dessous mydestination qui bride les envois vers l'extérieur.

Le fichier de configuration principal de Postfix est /etc/postfix/main.cf. Copier le suivant en remplaçant mondomaine.fr par le vrai domaine du serveur :

 mv /etc/postfix/main.cf /etc/postfix/main.oldcf  # Archivage
 > /etc/postfix/main.cf                           # Blanchiment
 vim /etc/postfix/main.cf                         # Accès pour coller la configuration ci-dessous
# Message affiché à la connexion
smtpd_banner = $myhostname ESMTP
  
# Ne pas utiliser le service biff qui sert à la notification
# des nouveaux mails
biff = no
  
# On ne rajoute pas le domaine car c'est le boulot du client mail
append_dot_mydomain = no
  
# Permet d'envoyer un email a l'émetteur si son mail n'est pas
# parti au bout d'un certain temps
#delay_warning_time = 4h
  
# Emplacement des alias Unix
# Attention, à chaque modification de /etc/aliases, il faut taper
# la commande newaliases pour qu'il régénère le fichier /etc/aliases.db
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

# Le domaine d'origine
myorigin = /etc/mailname

# Le nom de machine FQDN (doit être en accord avec le DNS)
mydomain = mondomaine.fr
myhostname = mail.$mydomain

# Liste des domaines principaux dont on accepte le courrier
mydestination = $mydomain, $myhostname, localhost, localhost.$mydomain
  
# Permet d'indiquer un autre serveur SMTP pour l'envoi des emails
# Utilisé si on ne peut pas envoyer directement les emails
relayhost =
  
# Indique les réseaux dont on accepte d'acheminer les emails
#mynetworks = 127.0.0.0/8, 192.168.30.0/24
  
# Le dépôt des emails dans les boites aux lettres est confié
# à procmail (cas du format mbox)
mailbox_command = procmail -a "$EXTENSION"
  
# Taille des boites aux lettres. 0 : pas de limite
mailbox_size_limit = 0
  
# Séparateur utilisé pour les usernames + adresses
recipient_delimiter = +
  
# Écoute sur toutes les interfaces réseaux
inet_interfaces = all
  
# On force postfix à utiliser le protocole IPv4
inet_protocols = ipv4

On peut visualiser la totalité des options possibles de Postfix et leurs valeurs par défaut via la commande postconf :

  # postconf | more
  2bounce_notice_recipient = postmaster
  access_map_reject_code = 554
  address_verify_default_transport = $default_transport
  address_verify_local_transport = $local_transport
  address_verify_map =
  address_verify_negative_cache = yes
  address_verify_negative_expire_time = 3d
  ...

En français ça donne : délivre en local les emails vers mydestination avec mailbox_command, sinon délivre-les sur Internet mais en refusant ceux qui ne viennent pas de mynetworks ou relayhost (s'ils sont vides on accepte rien, s'ils sont commentés on accepte tout, même de relayer des spams).


Une fois main.cf sauvegardé pour la première fois, on vérifie que le fichier /etc/mailname contient le nom de domaine de notre réseau :

 # cat /etc/mailname
 mondomaine.fr

Chaque fois que l'on modifie le fichier /etc/postfix/main.cf, il faut relancer Postfix :

 # /etc/init.d/postfix restart

Pour chaque mail envoyé ou reçu, Postfix enregistre les informations d'acheminement dans le fichier /var/log/mail.log. Il est donc très utile de surveiller ce fichier durant les tests de fonctionnement.

Pour vérifier que le serveur de mail fonctionne, on envoi un mail à un utilisateur et on regarde le fichier /var/log/mail.log.

 # mail alex
 Subject: essai
 essai
 .
 Cc:
CTRL+D

Dans un autre terminal :

 # tail -f /var/log/mail.log
 ...
 Feb 13 13:10:40 mail postfix/pickup[13353]: B782A1FD6F: uid=0 from=<root>
 Feb 13 13:10:40 mail postfix/cleanup[13675]: B782A1FD6F: message-id=<20080213121040.B782A1FD6F@mail.mondomaine.fr>
 Feb 13 13:10:40 mail postfix/qmgr[13354]: B782A1FD6F: from=<root@mail.mondomaine.fr>, size=355, nrcpt=1 (queue active)
 Feb 13 13:10:40 mail postfix/local[13677]: B782A1FD6F: to=<alex@mail.mondomaine.fr>, orig_to=<alex>, relay=local, delay=0.08, delays=0.04/0.02/0/0.02, dsn=2.0.0, status=sent (delivered to command: procmail -a "$EXTENSION")
 Feb 13 13:10:40 mail postfix/qmgr[13354]: B782A1FD6F: removed
 ...

Ajouter une boite aux lettres[modifier | modifier le wikicode]

Pour ajouter une boite aux lettres, il existe trois solutions :

  1. Créer un compte Unix.
  2. Créer une adresse virtuelle.
  3. Créer un alias.

Les voici en lignes de commandes, mais elles sont aussi réalisables au moyen d'un webmail.

Nouveau compte système[modifier | modifier le wikicode]

Pour des raisons de sécurité, on positionne le shell de l'utilisateur à /bin/false (ainsi il ne pourra pas se logger sur le serveur). Le mot de passe saisi sera celui de sa boite aux lettres. On rajoute l'utilisateur dans le groupe mail afin qu'il puisse écrire le fichier <login>.lock dans le répertoire /var/mail.

 # adduser --shell /bin/false --ingroup mail pierre

Adresse virtuelle[modifier | modifier le wikicode]

Activer la fonction dans :

vim /etc/postfix/main.cf

avec :

virtual_alias_maps = hash:/etc/postfix/virtual

Ensuite il faut définir les adresses emails dans /etc/postfix/virtual, sous forme de paires clé-valeur[2] :

postmaster@mail.mondomaine.fr        root

Puis créer la base de données à partir du fichier :

postmap /etc/postfix/virtual
postfix reload

Alias[modifier | modifier le wikicode]

Pour éditer la liste des adresses emails alias de celles d'une boite :

vim /etc/aliases

Par exemple en y ajoutant les plus fréquents :

MAILER-DAEMON:  root
postmaster:     root
abuse:          root

Ainsi, quelqu'un qui voudra reporter un problème à abuse@mondomaine.fr écrira dans la boite de root, ce qui sera visible par une notification à chaque fois que ce dernier se connectera en SSH.

Puis la commande newaliases crée alors /etc/aliases.db à partir de cette liste.

MDA : filtres de courrier électronique[modifier | modifier le wikicode]

Par défaut les emails des boites créées ci-dessus s'empilent tous dans un fichier de /var/mail/. Afin de les router vers des boites mails séparées, on utilise un ou plusieurs[3] logiciels Mail Delivery Agent.

  • Pour les transferts locaux (vers une boite mail personnelle du serveur), ils utilisent le protocole LMTP.
  • Pour les transferts distants (vers un client de messagerie), il faut choisir entre le protocole POP3 (qui déplace les emails vers le client) et IMAP (qui laisse une copie des emails sur le serveur).

Voici plusieurs exemples de MDA :

procmail[modifier | modifier le wikicode]

Pour installer procmail[4][5] :

 $ sudo apt-get install procmail
 $ vim ~/.forward
"|IFS=' '&&exec /usr/bin/procmail -f-||exit 75 #user"

 $ vim ~/.procmailrc
PATH=/usr/bin:/usr/local/bin
MAILDIR=$HOME/Maildir

 $ maildirmake ~/Maildir
  • En remplaçant user par l'utilisateur du processus.
  • Sur Ubuntu il s'installe dans /usr/bin/procmail, mais d'autres distributions nécessitent d'adapter ce chemin ci-dessus.

Explications :

  1. Le fichier utilisateur .forward permet d'insérer le filtrage procmail dans le parcours des emails à destination de cet utilisateur.
  2. Le fichier .procmailrc configure le filtrage pour l'utilisateur concerné.
  3. maildirmake crée l'arborescence nécessaire à l'accueil des emails :
    • new (nouveau) : boite de réception.
    • cur (courante) : boite courante.
    • tmp (temporaire) : mails en transit.

Pour voir s'il fonctionne, envoyer un email à l'utilisateur configuré ci-dessus, puis regarder s'il est arrivé :

ls -alh /home/user/Maildir/new/

En cas de problème :

tail /var/log/mail.log

fetchmail[modifier | modifier le wikicode]

Pour installer fetchmail :

apt-get install fetchmail

Il se configure avec :

vim ~/.fetchmailrc

On peut par exemple lui dire de tout transférer vers procmail en y ajoutant :

mda "/usr/bin/procmail -Y -d %T"

Ou bien lui faire récupérer directement des boites utilisateurs distantes avec :

poll example.com protocol pop3 username "user1" password "password1"
Attention !
link={{{link}}}

La ligne mailbox_command du fichier /etc/postfix/main.cf doit pointer vers procmail, qui reroute ensuite vers fetchmail.

fetchmail peut récupérer les emails de fournisseurs externes, tels que Gmail, Yahoo ou Outlook.com, par cron. C'est un mail retrieval agent (MRA).

Dovecot[modifier | modifier le wikicode]

En plus d'un MDA intégré, Dovecot intègre un serveur POP ou IMAP.

Tout comme pour fetchmail, il peut fonctionner en aval de procmail. Toutefois, il est possible de remplacer procmail par Dovecot dans /etc/postfix/main.cf[6] :

mailbox_command = /usr/local/libexec/dovecot/dovecot-lda -f "$SENDER" -a "$RECIPIENT"

pour Ubuntu :

mailbox_command = /usr/lib/dovecot/dovecot-lda -f "$SENDER" -a "$RECIPIENT"

Ensuite, l'installation de Dovecot dépend du protocole souhaité dans le MUA qui viendra relever le courrier :

Serveur POP[modifier | modifier le wikicode]

apt-get install dovecot-pop3d
 il existe de nombreux autres serveurs POP : courier-pop, teapop, ipopd, qpopper, solid-pop3d...

Serveur IMAP[modifier | modifier le wikicode]

apt-get install dovecot-imapd
 il existe aussi plusieurs autres serveurs IMAP, par exemple courier-imap.

IMAP nécessite le format de stockage Maildir. Nous allons donc tout d'abord configurer Postfix pour lui indiquer d'utiliser le format Maildir au lieu du traditionnel mbox.

On modifie le fichier /etc/postfix/main.cf. On commente l'option mailbox_command (qui appelle procmail) et on rajoute l'option home_mailbox :

  vim /etc/postfix/main.cf
  # Commenter la ligne :
  #mailbox_command = procmail -a "$EXTENSION"
  # Puis pour utiliser le format Maildir, ajouter :
  home_mailbox = Maildir/

On relance postfix :

 # /etc/init.d/postfix restart

Pour chaque utilisateur existant, il faut ensuite créer le répertoire Maildir. On fait ceci à l'aide de la commande maildirmake fournie par dovecot-imapd ou courrier-imap :

  $ cd      # pour retourner dans mon home directory
  $ maildirmake Maildir
  $ ls -l Maildir
  drwx------ 2 alex grpalex 4096 2008-02-13 13:58 cur
  drwx------ 2 alex grpalex 4096 2008-02-13 13:58 new
  drwx------ 2 alex grpalex 4096 2008-02-13 14:11 tmp

Pour automatiser la création du répertoire Maildir pour les nouveaux utilisateurs, on exécute la commande maildirmake dans le répertoire /etc/postmaster. Ainsi tous les nouveaux utilisateurs auront automatiquement le répertoire Maildir dans leur home directory :

  # cd /etc/postmaster
  # maildirmake Maildir

Webmails[modifier | modifier le wikicode]

Attention !
link={{{link}}}

Par défaut les webmails cherchent les courriels dans le dossier définit dans le serveur POP ou IMAP, et qui peut être différent de là où ils sont distribués.

Par exemple pour la configuration ci-dessus avec Dovecot, /etc/dovecot/conf.d/10-mail.conf doit contenir mail_location = maildir:/home/%u/Maildir.

SquirrelMail[modifier | modifier le wikicode]

SPOOFED-EMAIL.jpg

SquirrelMail est un webmail très simple à installer, qui fonctionne sans SGBD. Outre les envois et réceptions d'emails, il permet d'archiver en créant ou supprimant des dossiers.

Si n'est déjà le cas, on installe le serveur Web Apache :

 # apt-get install apache2

Pour installer SquirrelMail sous Debian, on tape la commande suivante :

 # apt-get install squirrelmail

On peut configurer Squirrelmail en utilisant le programme squirrelmail-configure. Ce fichier permet configurer le fichier /etc/squirrelmail/config.php. A noter que l'on peut modifier directement ce fichier sans passer par squirrelmail-configure.

SquirrelMail est fourni avec la section à rajouter à Apache pour l'activer. On va donc dans le répertoire de configuration de Apache pour lui indiquer d'utiliser ce fichier :

 # ln -s /etc/squirrelmail/apache.conf /etc/apache2/conf.d/squirrelmail.conf

On relance Apache :

 # /etc/init.d/apache2 restart

On peut tester si SquirrelMail fonctionne avec son navigateur en se connectant à l'URL suivante :

 http://localhost/squirrelmail/

Postfixadmin[modifier | modifier le wikicode]

Postfix.admin - homepage - fr.PNG

Postfixadmin est un webmail qui fonctionne avec MySQL.

apt-get install postfixadmin

Roundcube[modifier | modifier le wikicode]

Entrer un compte mail déjà configuré pour recevoir des emails
Nouveau mail

Roundcube est un webmail qui fonctionne avec MySQL, PostgreSQL, SQLite ou MSSQL. Il est très ergonomique (glisser-déposer, effacement en masse avec Maj + clic puis Suppr), plus graphique mais plus lent et moins stable que SquirrelMail.

 apt-get install roundcube roundcube-mysql
 php5enmod mcrypt
 /etc/init.d/apache2 restart

Et voilà : http://localhost/roundcube

Configuration pour des envois distants[modifier | modifier le wikicode]

Pour que les emails ne soient pas directement écartés ou classés dans les spams par les serveurs de messagerie des destinataires, il faut impérativement montrer patte-blanche de plusieurs façons :

  1. Règle de reverse DNS.
  2. Règle DNS SPF (1 ou 2[7]).
  3. Règle DNS DMARC.
  4. Signature DKIM dans chaque email[8] correspondant à l'enregistrement DNS TXT dédié.
  5. Absence de blacklistage sur l'adresse IP publique du SMTP[9].
  6. Optimisation du ratio texte / image à 60 / 40 %[10].
Attention !
link={{{link}}}

Un serveur de messagerie qui accepte d'envoyer des emails pour le compte de n'importe qui se retrouvera rapidement blacklisté par des organismes antispams, dont les listes sont utilisées par de nombreux serveurs MX. Et cela peut coûter de l'argent pour se déblacklister. Pour s'en prémunir, il est donc très fortement recommandé de laisser le paramètre relayhost = non commenté.

Sécurisation TLS[modifier | modifier le wikicode]

Tout d'abord, il faut générer une clé de cryptage asymétrique, puis indiquer son chemin dans main.cf :

# Paramètres liés au chiffrement TLS
smtpd_tls_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
smtpd_tls_key_file=/etc/ssl/private/ssl-cert-snakeoil.key
smtpd_use_tls=yes
smtpd_tls_session_cache_database = btree:${queue_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${queue_directory}/smtp_scache
# See /usr/share/doc/postfix/TLS_README.gz in the postfix-doc package for
# information on enabling SSL in the smtp client.

En cas d'erreur, on peut vérifier sa mise en place avec

openssl s_client -debug -starttls smtp -crlf -connect localhost:25

Pour plus d'information sur les certificats .pem, voir Apache/HTTPS.

Problèmes connus[modifier | modifier le wikicode]

421 Server Busy Error[modifier | modifier le wikicode]

Trouver le goulet d'étranglement avec qshape.

451 4.3.0 Temporary lookup failure[modifier | modifier le wikicode]

Sinon, recopier le main.cf ci-dessus.

454 4.7.1 Relay access denied / relaying denied[modifier | modifier le wikicode]

  • Commenter le bridage par adresses réseaux dans /etc/postfix/main.cf :
mynetworks =
  • Sinon, vérifier que le domaine du destinataire figure bien dans /etc/postfix/main.cf :
mydestination =
  • Sinon, dans /etc/postfix/main.cf, le paramètre virtual_mailbox_domains est vide[11].
  • Sinon, ajouter ou modifier les lignes suivantes à /etc/postfix/main.cf :
smtpd_recipient_restrictions = permit_mynetworks permit_sasl_authenticated reject_unauth_destination
  • Sinon, recopier le main.cf ci-dessus.
Attention !
link={{{link}}}

Lors des tests, ne pas commenter relayhost = pendant plus d'une heure sous peine de devenir spammeur à son insu.

501 5.1.7 Bad sender address syntax[modifier | modifier le wikicode]

Modifier l'adresse de l'expéditeur (ex : dans les options Squirrel).

550 relay not permitted / Sender verify failed[modifier | modifier le wikicode]

Vérifier le reverse DNS.

550 unknown recipient / 550 5.1.1: Recipient address rejected: User unknown in local recipient table[modifier | modifier le wikicode]

Le domaine ou sa boite mail n'est pas installé sur le MX.

S'il s'agit bien d'un utilisateur local, créer un alias d'une boite existante.

Sinon, si le serveur MX distant fonctionne par ailleurs, commenter dans /etc/postfix/main.cf :

mydestination =

Et relancer postfix.

Connection closed by foreign host / ou aucune commande ne répond après la connexion au SMTP[modifier | modifier le wikicode]

Si le serveur s'arrête immédiatement après son lancement, certaines erreurs sont visibles dans les logs. Sinon, recopier le main.cf ci-dessus.

dsn=4.4.1, status=deferred[modifier | modifier le wikicode]

Si les emails fonctionnent en local, mais pas depuis l'extérieur (avec la même adresse d'expéditeur), et qu'ils ne sont pas visibles dans

tail -30 /var/log/mail.log

Retester en ouvrant le port SMTP du pare-feu :

iptables -A INPUT -i eth0 -p tcp --dport 25 -j ACCEPT

Ou sinon en ouvrant tous les ports :

#!/bin/sh
echo "Flushing iptables rules..."
sleep 1
iptables -F
iptables -X
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

dsn=5.4.6, status=bounced (mail for mail.mondomaine.fr loops back to myself)[modifier | modifier le wikicode]

  • Le paramètre mydestination n'est pas bien définit.
  • Le domaine est inactif dans la table MySQL[12]

Erreurs Dovecot[modifier | modifier le wikicode]

Error: Invalid settings in userdb[modifier | modifier le wikicode]

Survient quand on se connecte par exemple au webmail en root. Cette protection incite à utiliser un autre compte, la solution la plus simples est de définir un alias dans pour root dans /etc/aliases.

Si cela survient alors qu'un alias existait déjà, il suffit de relancer newaliases pour réparer.

Error: stat(/home/postmaster/Maildir/tmp) failed: Permission denied[modifier | modifier le wikicode]
chmod -R 777 /home/postmaster/Maildir/

Erreurs fetchmail[modifier | modifier le wikicode]

Les symptômes suivants sont liés à la même erreur fetchmail :

  • POP3 : Erreur de login ou d'identification inconnue / erreur socket durant la réception
  • IMAP : Connexion refusée / Échec de l'autorisation
  • SMTP : The recipient server did not accept our requests to connect. Socket error

Pour déboguer, utiliser la commande :

fetchmail -v

Sinon, bien vérifier que l'utilisation et le mot de passe sont entre guillemets dans :

vim ~/.fetchmailrc

Et le chemin vers le programme dans :

vim ~/.forward

Les retours de mails sont visibles dans :

ls -alh /var/lib/fetchmail/Maildir/new

ou :

ls -alh /home/user/Maildir/new

Erreurs procmail[modifier | modifier le wikicode]

Mails perdus / delivered to command: procmail -a "$EXTENSION" / delivered to command: IFS=' '&&exec /usr/bin/procmail -f-||exit 75 #user[modifier | modifier le wikicode]

Si les logs montrent que les mails sont bien envoyés, mais restent introuvables par ailleurs, vérifier la boite système via :

procmail -v

Si cela commence par /var/mail/, les emails perdus sont probablement tous dans le fichiers :

cat /var/mail/nobody

Pour les router vers les boites des utilisateurs, revoir la configuration des .forward et .procmailrc ci-dessus, jusqu'à voir les nouveaux dans :

ls -alh /home/user/Maildir/new

Unable to connect to remote host: Connection refused[modifier | modifier le wikicode]

/etc/init.d/postfix start

ou si les logs donnent :

NO [AUTHENTICATIONFAILED] Authentication failed.

alors réinstaller.

unknown key version / dkim=temperror (no key for signature)[modifier | modifier le wikicode]

Lorsqu'on envoie par webmail, il faut qu'un logiciel insère automatiquement la signature DKIM dans chaque courrier sortant. C'est pourquoi il faut installer OpenDKIM[13].

Lorsqu'il redémarre, le syslog peut indiquer des erreurs de permissions sur la clé qu'il faut corriger :

 /etc/init.d/opendkim restart
 tail /var/log/syslog
 chown opendkim /etc/ssl/private/dkim.key
 chmod 700 /etc/ssl/private/dkim.key

warning: cannot get RSA private key from file: nomdedomaine.fr.key disabling TLS support[modifier | modifier le wikicode]

Ceci apparait dans mail.log quand on chiffre la clef privée avec un mot de passe. Il ne faut donc pas en mettre.

warning: connect #1 to subsystem private/proxymap: Connection refused[modifier | modifier le wikicode]

Il manque la ligne dans master.cf :

proxymap  unix  -       -       n       -       -       proxymap

Références[modifier | modifier le wikicode]

  1. http://doc.ubuntu-fr.org/postfix
  2. https://www.digitalocean.com/community/tutorials/how-to-install-and-setup-postfix-on-ubuntu-14-04
  3. http://www.troubleshooters.com/lpm/201202/images/dovecot_setup.png
  4. (fr) Utilisation simple de procmail
  5. (en) A Quick, Practical Procmail Guide
  6. http://wiki.dovecot.org/LDA/Postfix
  7. http://www.clickz.com/clickz/column/1695095/hotmail-delivery-tips-sender-id-spf
  8. https://www.isalo.org/wiki.debian-fr/Amavisd-new_et_DKIM
  9. http://whatismyipaddress.com/blacklist-check
  10. http://themediaonline.co.za/2011/07/the-five-rules-of-designing-email/
  11. http://postfix.traduc.org/
  12. http://unix.stackexchange.com/questions/128630/postfix-email-bounced-mail-for-domain-loops-back-to-myself
  13. https://sourceforge.net/projects/opendkim/files/


Voir aussi[modifier | modifier le wikicode]