Association Générale des Utilisateurs de logiciels libres en Côte-d'Or
Rubriques
Notre ami Tux en rodéo sur l'escargot de Bourgogne :-) |
Configuration de postfix
Postfix est un serveur de courriel libre. Je pars du principe que postfix est correctement installé et fonctionnel. Si votre distribution vous pose des questions lors de l’installation, répondez ce que vous voulez, nous reprendrons la configuration depuis le début. Dans la suite de l’article, nous n’utiliseront que les composants propre à postfix. Des outils extérieurs pourraient pourtant être bien utile. Penser à faire une sauvegarde des fichiers de configuration avant toute modification. A partir de maintenant, je considère que mon domaine se nomme gnunux.priv, que ma machine s’appelle ibook et que j’ai un utilisateur local gnunux. Première envoi et réception de courrielFichier de configuration de base de postfixLe fichier de configuration principal de postfix est /etc/postfix/main.cf (le chemin peut varier suivant l’installation). Les options suivantes sont toutes les options nécessaires à son bon fonctionnement. Il faut donc commencé par vider le fichier de configuration. # > /etc/postfix/main.cf Il faut commencer par indiquer le nom de domaine de la machine. C’est le nom avec lequel postfix se présentera sur les serveurs relais : myhostname = ibook.gnunux.priv Le nom de domaine par défaut : mydomain = gnunux.priv Le nom de domaine de courrier sortant par défaut. Si dans votre outil de courriel vous mettez ,par exemple, "gnunux", il le transformera en "gnunux@gnunux.priv" myorigin = $mydomain Les courriels à destination de ces domaines seront conservés en local : mydestination = $myhostname, localhost, $mydomain Le relais est autorisé depuis les IP suivantes (ici seulement le poste local) : mynetworks = 127.0.0.0/8 Le chemin des commandes, n’est pas obligatoire pour certaine distribution : command_directory = /usr/sbin daemon_directory = /usr/lib/postfix queue_directory = /var/spool/postfix Postfix utilise cet utilisateur, ce n’est pas obligatoire sur certaine distribution : mail_owner = postfix Attention, "/etc/aliases.db" doit exister. Pour cela, faire : # touch /etc/aliases # postalias /etc/aliases Premier testDans une console, envoyer un message : # mail gnunux@gnunux.priv Subject : Test Je mets tout ce que je veux et je fini mon message par un "." seul sur une ligne . EOT # Pour savoir où arrive notre courriel, nous allons utiliser postconf. Cette commande liste toutes les options prise en compte par postfix. Nous auront celles vues au dessus auquelle il faut ajouter toutes les options par défaut. Il nous faut récuperer l’option "mail_spool_directory". # postconf -d|grep "mail_spool_directory" mail_spool_directory = /var/mail # Si nous allons dans le répertoire /var/mail nous verrons le fichier "gnunux" contenant notre courriel. Rediriger les courrielsLes courriels sont acheminés vers le serveur MX du domaine. Par exemple : # dig gnunux.info MX [...] gnunux.info. 3600 IN MX 20 mail.gnunux.info. [...] Postfix enverra donc le courriel à mail.gnunux.info. Si aucun serveur MX n’est trouvé, le courriel sera envoyé à l’adresse IP du serveur gnunux.info. Il peut être pourtant intéressant de modifier le serveur de destination. Attention, je ne parle pas de la possibilité de renvoyer TOUS les courriels vers une passerelle (en utilisant relayhost = adresse_ip). Pour cela, il faut rajouter les lignes suivantes au fichier de base : transport_maps = hash :/etc/postfix/transport Le fichier /etc/postfix/transport est un fichier de type hash. Postfix est capable de lire plusieurs type de donnée. Pour les connaître, il suffit de faire : # postconf -m [...] hash # Voici le contenu du fichier "/etc/postfix/transport". Les courriels envoyés à yogi.priv seront redirigés vers le serveur smtp 192.168.1.15 : yogi.priv smtp :[192.168.1.15]:25 Il faut créer maintenant le fichier hash. Pour cela, il faut faire : # postmap /etc/postfix/transport Un fichier /etc/postfix/transport.db sera alors créé. Réécriture d’adresseIl est possible de réécrire des adresses courriels : # canonical_maps = hash :/etc/postfix/canonical Dans le fichier /etc/postfix/canonical : gnu gnunux (ne pas oublier postmap) Toutes les adresses courriels, en entrée comme en sortie, envoyé à ou prevenant de gnu seront réécrient en tant que gnunux. Il est possible de différencier l’envoi et la réception : sender_canonical_maps = hash :/etc/postfix/sender_canonical recipient_canonical_maps = hash :/etc/postfix/recipient_canonical Cacher les serveurs locaux d’envoiModifions le serveur d’origine : myorigin = $myhostname Le serveur envoi maintenant les courriels en tant que gnunux@ibook.gnunux.priv. Pour cacher les sous-domaines (seulement pour le relayage, pas en local) : masquerade_domains = !yogi.gnunux.priv gnunux.priv Ici, tous les courriels qui transitent par ce serveur supprimeront les ....gnunux.priv, sauf pour yogi.gnunux.priv (puisque précédé d’un " !"). Il peut être intéressant d’exclure un utilisateur. Par exemple, tous les courriels de maintenance envoyé par root auront le même expéditeur : gnunux.priv. Il peut être intéressant de conserver les différenciations et donc connaître les serveurs de provenance : masquerade_exceptions = root Prévenir du changement d’adresse courrielPrenons un exemple, si j’envoi une courriel à rah@ibook.gnunux.priv, nous voyons dans les journaux (/var/log/mail.log) : <rah@ibook.gnunux.priv> : Recipient address rejected :
User unknown in local recipient table (in reply to RCPT TO
command)
Si nous rajoutons : relocated_maps = hash :/etc/postfix/relocated Dans /etc/postfix/relocated, nous mettons : rah@ibook.gnunux.priv rah@gnunux.info (ne pas oublier postmap) Nous avons maintenant : <rah@ibook.gnunux.priv> : Recipient address rejected :
User has moved to rah@gnunux.info
Liste noirVoici comment faire une liste noir : smtpd_sender_restrictions = check_sender_access hash :/etc/postfix/sender_checks Et dans le fichier /etc/postfix/sender_checks : root@yogi.priv 554 I don’t need your viagra ! (ne pas oublier postmap) Les courriels envoyés depuis root@yogi.priv seront refusés avec comme message "I don’t need your viagra !". L’option check_sender_access permet de vérifier l’envoyeur et l’option smtpd_sender_restrictions permet de restreindre les utilisateurs. Duplication des fluxBCC (blind carbon-copy), permet de rajouter un destinataire caché. Avec des expressions régulières nous allons pouvoir rajouter un destinataire. Le but étant de faire une duplication du courriel pour un serveur de test, voire une serveur de sauvegarde de courriel. Pour modifier le table bcc, nous allons utiliser : recipient_bcc_maps = regexp :/etc/postfix/recipient_bcc Dans le fichier /etc/postfix/recipient_bcc : /^((.*)@ibook\.gnunux\.priv)$/ $2@yogi.gnunux.priv Attention, il ne faut pas faire postmap puisque c’est un fichier d’expression régulière et non un fichier hash. Maintenance de postfixVoir la queue de postfix : postqueue -p La queue est la liste des courriels en attente. Vider la queue : postqueue -f Supprimer un courriel dans la queue : postsuper -d ID (l’ID est donné par la commande postqueue -p) Voir les statistiques de la queue : qshape incoming active deferred Les journaux d’activité sont /var/log/mail.*. Article précédent : Spamassassin dans KMail
Article suivant : Jouons avec bogofilter
Forum
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||