Outils pour utilisateurs

Outils du site


telnew_postfix

Postfix

Certains services sur telnew requièrent un serveur smtp pour pouvoir envoyer des mails de maintenance (notifications, mise à jours des utilisateurs/mot de passes…). On pense notamment à ce wiki et au gitlab.

D'autre part, la nouvelle politique de fonctionnement des googlegroups demande aux utilisateurs qui veulent écrire au nom du groupe de fournir un compte smtp pour relayer le message. Les googlegroups étant massivement utilisé dans l'associatif à Telecom, on ne pouvait plus faire ce qu'on voulait facilement. Certaines personnes utilisaient le compte de leur FAI, mais il faut être chez soi pour envoyer le mail…

C'est pour répondre à ces deux besoins qu'un serveur smtp postfix a été installé et configuré.

Installation

sudo aptitude install postfix

Configuration

L'essentiel de la configuration se trouve dans /etc/postfix/main.cf :

# See /usr/share/postfix/main.cf.dist for a commented, more complete version


# Debian specific:  Specifying a file name will cause the first
# line of that file to be used as the name.  The Debian default
# is /etc/mailname.
#myorigin = /etc/mailname

smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
biff = no

# appending .domain is the MUA's job.
append_dot_mydomain = no

# Uncomment the next line to generate "delayed mail" warnings
#delay_warning_time = 4h

readme_directory = no

# TLS parameters
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:${data_directory}/smtpd_scache
smtp_tls_session_cache_database = btree:${data_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.

smtpd_relay_restrictions = permit_mynetworks, permit_sasl_authenticated, reject_unauth_destination
myhostname = telnew.imt-lille.club
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases
myorigin = /etc/mailname
mydestination = postfix.imt-lille.club, localhost
relayhost =
mynetworks = 127.0.0.0/8 [::ffff:127.0.0.0]/104 [::1]/128
mailbox_command = procmail -a "$EXTENSION"
mailbox_size_limit = 0
recipient_delimiter = +

inet_interfaces = all
inet_protocols = all

# googlegroups
smtpd_recipient_restrictions = permit_sasl_authenticated
smtpd_sasl_local_domain = postfix.imt-lille.club

# local relay
smtp_generic_maps = hash:/etc/postfix/generic

:!: À chaque modification d'un fichier de conf postfix il faut penser à postmap /etc/postfix/file.

Authentification

Pour le local relay on n'a pas besoin d'utilisateurs : si le message provient de localhost, on laisse passer quoi qu'il arrive.

Par contre, pour les googlegroups, on n'a pas d'autres choix que de créer des utilisateurs qui devront s'authentifier avant d'envoyer leur courrier. Si ce n'était pas le cas, n'importe qui pourrait envoyer des mails depuis notre serveur (ce que font tous les générateurs de spam). Il est donc extrêmement important de ne pas pouvoir envoyer des mails en tant qu'anonyme.

Après une modif potentiellement critique de la conf, on peut toujours faire un test, depuis une autre machine que telnew, car en se connectant depuis le localhost il est normal de pouvoir envoyer un mail :

# telnet telnew.imt-lille.club 25
Trying 37.59.41.131...
Connected to telnew.imt-lille.club.
Escape character is '^]'.
220 serveur.mondomaine.com ESMTP

HELO myhost.fr
250 telnew.imt-lille.club

MAIL FROM: <cequejeveux@telnew.imt-lille.club>
250 ok

RCPT TO: <mymail@gmail.com>
250 ok

DATA
354 go ahead

Subject: pika
chu
.
250 ok 1231760818 qp 18364

QUIT
221 telnew.imt-lille.club
Connection closed by foreign host.

Si le mail est parti sans aucun problème, c'est qu'il y a un problème.

L'authentification ne se fait pas avec des utilisateurs postfix à proprement parler, mais via sasl, un gestionnaire de connexion lié au système.

Pour administrer les utilisateurs, voir la page de procédures liée.

Configuration DNS

Comme tout le monde ne fait pas toujours les choses bien, des serveurs sont configurés en “open relay”, et ce sont en général par eux que sont envoyés les courrier de spam. Du coup, il existe des mécanismes de certification (en mode bricolage technique) qui sont devenus des “standards” en ce qui concerne la réception de mail.

En d'autres termes, les providers de boîte mail ne peuvent pas savoir qu'on a fait le boulot de sécuriser notre serveur. Donc par défaut tous les mails envoyés depuis l'IP de telnew vont être taggés en douteux, et à cause du doute être placés dans la boîte de spam.

Pour palier à cela, il faut faire un enregistrement DNS particulier, de type SPF, du type :

"v=spf1 ip4:37.59.41.131 ip6:2001:41d0:8:5083::1 include:_spf.google.com ~all"

sur tous les domaines et sous-domaines qui sont susceptibles d'être source de mail (imt-lille.club, postfix.imt-lille.club, voire d'autres si affinité).

:!: Les guillemets font partie de la syntaxe

v=spf1

Version de la syntaxe SPF, tous les enregistrements SPF commencent basiquement par là.

ip4:37.59.41.131

Quand un mail est reçu de imt-lille.club, les e-mail providers vont faire une requête DNS de type SPF. Si l'adresse IP d'où provient le mail ne correspond pas à celle(s) renseignée(s) ici, le mail sera taggé douteux et passera en spam.

ip6:2001:41d0:8:5083::1

Même chose ici, sauf qu'on gère le cas où telnew et le mail provider communiquent en ipv6.

include:_spf.google.com

Cette ligne n'est pas à inclure dans tous les enregistrements SPF. Cependant, elle permet à google de prendre le relai sur l'envoi de mail (cf l'intro car le but du serveur de mail est aussi de communiquer avec les services google).

~all

Sans ce dernier statement, si le test au SPF est faux, le mail est immédiatement ignoré et ne sera même pas visible en spam. Le “~” indique qu'il faut laisser le bénéfice du doute à l'envoyeur. Ça évite de perdre des mails.

Débuggage

Si ces valeurs sont à changer, il faut le faire sur le gestionnaire OVH où est enregistré telnew.imt-lille.club. À l'heure où sont écrites ces lignes, les DNS d'OVH synchronisent toutes les heures à Xh30.

Si ça ne se passe pas comme prévu, on peut toujours demander à son client mail d'afficher les sources du mail, en général illisibles, dans laquelle un ctrl+F sur “SPF” donnera des indices.

telnew_postfix.txt · Dernière modification: 2017/12/06 12:57 par deldel