Installer un serveur mail

De Analyse Développement Hacking
Sauter à la navigation Sauter à la recherche
Naviguer dans ce wiki : Accueil du wiki - Objectifs - Administrateur - Développeur - Intégrateur - Jeux - Marketing - Multimédia - Objets numériques - We make Hack
Consulter le site : Accueil du site - Annuaire - Blog - Forum - Outils - Utilisateur     Consulter le Redmine : Accueil du Redmine

Sommaire

Installer un serveur de mail

Tester la connexion à un serveur SMTP

Port 25 - Port 587

Lancer une commande ping ou telnet permet de savoir si le serveur SMTP est à l'écoute.
Différents fournisseurs FAI bloquent le port 25 pour éviter le spam.
Connection refused - connect(2) for "localhost" port 25.
Contacter le FAI pour faire débloquer le port 25 si nécessaire.
Sinon, utiliser le port 587.

Ping un serveur SMTP

ping smtp.visionduweb.com
PING smtp.visionduweb.com (194.146.224.64) 56(84) bytes of data.
64 bytes from m-cluster.sivit.fr (194.146.224.64): icmp_seq=1 ttl=53 time=30.6 ms
ping -c 10 smtp.gmail.com
--- gmail-smtp-msa.l.google.com ping statistics ---
10 packets transmitted, 10 received, 0% packet loss, time 9011ms
rtt min/avg/max/mdev = 49.715/95.253/303.956/75.337 ms

Telnet avec un serveur SMTP

Telnet avec Visionduweb

telnet smtp.visionduweb.com 25
Trying 194.146.224.64...
Connected to smtp.visionduweb.com.
Escape character is '^]'.
220-SMTP Ready !
telnet smtp.visionduweb.com 587
Trying 194.146.224.64...
Connected to smtp.visionduweb.com.
Escape character is '^]'.
220-SMTP Ready !
Initier la conversation avec SMTP :
EHLO visionduweb.com
STARTTLS

Telnet avec Alwaysdata

telnet smtp-base.alwaysdata.net 25
Trying 185.31.40.81...
Connected to smtp-base.alwaysdata.net.
Escape character is '^]'.
220 smtpout1.paris1.alwaysdata.com ESMTP Exim 4.89 Fri, 07 Sep 2018 01:36:38 +0200

Telnet avec Gmail

telnet smtp.gmail.com 25
Trying 64.233.167.109...
Connected to gmail-smtp-msa.l.google.com.
Escape character is '^]'.
220 smtp.gmail.com ESMTP s10-v6sm7714541wrw.35 - gsmtp
Il est possible de se connecter à Gmail en texte brut (pas de négociation sécurisée) sur le port 587.
Par conséquent, vous devriez voir que telnet smtp.gmail.com 587 fonctionne très bien!
telnet smtp.gmail.com 587
Trying 74.125.133.108...
Connected to gmail-smtp-msa.l.google.com.
Escape character is '^]'.
220 smtp.gmail.com ESMTP m13-v6sm7405703wru.93 - gsmtp

Envoyer un mail depuis le terminal

Utiliser la messagerie avec le paquet mutt

Site officiel pour mutt : http://www.mutt.org
Documentation : http://www.mutt.org/doc/manual/

Installer mutt

sudo apt-get install mutt
mutt

Configurer mutt

La configuration de mutt se fait dans le fichier ~/.muttrc ou dans le fichier /etc/Muttrc.
Il est préférable de partir de zéro.
Créer le fichier .muttrc dans votre home utilisateur.
Exemple pour l'utilisateur root :
su
cd ~/
touch .muttrc
nano .muttrc
Créer la configuration de mutt pour Linux Mint ou Ubuntu
Je crée deux fichiers de configuration .muttrc pour l'utilisateur root et pour l'utilisateur standard.
# configuration de base
set realname = "Nom utilisateur qui envoie le message"
set header_cache =~/.mutt/cache/headers
set certificate_file =~/.mutt/certificates
set message_cachedir =~/.mutt/cache/bodies

# configuration imap
set spoolfile=imaps://imap.gmail.com:993/INBOX
set imap_user = "{votre @ email}"
set imap_pass = "{votre password}"
set imap_passive="no"
set imap_check_subscribed="yes"
set imap_list_subscribed="yes"

# configuration SMTP
set smtp_url = "smtp://{votre @ email}@smtp.gmail.com:587/"
set smtp_pass = "{votre password}"
set from = "{votre @ email}@gmail.com"
set use_envelope_from=yes # Pour que postfix ou sendmail ne change pas votre from

# En complément
set trash = "imaps://imap.gmail.com/[Gmail]/Trash"
set postponed="+[Gmail]/Draft"
set folder = "imaps://imap.gmail.com:993/"
set imap_check_subscribed
set mail_check = 120
set timeout = 300
set imap_keepalive = 300
set signature='/signature.txt'

# locales FR pour les noms des jours et mois.
# Cette variable est prise en compte sous Mint et Ubuntu.
# Cette variable n'est pas prise en compte sous Debian et provoque une erreur.
set locale="fr_FR"

# Format de date
set date_format="%A %d %b %Y à %H:%M:%S (%Z)"

# phrase d'intro pour réponse quotée
set attribution="Le %d, %n a écrit :"
set forward_format="[Fwd: %s]"
set forward_quote

#
mailboxes !

#Editeur
set edit_hdrs
auto_view text/html
#set editor="nano" # Indiquer le choix de votre éditeur de texte.

color attachment magenta default            # attachments
color body brightred default "(ftp|http)://[^ ]+"       # point out URLs
color body brightcyan default [-a-z_0-9.]+@[-a-z_0-9.]+ # e-mail addresses
color bold brightblue default               # boldface text
color error brightwhite red                 # error messages
color hdrdefault magenta default            # default color of message header
color header brightmagenta default ^(From): # From and Subject header
color header brightwhite default ^(Subject): # From and Subject header
color header brightwhite default ^(Date): # Date header
color header white default ^(In-Reply-To):
color indicator brightred default                   # indicator bar
color markers brightblue default            # wrapped line markers (+)
color message brightblack green             # status messages
color normal default default                # default
color quoted yellow default                 # quoted text, 1st quote level
color quoted1 green default                 # quoted text, 2nd quote level
color quoted2 brightblue default            # quoted text, 3rd quote level
color quoted3 blue default                  # quoted text, 4th quoet level
color search black yellow                   # matched search patterns in pager
color signature red default                 # the signature (after sigdashes)
color status default blue                   # status lines
color tilde brightblue default              # ``~ used to pad blank lines
color tree green default                    # thread tree in the index menu
color underline brightgreen default         # underlined text

# Encodage a utiliser
set charset=utf-8
set send_charset=utf-8

set pager_index_lines=7
set pager_stop
Créer la configuration de mutt pour Debian
Je crée deux fichiers de configuration .muttrc pour l'utilisateur root et pour l'utilisateur standard.
La configuration de Debian 9 est basée sur la configuration précédente pour Mint et Ubuntu.

Première utilisation

Démarrer mutt

Démarrer mutt avec la commande mutt, en étant root, ou, avec un simple utilisateur.
Le programme va proposer la création automatique des dossiers et fichiers nécessaires pour stocker les mails de l'utilisateur. Accepter.

Erreurs rencontrées

Envoyer un mail avec une configuration de mutt par défaut
Un message d'erreur va être affiché si la configuration de mutt n'est pas configuré pour envoyer des messages.
# Le message d'erreur que j'ai obtenu avant de configurer mutt avec la configuration fonctionnelle partagée plus haut :
Erreur en envoyant le message, fils terminé avec le code 127 (Exec error.).
Impossible d'envoyer le message.
NXDOMAIN Domain name not found
Un deuxième message d'erreur peut être rencontré, si on tente d'envoyer un mail localement, à l'utilisateur root@MonDomaineLocal :
DNS Error: 5084189 DNS type 'mx' lookup of MonDomaineLocal responded with code NXDOMAIN Domain name not found: MonDomaineLocal
Envoyer un mail pour l'utilisateur local en passant par le SMTP de Google, forcément Google ne sait pas comment joindre notre machine.
Il faut utiliser un MTA local à ce moment la, par exemple, installer Postfix pour une utilisation locale uniquement.

Todo.png
Si le message est bien envoyé à un mail valide, par exemple "mail@visionduweb.com", alors, le mail sera bien réceptionné depuis le client de messagerie habituel.
Erreur de variable locale
La variable locale semble bien être prise en compte dans le manuel de Mint ou de Ubuntu pour les valeurs de .muttrc acceptées.
Cette valeur doit être commentée avec un autre système d'exploitation pour éviter une erreur affichée au lancement de mutt.
La variable locale n'est pas présente dans le manuel de mutt / .muttrc officiel. Source : http://www.mutt.org/doc/mutt.1.txt
La variable locale n'est pas présente dans le manuel de mutt / .muttrc proposé par Debian.
La connexion IMAP ne s’établit pas vers Gmail
Quand je lance mutt, la connexion ne s’établit pas.
En acceptant l'appareil depuis Gmail, la connexion devient fonctionnelle comme affiché depuis le terminal lors du démarrage de mutt.
SMTP No authenticators available
Lors de l'envoi du message je rencontre l'erreur suivante après l'identification SMTP : No authenticators available.
Une première piste en ajoutant la variable set smtp_authenticators = 'login' ne me permet pas d'envoyer le message.
(En vert) SSL/TLS connection using TLS1.2 (ECDHE-RSA/CHACHA20-POLY1305/AEAD)
(En rouge) No authenticators available.
J'obtiens cette erreur avec un serveur web basé sur Debian 9 SID.
Avec une machine virtuelle basée sur Debian 9 XFCE, je peux envoyer des mails directement.
SASL est apparemment requis pour que mutt s'authentifie à l'aide de smtps.
Installer le paquet libsasl2-modules me permet d'envoyer le message : sudo apt install libsasl2-modules
APT a répertorié ce paquet comme "recommandé", ce qui n'est pas un bogue, ce paquet n'étant pas indispensable pour exécuter mutt.
Droits en écriture sur le dossier local pour conserver les messages
Quand un envoie de message n'aboutit pas, il est nécessaire d'annuler l'action en cours.
L'option pour annuler l'envoie du message propose de le conserver avec la touche yes pour valider.
Dans mon cas, le dossier [Gmail] appartenait à root au lieu de l'utilisateur local utilisé pour tester l'envoi du message.
/home/USER/Mail/[Gmail]/Draft: Permission denied (errno = 13)
Une fois le propriétaire et le groupe changé pour l'utilisateur par défaut, USER, le message annulé peut être correctement enregistré.
Notes complémentaires de Blabla Linux
Éditer le fichier de conf qui se trouve dans "~/.muttrc " ou plus simplement /home/user/.muttrc
Ajouter ce texte en le modifiant selon t'es propre info (ici pour gmail) :
set from = "ADRESSE_MAIL@gmail.com"
set realname = "NOM_PRENOM_ASSOCIER_A_L'ADRESSE_MAIL"
set imap_user = "ADRESSE_MAIL@gmail.com"
set imap_pass = "PASSWORD"
set folder = "imaps://imap.gmail.com:993"
set spoolfile = "+INBOX"
set postponed ="+[Gmail]/Drafts"
set header_cache =~/.mutt/cache/headers
set message_cachedir =~/.mutt/cache/bodies
set certificate_file =~/.mutt/certificates
set smtp_url = "smtp://ADRESSE_MAIL@smtp.gmail.com:587/"
set smtp_pass = "PASSWORD"
set move = no
set imap_keepalive = 900
Ensuite tu peux envoyer des mails comme ceci :
echo "TITRE_DU_MAIL" | mutt -s "SUJET_DU_MAIL" ADRESSE_DE_DESTINATION

Les commandes de mutt

Lire les mails avec mutt

q   	Quit
d 	Del
u	Undel
s	Save
m	Mail
r	Reply
g	Group
?	Help
Marquer les mails à supprimer avec la touche "d".
Quitter mutt. Un message de confirmation demande si les mails doivent être supprimés.
Vérifier l'encodage des messages
# Démarrer mutt et coller la commande suivante dans l'interface pour vérifier l'encodage et s'assurer de la prise en compte des accents :
:set &charset ?charset
# Le message suivant va être affiché :
charset="utf-8"

Envoyer un mail avec mutt

# Pour envoyer un message il suffit de taper "m".
L'interface d'envoi de mail s'ouvre.
# Saisir le destinataire, par exemple, l'utilisateur root, en local.
To :
# Indiquer le sujet du mail :
Subject :
# Écrire le contenu du message :
Notre premier message.
# Une fois la rédaction du mail terminée, ctrl+x pour enregistrer le message.
# Appuyer sur la touche "y" pour sauvegarder.
# Appuyer sur la touche "y" pour envoyer le courriel.
Si vous recevez le courriel c'est que votre serveur de courriel fonctionne correctement.

Envoyer un message avec une pièce jointe depuis le terminal

mutt -a README -s essai -c mail@visionduweb.com < /dev/null

Documentation complémentaire pour mutt

Mutt : client de messagerie en console : https://doc.ubuntu-fr.org/mutt
Traduction de la documentation de Mutt : http://cedricduval.free.fr/mutt/fr/
Source : https://nickdesaulniers.github.io/blog/2016/06/18/mutt-gmail-ubuntu/
Le courrier en console : https://formation-debian.viarezo.fr/mail-console.html
A Command Line Email Client to Send Mails from Terminal : https://www.tecmint.com/send-mail-from-command-line-using-mutt-command/

Utiliser la messagerie avec le paquet mailutils

Installer mailutils

# Installer mailx contenu dans le paquet mailutils pour utiliser la commande mail :
sudo apt-get install mailutils
# Avoir plus d’information sur ce que mailutils peut gérer :
mu-tool info

Utiliser la commande mail

# Lancer le programme mail :
mail
# Lire un mail avec son numéro et entrée :
1
# Supprimer le message qui a été affiché :
d
# Lire le mail suivant :
f
# Lire tous les mails suivants :
f *
# Supprimer les mails affichés par la commande mail :
# Supprimer les mails de 1 à 5 :
d 1-5
# Supprimer tous les mails :
d *
# Envoyer un message en ligne de commande :
mail -s "Hello World !" mail@visionduweb.com < /dev/null
# Envoyer un message en ligne de commande avec un message de confirmation dans le terminal.
echo "Mail envoyé le $(date)" | mail -s "Test envoi de mail depuis $HOST" mail@visionduweb.com
# Si le message suivant est affiché, l’envoie d’un mail à un serveur distant n’est pas supporté, le mail ne peut pas être envoyé.
# Configurer alors le serveur de mail par défaut de Debian Exim.
Mailing to remote domains not supported
# Accéder aux mails d'un utilisateur :
mail -f /var/spool/mail/user
# A quoi sert ce path ?
/var/mail/
Source complémentaire : https://fr.wikipedia.org/wiki/Mail_(Unix)

Utiliser la commande mailx

# Lancer le programme mailx :
mail
# Envoyer un message en ligne de commande :
# echo "test" | mail -s "test mail" mail@visionduweb.com
# echo "Mail envoyé le $(date)" | mail -s "Test envoi de mail depuis $HOST" mail@visionduweb.com

Autres exemples pour envoyer un mail en ligne de commande Linux

Ko.png https://tecadmin.net/ways-to-send-email-from-linux-command-line/
Ko.png 16 Command Examples to Send Email From The Linux Command Line : https://blog.edmdesigner.com/send-email-from-linux-command-line/

Programme pour envoyer un mail

Exim

Introduction à Exim

Exim4 est le serveur mail installé par défaut sur Debian.
Consulter le manuel Exim sur le wiki de Debian : https://wiki.debian.org/Exim
Consulter la FAQ Exim sur le wiki de Debian : https://wiki.debian.org/PkgExim4UserFAQ

Installer et configurer le serveur de mails Exim

# Installer Exim.
sudo apt install exim4
# Configurer automatiquement Exim.
sudo dpkg-reconfigure exim4-config
# Dans cet exemple, la valeur "visionduweb.fr" ne me permettra pas d'envoyer des mails distants vers une adresse mail de destination dont le domaine est "visionduweb.fr".
# J'obtiendrais l'erreur suivante dans le mail qui sera renvoyé sur le système :  Unrouteable address
# Je devrais reconfigurer Exim une seconde fois pour renseigner la valeur du hostname du VPS à la place de "visionduweb.fr".
# Trouver le hostname avec la commande hostname.
Choisir « internet site » pour pouvoir envoyer et recevoir les emails via le protocol SMTP.
Donner un nom au système email. (visionduweb.fr)
Ne rien modifier sur la page suivante. (127.0.0.1 ; ::1_)
Pour les autres destinations, utiliser le même nom que le nom du système email. (visionduweb.fr)
Ne rien modifier sur la page suivante. (Domaines à relayer.)
Ne rien modifier sur la page suivante. (Machines à relayer.)
Cliquer sur NON à la demande de garder un nombre minimal de requêtes DNS.
Choisir ensuite l’option mbox. (Format « mbox » dans /var/mail)
Choisir de ne pas découper le fichier de configuration de Exim en plusieurs petits fichiers configurables individuellement.
Ajouter toutes les adresses emails sur lesquelles vous souhaitez recevoir les alertes. L’ajout de root n’est pas obligatoire. (contacter@visionduweb.fr)
# Le rendu de cette configuration assistée :
sudo nano /etc/exim4/update-exim4.conf.conf
# Les informations de status de Exim :
sudo /etc/init.d/exim4 status
# Consulter les logs de Exim :
cat /var/log/exim4/mainlog

Envoyer un mail de test en ligne de commande

# Vérifier la bonne réception dans votre boîte mail.
mail -s "Hello World !" contacter@visionduweb.fr < /dev/null
# Ce test devrait afficher que le corps du mail est laissé vide.
Null message body; hope that's ok
# Si la commande mail n'est pas reconnue :
-bash: mail : commande introuvable
# Installer mailutils :
sudo apt-get install mailutils
# Recommencer l'envoie du test précédent.
mail -s "Hello World !" contacter@visionduweb.fr < /dev/null
mail: Corps du message vide; en espérant que cela soit correct
# La commande a fonctionnée. Je vérifie ma messagerie de Bureau. Je n'ai pas de nouveau mail.
# Je relance la commande depuis le serveur, et, je vois une information affichée par après :
Vous avez du courrier dans /var/mail/debian
# Je comprend que l'envoie de mail en externe a échouée, mais, l'information a bien été transmise à la messagerie système.
# Lire mon mail système avec mailx
"/var/mail/debian": 1 message 1 nouveau
>N   1 Mail Delivery Syst mar. mars 19 01:  53/1793  Mail delivery failed: ret
? 
Return-path: <>
Envelope-to: debian@vps178370.vps.ovh.ca
Delivery-date: Tue, 19 Mar 2019 01:06:26 +0100
Received: from Debian-exim by vps178370.vps.ovh.ca with local (Exim 4.92)
	id 1h62Gw-00026v-EO
	for debian@vps178370.vps.ovh.ca; Tue, 19 Mar 2019 01:06:26 +0100
X-Failed-Recipients: contacter@visionduweb.fr
Auto-Submitted: auto-replied
From: Mail Delivery System <Mailer-Daemon@visionduweb.fr>
To: debian@vps178370.vps.ovh.ca
Content-Type: multipart/report; report-type=delivery-status; boundary=1552953986
-eximdsn-2111507310
MIME-Version: 1.0
Subject: Mail delivery failed: returning message to sender
Message-Id: <E1h62Gw-00026v-EO@vps178370.vps.ovh.ca>
Date: Tue, 19 Mar 2019 01:06:26 +0100

--1552953986-eximdsn-2111507310
Content-type: text/plain; charset=us-ascii

This message was created automatically by mail delivery software.

A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:

  contacter@visionduweb.fr
    Unrouteable address

--1552953986-eximdsn-2111507310
Content-type: message/delivery-status

Reporting-MTA: dns; vps178370.vps.ovh.ca

Action: failed
Final-Recipient: rfc822;contacter@visionduweb.fr
Status: 5.0.0

--1552953986-eximdsn-2111507310
Content-type: message/rfc822

Return-path: <debian@vps178370.vps.ovh.ca>
Received: from debian by vps178370.vps.ovh.ca with local (Exim 4.92)
	(envelope-from <debian@vps178370.vps.ovh.ca>)
	id 1h62Gw-00026t-Da
	for contacter@visionduweb.fr; Tue, 19 Mar 2019 01:06:26 +0100
Subject: Hello World !
To: <contacter@visionduweb.fr>
X-Mailer: mail (GNU Mailutils 3.5)
Message-Id: <E1h62Gw-00026t-Da@vps178370.vps.ovh.ca>
From: Debian <debian@vps178370.vps.ovh.ca>
Date: Tue, 19 Mar 2019 01:06:26 +0100

--1552953986-eximdsn-2111507310--
Quitter le message avec " q puis entrée ".

Relancer le test d'envoi de mail

# Le mail n'arrive pas et se retrouve dans la boîte mails de l'utilisateur local.
mail -s "Hello World !" contacter@visionduweb.fr < /dev/null
mail: Corps du message vide; en espérant que cela soit correct
# Avec le test suivant et mon mail en .com, le mail est bien réceptionné à distance comme provenant de l'utilisateur VPS.
echo "test" | mail -s "test mail" mail@visionduweb.com
# Je retente avec cette commande et mon mail en .fr :
echo "test" | mail -s "test mail" contacter@visionduweb.fr
# Le mail refuse à nouveau de sortir mais est lisible en local avec l'erreur "Unrouteable address".
# Le problème est sûrement du au nom local visionduweb.fr renseigné dans la configuration de Exim4.
# Il faut relancer la configuration pour donner un autre nom local que visionduweb.fr, en utilisant de préférence le hostname du VPS.

Vérifier le routage d'une adresse Exim4

# Évidemment, on avait déjà compris que la valeur indiquée dans notre configuration nous provoque une erreur.
sudo exim -bt contacter@visionduweb.fr
R: system_aliases for contacter@visionduweb.fr
contacter@visionduweb.fr is undeliverable: Unrouteable address
# L'utilisateur local quant à lui est bien renseigné.
sudo exim -bt UTILISATEUR-LOCAL
# ou
sudo exim -bt UTILISATEUR-LOCAL@visionduweb.fr
# Retourne les mêmes informations.
R: system_aliases for UTILISATEUR-LOCAL@visionduweb.fr
R: userforward for UTILISATEUR-LOCAL@visionduweb.fr
R: procmail for UTILISATEUR-LOCAL@visionduweb.fr
R: maildrop for UTILISATEUR-LOCAL@visionduweb.fr
R: lowuid_aliases for UTILISATEUR-LOCAL@visionduweb.fr (UID 1000)
R: local_user for UTILISATEUR-LOCAL@visionduweb.fr
UTILISATEUR-LOCAL@visionduweb.fr
 router = local_user, transport = mail_spool

Recommencer la configuration de Exim4

Au lieu de visionduweb.fr en première valeur, tenter la valeur de hostname (vps178370).
Choisir « internet site » pour pouvoir envoyer et recevoir les emails via le protocol SMTP.
Donner un nom au système email. (vps178370)
Ne rien modifier sur la page suivante. (127.0.0.1 ; ::1_)
Pour les autres destinations, utiliser le même nom que le nom du système email. (vps178370)
Ne rien modifier sur la page suivante. (Domaines à relayer.)
Ne rien modifier sur la page suivante. (Machines à relayer.)
Cliquer sur NON à la demande de garder un nombre minimal de requêtes DNS.
Choisir ensuite l’option mbox. (Format « mbox » dans /var/mail)
Choisir de ne pas découper le fichier de configuration de Exim en plusieurs petits fichiers configurables individuellement.
Ajouter toutes les adresses emails sur lesquelles vous souhaitez recevoir les alertes. L’ajout de root n’est pas obligatoire. (contacter@visionduweb.fr)
# L'adresse est maintenant routable.
sudo exim -bt contacter@visionduweb.fr
R: dnslookup for contacter@visionduweb.fr
contacter@visionduweb.fr
 router = dnslookup, transport = remote_smtp
 host mx1.ovh.net [188.165.47.122] MX=1
 host mx2.ovh.net [87.98.132.45]   MX=5
 host mxb.ovh.net [46.105.45.21]   MX=100
Le test d'envoi depuis le serveur fonctionne cette fois correctement pour mes deux adresses mail !
mail -s "Hello World !" contacter@visionduweb.fr < /dev/null
mail -s "Hello World !" mail@visionduweb.com < /dev/null

Exim4 est fonctionnel

# Résolu.
# Script d'alerte administrateur pour relever les erreurs du site avec PHP mail() n'envoie pas le mail distant.
# Je remplace la ligne suivante dans le fichier de configuration php.ini de PHP FPM, pour permettre aux mailx de sortir.
# sendmail_path = /usr/sbin/sendmail -t -i
# Par la ligne suivante :
# sendmail_path = /usr/sbin/sendmail -t -i -F contacter@visionduweb.fr -f contacter@visionduweb.fr
# Ne change rien apparemment mais ok, la configuration a été modifiée.
# On me propose de modifier le chemin /usr/sbin/sendmail pour celui de Exim4 avec le chemin suivant /usr/sbin/exim4.
# Sans les options complémentaires, Mediawiki arrive bien à envoyer des mails.
# sendmail_path = /usr/sbin/exim4 -t -i
# Je dois ajouter les options complémentaires pour permettre aux simples scripts mails en PHP d'être délivrés.
# sendmail_path = /usr/sbin/exim4 -t -i -F contacter@visionduweb.fr -f contacter@visionduweb.fr
# Résolu.
# Utiliser un script PHP pour alerter l'administrateur en cas de panne.
# Les headers de PHP m'ont permis de changer le format du mail de l'émetteur avec mon mail.
# Les headers peuvent permettre d'améliorer le score de légitimité du mail (Éviter les dossiers de spam).
# Résolu.
# Les mails sortent depuis Mediawiki, pour permettre les inscriptions, le changement de mot de passe et la récupération de mot de passe.
# Résolu.
# Le format du mail de l'émetteur est très technique quand envoyé depuis le terminal " debian@vps178370.vps.ovh.ca ".
# Utiliser le paramètre -r mail pour définir l'expéditeur du mail en ligne de commande.
# mail -s "Hello World !" -r contacter@visionduweb.fr mail@visionduweb.com < /dev/null
# L'option -a permet de renseigner le header. Je n'ai pas utilisé d'avantage cette possibilité : mail -a from:contacter@visionduweb.fr mail@visionduweb.com
# A faire.
# Le test de récupération de mot de passe effectué depuis le wiki se retrouve dans les spams de la messagerie hotmail.
--> Voir comment améliorer le score de légitimité du mail avec la configuration au niveau d'Exim ou de Apache2. DKIM. DMark.

En savoir plus sur les flags

 Les drapeaux ont les significations suivantes:
S - Faites toutes les réécritures au temps SMTP. Cela signifie que tous les indicateurs suivants sont définis immédiatement, à mesure que les données auxquelles ils s'appliquent arrivent, et qu'ils ne sont pas retardés.
F - Réécrivez l'enveloppe à partir du champ.
f - Réécrivez le champ d'en-tête De:.
r - Réécrivez le champ d’en-tête Répondre à:.
s - Réécrivez le champ d'en-tête Sender-To:.
Lien complémentaire : http://www.exim.org/exim-html-current/doc/html/spec_html/ch-address_rewriting.html

Rediriger les mails de root vers sa propre boîte mail à l'aide d'un alias

Définir un alias pour root.
Par défaut tous les emails sont envoyés à l’utilisateur root.
On va indiquer un alias pour que tous les emails envoyés à root soient redirigés vers une véritable adresse mail.
sudo nano /etc/aliases
# /etc/aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
root: le_premier_utilisateur_créé
On voit que tous les emails sont envoyés à root et que root est redirigé vers le premier utilisateur qui a été créé à l’installation de Debian.
Le premier utilisateur doit être remplacé par une adresse mail valide.
# /etc/aliases
mailer-daemon: postmaster
postmaster: root
nobody: root
hostmaster: root
usenet: root
news: root
webmaster: root
www: root
ftp: root
abuse: root
noc: root
security: root
root: mail@visionduweb.com
Faire un test en envoyant un email à root :
mail -s "Mon message pour root." root
Le mail doit arriver dans la boite personnelle qui a été configurée.

Commandes complémentaires

Pour visualiser les courriers en file d’attente :
mailq
Pour relancer le process de queue :
runq
Pour forcer la livraison des emails, y compris les “gelés” et vider la queue :
exim -qff
Pour "dégeler" les messages "gelés"/"frozen" :
mailq|gawk '/frozen/{print $3}'|xargs exim4 -Mt;runq
Pour supprimer un message de la file d’attente :
exim -Mrm <message-id>
Le <message-id> est de type 1VEcvi-0001xI-Pz.
Il est affiché lors des mailq :
root@debian-preprod:~# mailq
2h  2.9K 1VEcvi-0001xI-Pz <> *** frozen ***
adresse@email.com

Configurations complémentaires

Localiser les fichiers de configuration complémentaires

# Consulter la configuration de Exim.
sudo nano /etc/exim4/exim4.conf.template
# Éviter de modifier directement le fichier généré par update-exim4.conf.
sudo nano /var/lib/exim4/config.autogenerated

Générer un certificat

https://wiki.debian.org/Exim#Things_you_might_want_to_configure
https://help.ubuntu.com/lts/serverguide/exim4.html.en

SPF filtering

SPF filtering
https://wiki.debian.org/Exim#SPF_filtering

DNS Blacklists

https://wiki.debian.org/Exim#DNS_Blacklists

Outil de diagnostique

https://wiki.debian.org/Exim#Install_diagnostic_tools

Scanner le spam

https://wiki.debian.org/Exim#Spam_scanning

Configurer le SMTP pour exim4

hostname
vps178370
hostname --fqdn
vps178370.vps.ovh.ca
# Le serveur de messagerie ne semble pas écouter sur une adresse publique.
# Il accepte uniquement le courrier entrant à partir de 127.0.0.1 qui est localhost.
# Cela explique pourquoi l’envoi de courrier directement à partir du serveur à l’aide de commandes shell fonctionne.
# Si Exim est bien configuré, il peut envoyer des mails sans service SMTP extérieur, comme un vrai serveur de messagerie.
hostname -i
127.0.1.1
# Attention !
# Ne pas communiquer en claire les informations de connexion avec l'hôte SMTP.
# Installer avant ça le certificat TLS pour Exim.
# Suite à mes tests, sans certificat TLS, les mails peuvent sortir, que les données de connexion SMTP soit renseignée, ou non !
# La configuration SMTP suivante ne semble pas fonctionner pour moi, je ne vois pas l'émetteur du mail réceptionné correspondre aux valeurs du SMTP.
# Déclarer le serveur SMTP.
sudo nano /etc/exim4/passwd.client
# Le renseigner avec la configuration d'un mail OVH, disponible via l'offre d'hébergement gratuite.
ssl0.ovh.net:Utilisateur:Mot_de_passe
# Mettre les bons droits sur le fichier.
sudo chown Debian-exim:root /etc/exim4/passwd.client
sudo chmod 640 /etc/exim4/passwd.client
# Finaliser l'installation.
sudo update-exim4.conf
sudo service exim4 restart ( Ou sudo /etc/init.d/exim4 restart )
# Dans mon cas, il faudrait consulter des tutoriels pour Exim et le SMTP de OVH.
# Les tutoriels suivants pour paramétrer Exim pour le SMTP de Gmail, Mailjet et Yandex ne m'ont pas permis d'avancer sur ma configuration SMTP pour un mail OVH.
Ko.png Configurer Exim4 pour utiliser une adresse mail GMail : http://bernaerts.dyndns.org/linux/75-debian/278-debian-sendmail-gmail-account
Ko.png Setup Exim to Send Email Using Gmail in Debian : https://www.vultr.com/docs/setup-exim-to-send-email-using-gmail-in-debian
Ko.png Fast Mail Fast Smarthost - Fast dirty mail hack : Gmail Mailjet Yandex : https://forum.vestacp.com/viewtopic.php?f=12&t=7422

Autoriser les paquets SMTP à sortir du réseau

Créer une règle pour ouvrir le port 25 avec iptables
# Il est inutile d'appliquer cette règle pour ma propre configuration de Exim puisque pour le moment, l'utilisation d'un SMTP externe ne fonctionnant pas.
# De plus, les mails sortent déjà, sans avoir à appliquer une autorisation sur le port 25.
# Ajouter cette règle iptables semble écraser les autres règles.
# Créer le fichier qui va contenir les règles iptables.
sudo nano /etc/iptables.firewall.rules
# Ajouter les lignes suivantes :
*filter
# Autoriser l'accès SMTP.
# Vérifier que la nouvelle règle est prise en compte avec sudo iptables -L
# La ligne suivante doit être affichée : ACCEPT tcp -- anywhere anywhere tcp dpt:smtp
-A INPUT -p tcp --dport 25 -j ACCEPT
COMMIT
# Activer la règle.
sudo iptables-restore < /etc/iptables.firewall.rules
Appliquer le changement sans passer par une règle
# Pour ne pas écraser les autres règles, ajouter ou retirer cette règle en une seule ligne depuis le terminal.
# Ouvrir le port 25
iptables -A INPUT -p tcp -m tcp --dport 7777 -j ACCEPT
# Fermer le port 25
iptables -D INPUT -p tcp -m tcp --dport 7777 -j ACCEPT

SPF DKIM DMARC

Introduction

Le nombre de messages non sollicités envoyés chaque jour reste relativement élevé, malgré les nombreuses tentatives de création d'outils anti-spam.
SPF (Sender Policy Framework) est une entrée de texte DNS qui affiche une liste de serveurs qui devraient être considérés comme autorisés à envoyer du courrier pour un domaine spécifique.
Les propriétaires / administrateurs sont les seules personnes autorisées à ajouter / modifier cette zone de domaine principal.
DKIM (DomainKeys Identified Mail) doit plutôt être considéré comme une méthode permettant de vérifier que le contenu des messages est digne de confiance, ce qui signifie qu'ils n'ont pas été modifiés depuis le moment où le message a quitté le serveur de messagerie initial. Cette couche supplémentaire de fiabilité est obtenue par la mise en œuvre du processus de signature standard de clé publique / privée. Une fois encore, les propriétaires du domaine ajoutent une entrée DNS avec la clé publique DKIM qui sera utilisée par les destinataires pour vérifier que la signature du message DKIM est correcte, tandis que le côté expéditeur du serveur signera les messages avec la clé privée correspondante.
DMARC (authentification, rapports et conformité des messages basés sur le domaine) habilite SPF et DKIM en énonçant une stratégie claire qui doit être utilisée pour les deux outils.

Implémenter SPF avec EXIM

# SPF par défaut de OVH.
# SPF du domaine visionduweb.fr
visionduweb.fr.	600 	SPF 	"v=spf1 include:mx.ovh.com ~all"
# Vérifier le score du mail utilisé pour envoyer des messages.
# Des propositions sont retournées pour améliorer la configuration.
http://www.mail-tester.com
# Lancer le test en envoyant un mail à mail tester.
mail -s "Hello World !" -r contacter@visionduweb.fr test-11c5p@mail-tester.com < /dev/null
SpamAssassin pense que vous pouvez vous améliorer -4.2
-1.985		PYZOR_CHECK		Similar message reported on Pyzor (http://pyzor.org)
https://pyzor.readthedocs.io/en/latest/
Assurez-vous de tester avec un contenu réel, les Newsletters tests seront toujours détectées par Pyzor
Ajustez votre message ou demandez à être whitelisté (http://public.pyzor.org/whitelist/)
-1.274		RDNS_NONE		Delivered to internal network by a host with no rDNS
Vérifiez que vous avez un rDNS rattaché à votre hostname et que ce rDNS correspond à l'IP du serveur d'envoi
-0.972		SPF_SOFTFAIL		SPF: sender does not match SPF record (softfail)
Vous n'êtes pas autorisé à utiliser l'une de vos adresses e-mail d'envois -4
[SPF] visionduweb.fr n'autorise pas votre serveur 139.99.173.195 à utiliser contacter@visionduweb.fr -3
Sender Policy Framework (SPF) est un système de validation d'e-mail conçu pour empêcher le spammage en détectant l'usurpation d'adresse e-mail, une vulnérabilité classique, en vérifiant les adresses IP de l'expéditeur.
Ce que nous avons retenu comme votre enregistrement SPF actuel est :
v=spf1 include:mx.ovh.com ~all

Cela devrait être changé en :
v=spf1 include:mx.ovh.com ip4:139.99.173.195 ~all

The Name Server handling the domain name visionduweb.fr is ns109.ovh.net.

Plus d'information à propos de cette erreur :
visionduweb.fr: Sender is not authorized by default to use 'contacter@visionduweb.fr' in 'mfrom' identity, however domain is not currently prepared for false failures (mechanism '~all' matched)

Détails de la vérification :
dig +short TXT visionduweb.fr :
   "v=spf1 include:mx.ovh.com ~all"
dig +short TXT @ns109.ovh.net. visionduweb.fr :
   "v=spf1 include:mx.ovh.com ~all"
spfquery --scope mfrom --id contacter@visionduweb.fr --ip 139.99.173.195 --helo-id vps178370.vps.ovh.ca :
   softfail
   visionduweb.fr: Sender is not authorized by default to use 'contacter@visionduweb.fr' in 'mfrom' identity, however domain is not currently prepared for false failures (mechanism '~all' matched)
   visionduweb.fr: Sender is not authorized by default to use 'contacter@visionduweb.fr' in 'mfrom' identity, however domain is not currently prepared for false failures (mechanism '~all' matched)
   Received-SPF: softfail (visionduweb.fr: Sender is not authorized by default to use 'contacter@visionduweb.fr' in 'mfrom' identity, however domain is not currently prepared for false failures (mechanism '~all' matched)) receiver=ns303428.ip-94-23-206.eu; identity=mailfrom; envelope-from="contacter@visionduweb.fr"; helo=vps178370.vps.ovh.ca; client-ip=139.99.173.195
Votre message n'est pas signé avec DKIM -1
DomainKeys Identified Mail (DKIM) est une méthode permettant d'associer un nom de domaine à un message e-mail, ce qui permet à une personne, une organisation de revendiquer certaines responsabilités pour le message.

Implémenter DKIM avec EXIM

Liens complémentaires
https://www.adampalmer.me/iodigitalsec/2014/07/11/exim-dkim-and-debian-configuration/
https://debian-administration.org/article/718/DKIM-signing_outgoing_mail_with_exim4
https://www.obstance.com/ubuntu/dkim-on-multiple-domains-with-exim4/
https://debian-administration.org/article/721/Validating_SPF_and_DKIM_at_SMTP-time_with_exim

Implémenter DMARC avec EXIM

Liens complémentaires
https://debian-administration.org/article/720/Tying_together_SPF_and_DKIM_with_DMARC

Installer et utiliser sendmail

Le programme « sendmail » peut être trouvé dans les paquets suivants :
* exim4-daemon-heavy
* exim4-daemon-light
* postfix
* citadel-mta
* courier-mta
* dma
* esmtp-run
* masqmail
* msmtp-mta
* nullmailer
* opensmtpd
* qmail-run
* sendmail-bin
* ssmtp
# Installer sendmail.
sudo apt install sendmail
/etc/init.d/sendmail stop
/etc/init.d/sendmail start
/etc/init.d/sendmail restart
/etc/init.d/sendmail status
# Vérifier la configuration de sendmail.
sudo sendmail -v
smtp externe : http://bernaerts.dyndns.org/linux/75-debian/278-debian-sendmail-gmail-account
Install Sendmail mail server on Debian GNU / Linux : http://www.pc-freak.net/blog/install-sendmail-debian-gnu-linux/

Installer et utiliser sSMTP

# Installer sSMTP.
sudo apt install ssmtp
# Vérifier si sendmail est présent sur le système.
whereis sendmail
# Vérifier si sendmail est lié à sSMTP.
ls -la /usr/sbin/sendmail
lrwxrwxrwx 1 root root 5 juil. 15  2014 /usr/sbin/sendmail -> ssmtp
# Configurer votre SMTP dans le fichier de configuration de sSMTP.
sudo nano /etc/ssmtp/ssmtp.conf
mailhub=mon_serveur_smtp_reel
rewriteDomain=Domaine_du_mail.ext
hostname=le_nom_de_la_machine
# Permet au programme qui envoie un courriel de modifier l'expéditeur dans l'entête du message.
# La valeur à YES affiche UtilisateurDebian@le_nom_de_la_machine
# La valeur à NO affiche UtilisateurDebian@Domaine_du_mail.ext
FromLineOverride=YES
# Installer mailx contenu dans le paquet mailutils pour utiliser la commande mail.
sudo apt-get install mailutils
Noter l'ajout de cette ligne dans le fichier php.ini de Apache2, pour PHP.
# sudo nano /etc/php/7.2/apache2/php.ini
# sendmail_path = /usr/sbin/sendmail -t -i -F mail@visionduweb.com -f mail@visionduweb.com
Noter l'ajout de cette ligne dans le fichier php.ini de Apache2, pour PHP FPM.
# sudo nano /etc/php/7.2/fpm/php.ini
# sendmail_path = /usr/sbin/sendmail -t -i -F mail@visionduweb.com -f mail@visionduweb.com
# Tester l'envoie de mail.
echo "test" | mail -s "test mail" mail@visionduweb.com
sudo nano /var/log/mail.log
Cannot open smtp.visionduweb.com:25
# Modifier la configuration de ssmtp : sudo nano /etc/ssmtp/ssmtp.conf
Je met mailhub=mon_serveur_smtp_reel:587
sudo nano /var/log/mail.log
Aug 19 15:00:08 le_nom_de_la_machine sSMTP[2270]: RCPT TO:<mail@visionduweb.com> (554 5.7.1 Service unavailable; Client host [IP_du_serveur_SMTP_distant] blocked using zen.spamhaus.org; https://www.spamhaus.org
# Modifier la configuration de ssmtp : sudo nano /etc/ssmtp/ssmtp.conf
# Activer TLS et l'identification sur le SMTP.
UseTLS=yes
AuthUser=votre.utilisateur.mail
AuthPass=mot_de_passe_utilisateur
sudo nano /var/log/mail.log
Creating SSL connection to host
Aug 19 15:12:20 le_nom_de_la_machine sSMTP[2335]: SSL connection using (null)
Aug 19 15:12:20 le_nom_de_la_machine sSMTP[2335]: Cannot open mon_serveur_smtp_reel:587
# Modifier la configuration de ssmtp : sudo nano /etc/ssmtp/ssmtp.conf
# Changer la méthode d'authentification.
# UseTLS=YES (pour SSL/TLS) ou UseSTARTTLS=YES (pour STARTTLS
# UseTLS=yes
UseSTARTTLS=YES
# Tester l'envoie de mail.
echo "test" | mail -s "test mail" mail@visionduweb.com
# Le mail est correctement envoyé par SMTP.
sudo nano /var/log/mail.log
Aug 19 15:19:49 deep-web-z sSMTP[2348]: Creating SSL connection to host
Aug 19 15:19:49 deep-web-z sSMTP[2348]: SSL connection using RSA_AES_256_CBC_SHA1
Aug 19 15:19:51 deep-web-z sSMTP[2348]: Sent mail for utilisateur_debian@visionduweb.com (221 2.0.0 Bye) uid=1000 username=dwz outbytes=417
L'utilisateur qui envoie le mail affiche utilisateur_debian@le_nom_de_la_machine du fait de la ligne FromLineOverride=YES dans le fichier de configuration.
Cette configuration est fonctionnelle.
# Le fichier revaliases permet de spécifier le SMTP à utiliser pour chaque compte utilisateur, si ce n'est pas celui par défaut.
sudo nano /etc/ssmtp/revaliases
# root:utilisateur_debian@le_nom_de_la_machine:smtp.de.votre.fai
# root:utilisateur_debian@le_nom_de_la_machine:smtp.de.votre.fai:587
# root:pierre.kiroul@gmail.com:smtp.gmail.com:587
# pierre:pierre.kiroul@gmail.com:smtp.gmail.com:587
# Autre système utilisateur, pour Apache2.
# www-data:votre_identifiant@fournisseur.com:smtp.fournisseur.com:587
root:dwz@deep-web-z:smtp.visionduweb.com:587
www-data:mail@visionduweb.com:smtp.visionduweb.com:587
# Exemple d'une erreur de configuration du fichier revaliases suite à un envoie de mail qui ne fonctionnait pas depuis un CMS :
# Dans le fichier de configuration, la réécriture de l'adresse d'envoie est sur YES.
Aug 19 16:14:34 deep-web-z sSMTP[2787]: Cannot open mail.visionduweb.com:587
# L'erreur se trouve dans l'adresse SMTP du fichier revaliases : Remplacer mail.visionduweb.com:587 par smtp.visionduweb.com:587
sudo nano /etc/ssmtp/revaliases
www-data:mail@visionduweb.com:smtp.visionduweb.com:587
Noter que l'envoie de mail depuis le serveur local rompt l'anonymat du serveur car lire la source du mail renseigne sur le nom de la machine, le serveur de mail et la localisation du FAI.
Received: from deep-web-z (AMontpellier-xxx-x-xxx-xxx.wxx-xxx.abo.wanadoo.fr [xx.xxx.xxx.xxx])
(Authenticated sender: mail@visionduweb.com)
by mutu-mail-n4.sivit.org (Postfix) with ESMTPSA id 6701D7F9BE
for <test@visionduweb.com>; Sun, 19 Aug 2018 17:00:09 +0200 (CEST)
# Exemple pour envoyer un mail en ligne de commande avec sSMTP.
ssmtp myemailaddress@gmail.com < msg.txt
Le fichier msg.txt est une simple fichier texte qui utilise le bon format pour envoyer un mail avec sSMTP.
To: myemailaddress@gmail.com
From: myemailaddress@gmail.com
Subject: alert

The server is down!
Ok.png Envoyer des mails simplement avec sSMTP : http://www.ced-info.com/administration-reseaux/envoyer-des-mails-simplement-avec-ssmtp
Ok-ko.png Source : https://doc.ubuntu-fr.org/ssmtp

Installer et utiliser postfix

Documentation de postfix

Documentation de Postfix en français : https://postfix.traduc.org

Utiliser postfix en local pour envoyer des mails system

https://gist.github.com/raelgc/6031274
https://linux.developpez.com/formation_debian/serveur-mail.html
https://p.henix.be/Un-serveur-de-mail-local-pour-le-developpement-web
https://www.linux-nantes.org/Configuration-d-un-serveur-de-mail.html
https://serverfault.com/questions/639615/postfix-and-local-mail#639694
https://fr.wikibooks.org/wiki/Le_syst%C3%A8me_d%27exploitation_GNU-Linux/Le_serveur_de_mails_Postfix

Sources complémentaires pour configurer et utiliser postfix

Syntaxe sql pour créer un user mail et son mot de passe.
INSERT INTO `postfix`.`comptes` ( `email` , `password` , `quota` , `etat` , `imap` , `pop3` ) VALUES ('toto@test.com', ENCRYPT( 'le_mot_de_passe' ) , '0', '1', '1', '1');
Ok-ko.png Source : https://wiki.debian-fr.xyz/Configuration_d%27un_serveur_mail_avec_Postfix#Configuration_d.27un_serveur_mail_avec_postfix
Ok-ko.png Source : Vidéo pour installer Postfix et Courier : https://www.tutoriels-video.fr/installation-et-configuration-dun-serveur-de-mail-avec-postfix-et-courier/
Ok-ko.png Source : Configurer un serveur email : https://howto-it.dethegeek.eu.org/index.php?title=Postfix_-_Configurer_un_serveur_email_priv%C3%A9
Ok-ko.png Source : https://blog.tetsumaki.net/articles/2017/08/installation-dune-solution-mail-complete-sous-debian-9-stretch.html
Ok-ko.png Source : Fichiers de configuration pour Postfix : https://postfix.traduc.org/index.php/BASIC_CONFIGURATION_README.html
Ok-ko.png Source : https://wiki.debian-fr.xyz/Configuration_d%27un_serveur_mail_avec_Postfix#Cr.C3.A9ation_d.27un_nouveau_mail
Ok-ko.png Source : Fichiers de configuration pour Postfix : http://www.linux-france.org/prj/edu/archinet/systeme/ch35s06.html
Ok-ko.png Source : https://www.tictech.info/post/mail_postfix
Ok-ko.png Source : http://www.open-web.fr/serveur-mail-postfix-avec-utilisateurs-virtuels-debian-etch/
Ok-ko.png Source : https://debian-facile.org/doc:reseau:postfix
Ok-ko.png Source : https://www.linode.com/docs/email/postfix/email-with-postfix-dovecot-and-mysql
Ok-ko.png Source : https://www.alsacreations.com/tuto/lire/614-Serveur-mail-Postfix.html
Ok-ko.png Source : Vérifier la SPF : http://www.robertain.com/post/2012/02/17/check-spf-pour-postfix/
Ok-ko.png Source : http://www.tutoriels-video.fr/installation-et-configuration-dun-serveur-dedie-debia/
Ok-ko.png Source : https://wiki.debian.org/Postfix
Ok-ko.png Source : ://www.postfix.org/postconf.5.html#check_client_access
Ok-ko.png Source : http://www.postfix.org/postconf.5.html#check_sender_access
Ok-ko.png Source : http://www.postfix.org/access.5.html
https://www.isyweb.com/configurer-linux/?Serveur+web+complet+Debian+9

SPF DKIM DMARC

Tutoriel : http://www.isyweb.com/configurer-linux/?SPF,+DKIM+et+DMARC

SPF

Le SPF OVH est : “v=spf1 include:mx.ovh.com ~all”, à utiliser lorsque le mail est géré via l'offre MX Plan gratuite.
Source complémentaire : https://docs.ovh.com/fr/domains/le-champ-spf/

DKIM a configurer sinon Blacklist FabelSource

blog.kdj-webdesign.com/administrer-un-vps-classic-la-dkim/
opendkim *
Voir si dkim est bien propagé
host -t TXT dkim._domainkey.happy-tux.org
dkim._domainkey.happy-tux.org descriptive text "v=DKIM1 k=rsa p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDbZYh2jmQ2PyW1K90xSZxy7HtLPqDnCc2O7Z0rtnSR1pjMZX2zEiU303yWvj6M2FTBFLmaT4Xd3oQquFqhSWiM603kzG2FCTG5Uu2RjZMsgBpahDNiqnABjAvEBRH4r9Y+WIuTHFbMzEP4u1Qx7+eEfr6m/EbQzLYq6O58BGYceQIDAQAB"

DMARC

.

Envoyer des mails "non spam" vers Gmail

Pour être identifié à coup sûr dans Gmail :

Utilisez une adresse IP cohérente pour envoyer vos messages en masse.
Conservez des enregistrements DNS inversés valides pour la ou les adresses IP à partir desquelles vous envoyez des messages et qui pointent vers votre domaine.
Utilisez la même adresse dans l'en-tête "De" de chaque message en masse que vous envoyez.

Nous vous conseillons également de prendre les précautions suivantes :

Signez vos messages à l'aide du protocole DKIM. Nous ne pouvons pas authentifier les messages signés à l'aide de clés inférieures à 1 024 bits.
Publiez un enregistrement SPF.
Publiez des règles DMARC.

Instructions supplémentaires pour IPv6

L'adresse IP d'expédition doit comporter un enregistrement PTR (c'est-à-dire un enregistrement DNS inversé de cette adresse) et doit correspondre à l'adresse IP obtenue par la résolution DNS de transfert du nom d'hôte indiqué dans l'enregistrement PTR. Si ces conditions ne sont pas remplies, les messages correspondants sont marqués comme spam, voire rejetés.
Le domaine d'expédition doit réussir le contrôle SPF ou DKIM, faute de quoi les messages qui en proviennent peuvent être marqués comme spam.
source : support.google.com/mail/troubleshooter/2921561
support.google.com/mail/answer/81126?p=ipv6_authentication_error&rd=1#authentication

Ancien php.ini en exemple sur Centos 2014 - 2015

Page liée dans le wiki pour un ancien exemple de fichier php.ini en français : Exemple Apache pour le fichier de configuration

Documentation

Source : https://www.informatiweb-pro.net/admin-systeme/linux/14--debian-installer-et-securiser-un-serveur-mails-complet-mails-smtp-auth-via-sasl-imap-pop3-webmail-tls-et-ssl.html

Savoir si des mails sont en attente d'envoie

Source : postqueue -p qui permet d'afficher le contenu de la file d'attente.

En complément

Dovecot

Dovecot est un serveur IMAP et POP3 pour les systèmes d'exploitation Unix et dérivés, conçu avec comme premier but la sécurité.

Installer un serveur de mailing list avec mailman

Installer un serveur de mailing list avec mailman

Arrêter et relancer un service proprement

Telnet (port 23)Telnet est géré par xinetd

Pour arrêter le service, il faut éditer le fichier de configuration de Telnet puis redémarrer xinetd.
L'option dans xinetd fonctionne à l'envers à savoir vous devez mettre no pour activer le service.==
# pico /etc/xinetd.d/telnet
#/etc/init.d/xinetd restart
Pour démarrer le service:
# pico /etc/xinetd.d/telnet
# /etc/init.d/xinetd restart

SMTP (port 25)SMTP est géré par Qmail www.qmail.org

Pour arrêter le service (le script de démarrage agit aussi sur le serveur POP3) :
# cd / #/etc/init.d/qmail stop
Pour démarrer le service :
# cd / # /etc/init.d/qmail start

POP3 (port 110)POP est géré par Qmail www.qmail.org

Pour arrêter le service (le script de démarrage agit aussi sur le serveur SMTP).
# cd / # /etc/init.d/qmail stop
Pour démarrer le service :
# cd / # /etc/init.d/qmail start

IMAP (port 143)IMAP est géré par Courier-Imap? www.inter7.com/courierimap.html

Pour arrêter le service :
# /etc/init.d/imapd stop
Pour démarrer le service :
# /etc/init.d/imapd start

Gestion des logs

Vérifier les logs si un mail n'est pas envoyé :
sudo nano /var/log/mail.log

La sécurité du service de courrier électronique avec amavisd-new

Source : inetdoc.developpez.com/tutoriels/securite-service-courrier-electronique-amavisd-new/

Faire face aux blacklistes

Tester ses DNS : http://www.dnsinspect.com
Site officiel Altospam : www.altospam.com/glossaire/listes-noires.php
Tester les blacklistes sur Vision du web : mxtoolbox.com/SuperTool.aspx?action=blacklist%3avisionduweb.fr&run=toolpage
Vision du web est blacklisté sur Fabelsources : https://mxtoolbox.com/Problem/Blacklist/FABELSOURCES/
Signaler un spam ou le tester comme spam - www.moensted.dk/spam/

Serveur SMTP gratuit

Sparkpost

Site officiel : https://www.sparkpost.com
Tarifs, gratuit pour 15000 mails mensuel : https://www.sparkpost.com/pricing/
Utiliser Sparkpost comme un relai SMTP : https://developers.sparkpost.com/api/smtp/
Le champ CNAME qui doit être configuré pour le bounce doit avoir un "." à la fin de la cible de votre champ CNAME (sparkpostmail.com.)

Webmail

Roundcube

.

Zimbra

.

SquirrelMail

.

RainLoop

.

Liste noire - Black liste - RBL

Voici quelques exemples de listes noires :
http://www.spamhaus.org
http://www.spamcop.net
http://www.sorbs.net
http://www.dsbl.org
Source : https://www.altospam.com/glossaire/listes-noires.php

Bibliographie

Ko.png Installer et sécuriser un serveur mails complet (Mails, SMTP, Auth via SASL, IMAP, POP3, webmail, TLS et SSL) : https://www.informatiweb-pro.net/admin-systeme/linux/14--debian-installer-et-securiser-un-serveur-mails-complet-mails-smtp-auth-via-sasl-imap-pop3-webmail-tls-et-ssl.html
Ko.png Installation d'une solution mail complète sous Debian 9 Stretch : https://blog.tetsumaki.net/articles/2017/08/installation-dune-solution-mail-complete-sous-debian-9-stretch.html
Ko.png How to install email system on Debian 6.0 : https://serverfault.com/questions/460665/how-to-install-email-system-on-debian-6-0
Ko.png Postfix installation et configuration : https://jeanphi.net/blog/2014/08/postfix-installation-et-configuration
Ko.png Fetchmail procmail et spamassassin : https://linux.developpez.com/formation_debian/mail-console.html
Ko.png Fetchmail, procmail, mutt, smtp, urlview, postfix, msmtp : https://debian-facile.org/doc:reseau:mutt
Ko.png Les logiciels de messagerie pour Linux : https://www.arobase.org/linux/linux.htm
Ok.png Tester l'indésirabilité spam de vos mails : http://www.mail-tester.com

Exim

Ko.png Configurer Exim, un serveur de mails sous Debian : https://recordma.wordpress.com/2013/12/23/configurer-exim-un-serveur-de-mails-sous-debian/
Ok.png Installer et configurer exim4 en relai smarthost : https://www.memoinfo.fr/tutoriels-linux/installer-exim-relai-smarthost/

NAVIGATION

PARTICIPER ET PARTAGER

Vous êtes sur le wiki de Vision du Web.
Les pages présentées sur le wiki évoluent tous les jours.
Certaines recherches sont peu abouties et incluent des erreurs.
Pour participer sur le wiki, créer un compte utilisateur en haut à droite.
La recherche interne du wiki permet de trouver le contenu qui vous intéresse.
Identifiez-vous pour poser vos questions sur la page de discussion de VisionDuWeb.
Améliorer le contenu des pages en faisant des propositions depuis l'onglet discussion.
Télécharger le sommaire au format PDF pour le consulter en étant déconnecté du réseau.
Les informations du wiki ne doivent pas servir à nuire à autrui ou à un système informatique.
De nombreux outils gratuits sont listés et disponibles dans la boîte à outils de Vision du web.
D'autres pages du wiki peuvent correspondre à vos attentes. La liste de toutes les pages du wiki.

VALORISER LE WIKI

Valoriser le contenu partagé sur le wiki avec un don en monnaie numérique :
AEON - Bitcoins (BTC) - Bitcoins Cash - Bitcoins Gold - Bitcore (BTX) - Blackcoins - Bytecoins - Clams - Dash - Monero - Dogecoins - Ethereum - Ethereum Classique - Litecoins - Potcoins - Solarcoins - Zcash

OBTENIR DE LA MONNAIE NUMERIQUE

Obtenir gratuitement de la monnaie numérique :
Gagner des Altcoins - Miner des Altcoins.
Miroir PlanetHoster du 11 Mars 2019.