Devuan : Opensmtpd Client Auth

Article publié, le et modifié le
6 minute(s) de lecture

Cet article contient 1073 mots.
Source brute de l'article : MD

Description

OpenSMTPD est une libre implémentation du protocole SMTP tel que défini dans la RFC 5321 , avec quelques extensions standards additionnels. Il permet à des machines ordinaire d’échanger des mails avec d’autres systèmes parlant le protocole SMTP.

OpenSMTPD fait partie du système de base du système d’exploitation OpenBSD. Il a été “porté” sur d’autres OS, tel Devuan.

Informations :


Q : Pourquoi utiliser OpenSMTPD ?

Parce qu’OpenSMTPD est :

  • facile à configurer : un seul fichier texte !
  • reconnu comme étant fiable ET sécurisé.

Installation

apt install opensmtpd

  • le journal se trouve être : /var/log/mail.log

Configuration

  • Le fichier de configuration principal est : /etc/smtpd.conf

Pour envoyer un mail par SMTP à un service de mails nécessitant une identification, il est nécessaire de créer dans un premier temps, un fichier secrets avec les droits adéquats sur votre système, ensuite il nous reste à configurer le fichier smtpd.conf.

Fichier secrets

Création du fichier de secrets :

$ mkdir -p .config/mail
$ touch .config/mail/secrets
$ chmod 0640 .config/mail/secrets

Ensuite, il est nécessaire de le remplir de telle manière :
identifiant username:password
n'écrivez pas TEXTUELLEMENT cette information , remplacez-là par les informations ci-dessous :

  • identifiant est l’identifiant que vous choisissez soigneusement, et qui vous servira plus tard dans la configuration du fichier smtpd.conf ;
  • username est votre identifiant de connexion mail au service mail de votre fournisseur - généralement votre adresse mail - ;
  • password étant le mot de passe lié à votre identification mail.
Attention

Fichier smtpd.conf

Maintenant modifions le fichier /etc/smtpd.conf

Fichier : /etc/smtpd.conf

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
#	$OpenBSD: smtpd.conf,v 1.10 2018/05/24 11:40:17 gilles Exp $

# This is the smtpd server system-wide configuration file.
# See smtpd.conf(5) for more information.

table aliases file:/etc/aliases
table secrets file:/home/votre-id/.config/mail/secrets

queue compression

# To accept external mail, replace with: listen on all

listen on localhost

action "local" maildir alias <aliases>
action "relay" relay host smtp+tls://identifiant@serveur auth <secrets> mail-from "@your-domain.tld"

# Uncomment the following to accept external mail for domain "example.org"
#
# match from any for domain "example.org" action "local"
match for local action "local"
match from local for any action "relay"

Explications

Par rapport à la version originale, nous avons donc rajouté :

  • la ligne table secrets qui appelle le fichier .config/mail/secrets - ou son équivalent, si vous l’avez personnalisé
  • la ligne action relay qui nous permet de définir l’action nécessaire vers l’hôte relais par lequel nous enverrons les mails…
    • REMARQUEZ l’écriture identifiant@serveur :
      • c’est justement là qu’il faut remplacer la chaîne identifiant par celle que vous avez créée dans votre fichier secrets.
      • quant à la chaîne serveur, il faut la remplacer par l’adresse du serveur de mail, par exemple :
        mail.gandi.net.
    • la chaîne smtp+tls est le protocol que nous utilisons pour nous connecter au service de l’hôte mail relais…
      il est bien sûr possible d’utiliser les autres protocoles, tel que :
      • lmtp pour se connecter avec une session LMTP .
      • smtp pour essayer de se connecter avec une session STARTTLS si possible
      • smtp+tls pour obliger une connexion par le biais d’une session STARTTLS.
      • smtp+notls pour se connecter “en clair”, sans chiffrement
      • smtps pour se connecter en forçant la connexion TLS - port par défaut : 465.
      • si rien n’est spécifié, alors la connexion se fera sur le port 25.
    • la chaîne auth permet de spécifier la table secrets fournissant les données d’identification mail nécessaires.
    • la chaîne mail-from nous permet de spécifier le nom de domaine - ce qui permet d’éviter l’erreur Sender address rejected: Domain not found ;
      il faut bien sûr que ce domaine vous appartienne…
    • la ligne match … action "relay" est l’action qui sera déclenchée lors de l’envoi de mails à l’extérieur !

Gestion des alias

Un mot sur la gestion des alias système !

Il est intéressant de gérer l’alias relatif à votre compte root voire celui de votre utilisateur principal…

Éditez le fichier /etc/aliases, avec des droits administrateurs.
Vers la fin du fichier, modifiez root en lui indiquant vers quelle adresse mail vous désirez que les messages systèmes adressés au compte root vous soit envoyés !

Faites de même pour votre utilisateur système ;)

N’oubliez pas de recharger la base des aliases, grâce à l’usage de la commande newaliases !

Utilisation

Attention

Il est nécessaire de redémarrer le service :
# service opensmtpd restart

Envois

Soit :

  • echo "Test d'envois de mail on $(hostname); date: $(date)" | mail -s "Test de mail" adresse_mail_à_qui_envoyer
  • ou, echo "Test d'envois de mail on $(hostname); date: $(date)" | mail -s "Test de mail" root

Dans un cas, comme dans l’autre, le journal vous indiquera l’équivalent, en cas de réussite, d’un tel message :

Fichier : /var/log/mail.log

1
2
3
4
5
6
7
8
()
Apr 27 09:16:47 pc-z smtpd[1718]: 09cca279ca1178e4 smtp connected address=local host=***
Apr 27 09:16:47 pc-z smtpd[1718]: 09cca279ca1178e4 smtp message msgid=85868a25 size=474 nrcpt=1 proto=ESMTP
Apr 27 09:16:47 pc-z smtpd[1718]: 09cca279ca1178e4 smtp envelope evpid=85868a25fcb1569a from=<my-id@***> to=<my-id@***>
Apr 27 09:16:47 pc-z smtpd[1718]: 09cca279ca1178e4 smtp disconnected reason=quit
Apr 27 09:16:51 pc-z smtpd[1718]: 09cca27892fa38ea mta delivery evpid=85868a25fcb1569a from=<my-id@huc.fr.eu.org> to=<email@nom-de-domaine.tld> rcpt=<my-id@***> source="192.168.47.47" relay="80.67.160.70 (lautre.net)" delay=4s result="Ok" stat="250 2.0.0 Ok: queued as 53C92112839"
Apr 27 09:17:02 pc-z smtpd[1718]: 09cca27892fa38ea mta disconnected reason=quit messages=2
()

À partir de maintenant, vous pourrez envoyer depuis votre console ou vos scripts shell des mails avec authentification SMTP !

Erreurs

Retrouvez les différentes erreurs possibles sur mon article OpenBSD : Configurer smtpd.conf pour l'authentification (v6.4 >=)

Documentations

Le protocol SMTP est défini par la RFC 5321 :

RFC 5321

IETF Tools
HTML, PDF, TXT
RFC Editor
HTML, PDF, TXT

Manpages

Wikipédia