Yunohost, Android & LineagesOS

Ayant eu à changer de téléphone car l'ancien a fini par donner des soucis matériel sur l'écran, j'ai repris un portable d'un ami d'occasion encore fonctionnel. C'est là l'occasion de faire le tri sur les applications que l'on utilise vraiment au quotidien.

Dans le présent billet, j'aborderai donc la configuration / paramétrage des différentes applications que j'utilise "en mode cloud", comprendre : les applications tournent sur mon serveur sous Yunohost et les applications clientes sont installées sur l'ordiphone - smartphone.
- Toutes ces applications sont disponibles sur F-Droid ou via les APK du Google Store récupérable via une application comme YALP.
- Ce billet n'est pas un tutoriel, plus une prise de notes de type wiki pour avoir sur une même page les différentes configurations. Je pars du principe que vous savez installer l'application, saisir les bonnes informations dans les bons champs.

NextCloud - Utilisation de l'agenda et des contacts. Application : Davdroid

J'utilise NextCloud pour la gestion de différents agendas et mes contacts. La synchronisation sur le téléphone passe par l'application Davdroid.

Paramétrage de l'application :
- URL : https://url.de.nextcloud/remote.php/dav/
- L'utilisateur : celui de Yunohost
- Pass : celui de Yunohost
Lien vers Davdroid sur F-Droid.

Les contacts sont alors synchronisés dans l'application Contact par défaut du téléphone, les agendas dans l'application Agenda par défaut. Dans mon cas, j'installe comme application d'agenda l'application Etar.

NextCloud l'application client

L'application Client NextCloud permet de synchroniser les fichiers et d'avoir certains d'entre eux en mode déconnecté sur le téléphone.

Paramétrage de l'application :
- Serveur : https://url.de.nextcloud/
- User : celui de Yunohost
- Pass : celui de Yunohost
Lien vers NextCloud l'application client sur F-Droid.

NextCloud notes

Dans NextCloud j'ai installé l'application Notes.

Paramétrage de l'application :
- Serveur : https://url.de.nextcloud/
- User : celui de Yunohost
- Pass : celui de Yunohost
Lien vers NextCloud notes sur F-Droid.

Remarque : les notes qui apparaissent dans l'application Notes sont elles-mêmes de simples fichiers .txt, qui se trouvent dans l'application Fichier, dans le dossier Notes. L'application client de synchronisation permet également de synchroniser ce dossier et donc d'éditer ses notes via un éditeur de texte sur un PC par exemple.

FreshRSS, l'agrégateur RSS. Application : EasyRSS

L'application EasyRSS permet de se connecter à différents agrégateurs RSS en ligne, dont FreshRSS.

Une configuration préalable dans FreshRSS est à faire, il faut avoir penser à cocher l'autorisation de l'accès à l'API et penser à créer un mot de passe dédié pour l'API. Voir mon tutoriel : Yunohost, FreshRSS et EasyRSS pour Android.

Paramétrage de l'application :
- Serveur : https://rss.mondomaine.org/api/greader.php
- user : celui de Yunohost
- pass : clef d'API définie dans la configuration de FreshRSS
Lien vers EasyRSS sur F-Droid.

Wallabag. Application : Wallabag

Une configuration préalable dans Wallabag est à faire, il faut aller dans la partie "API clients management" et créer un nouveau client.
- URL : https://wallabag.genma.org/
- L'utilisateur : genma@genma.org
- Pass : celui de yunohost
Lien vers Wallabag sur F-Droid.

Yunohost comme serveur de mails – Billet N°4

Ce billet fait partie de la série Yunohost comme serveur de mails
- Yunohost comme serveur de mails - Billet N°1
- Yunohost comme serveur de mails - Billet N°2
- Yunohost comme serveur de mails - Billet N°2

Les logs

Remarque : le présent billet ne parlera pas de l'analyse du contenu des logs en lui-même (gestion d'erreurs etc.) mais a pour objectif de faire (re)découvrir un outil précis.

Le serveur de mails d'envoi et de réception des mails est Posftix et les logs de ce serveur se trouvent dans le fichier /var/log/mail.log.

Pour analyser ce fichier, il y a

La version graphique depuis l'interface d'administration de Yunohost :
- ./admin/#/services/postfix/log : pour voir les logs
- . /admin/#/services/postfix : pour voir l'état du service
que l'on utilisera pour regarder les dernières lignes et l'état du service.

La méthode à l'ancienne qui consiste à lire le contenu de de fichier (à base de cat, head, more, tail...), à y rechercher des séquences / chaînes de texte particulières (grep).

Et une méthode à base de script. Il existe en effet un script perl, packagée sous Debian, pflogsumm (Site internet de pflogsumm : http://jimsun.linxnet.com/postfix_contrib.html) qui permet de parser le fichier mail.log et en extraire un certains nombres d'informations classées de façon pertinentes, parmi lesquelles :
- Nombre de mails envoyés par compte ;
- Nombre de mails reçus ;
- Taille des mails ;
- Trafic mail par jour, par heure...
Tout un tas de cumul et de métriques qui peuvent être intéressantes et pertinentes.

Comme tout outil en ligne de commande, il y a une page man détaillant toutes les options qu'il est possible d'utiliser / appeler.

Et une FAQ en anglais assez riche et détaillée
.

Pflogsumm est donc un outil fort utile pour avoir un rapport journalier de suivi de son serveur mail.

Pour finir, Astuce trouvée dans le forum de Yunohost, l'envoi par mail (!) d'un rapport quotidien d'analyse de l'envoi de mail via une tâche cron

# STATS MAIL SERVER pflogsumm
59 23 * * * /usr/sbin/pflogsumm -u 5 -h 5 -d today /var/log/mail.log | mail -s "Postfix Report of `date`" yourmail@domain.tld

Yunohost comme serveur de mails – Billet N°3

Ce billet fait suite au billet Yunohost comme serveur de mails - Billet N°1 et Yunohost comme serveur de mails - Billet N°2

Le serveur MX secondaire

J'ai eu de nombreux retours via des messages sur les réseaux sociaux et je voudrais en faire une petite synthèse. J'aborde dans l'un des mes billets le cas (non encore réglé) d'avoir un serveur MX secondaire. Comprendre : si le serveur de Mail principal (définit via le champ MX de l'entrée DNS associée au nom de domaine) ne marche pas, alors le serveur de mail envoyant le mail tente l'envoi du mail sur le second serveur indiqué en champ MX, qui s'occupe alors de faire la réception (et éventuellement une redirection) du mail. Cette seconde doit être associé à un chiffre (le poids) plus faible pour indiquer que c'est un serveur de secours. ("Quand le serveur principal ets HS ça part sur le secondaire qui est réglé pour renvoyer sur le principal et il garde le mail en mailqueue (cas d'un serveur postfix) tant qu'il n'y arrive pas.") Une recommandation me dit que c'est inutile "Les mails restent en attente pendant quelques temps (par défaut 5 jours ; 4 à 5 jours recommandés sur https://tools.ietf.org/html/rfc5321#section-4.5.4" à celle d'au contraire "d'avoir un MX de secours sur un serveur de mails dans un datacenter différent". De même, on me dit que "l'hébergement d'un service de mails est un métier à part entière", sur ce point je suis assez bien placé pour le savoir de part l'une des mes nombreuses responsabilités professionnelles actuelles.

Je n'ai pas encore traité ce sujet, mais mon ressenti et mon avis est le suivant : si la panne se prolonge, que l'on a pas accès à la machine pendant un certain temps (cas des vacances) ou que l'on est la seule personne à savoir remettre le service en ligne, le mail finira par se perdre. Donc ce n'est pas un sujet anodin à prendre à la légère et il faut probablement avoir un MX secondaire. On peut "le prendre" chez une personne de confiance (un ami par exemple de qui on sera soi-même le MX secondaire ; FDN propose par exemple d'utiliser les serveurs FDN en MX secondaire, ou Rézine propose un serveur de mail secondaire (« MX secondaire ») à ses membres.), ce qui permet de s'afranchir de la maintenance de ce second serveur (sinon cela alourdit la charge en administration système que d'avoir un second serveur à maintenir à jour, et en coût).

Stéphane Bortzemeyer a écrit il y a un peu plus de 10 ans un billet de blog Un MX secondaire est-il vraiment utile ?, je vous laisse découvrir son avis fort bien argumenté (Spoiler : non). Autre avis à lire De l'intérêt d'un MX de secours dans le cadre de la gestion de mon service mail personnel par Quentin Demouliere.

Pour la configuration technique d'un serveur MX secondaire, voir wiki.auto-hebergement - Serveur de courrier secondaire.

La question n'est donc pas trancher, est à chacun de se faire son propre avis du coup, les arguments en faveur du pour et du contre ne me permettant à l'heure actuelle de pencher en faveur d'un seul ou de deux serveurs MX pour le mail.

Yunohost comme serveur de mails – Billet N°2

Ce billet fait suite au billet Yunohost comme serveur de mails - Billet N°1 Dans la todo, il y avait l'envoi à un mail de GAFAM et l'ajout de DKIM, DMarc, SPF...

DKIM, DMarc, SPF

Pour ça, je citerai le billet Délivrabilité : SPF, DKIM, DMARC, … ce qu'il faut savoir sur l'authentification de vos emails !

DKIM = DomainKeys Identified Mail DKIM tente d'associer un nom de domaine à un message en y aposant une signature numérique. La vérification de la signature se fait via une clef cryptée située dans un enregistrement DNS. Ce faisant, DKIM permet de vérifier si un message a été altéré durant son transport entre les différents serveurs SMTP et de garantir que le contenu arrivera intact jusqu'au destinataire.

SPF = Sender Policy FrameworkEnregistrement SPF sur son serveur DNS. Permet de vérifier / valider que les IP associées des serveurs ont le droit d'envoyer des mails pour ce nom de domaine

DMARC = Domain-based Message Authentication, Reporting and ConformanceDMARC joue sur la synthèse entre SPF et DKIM, pas en les remplaçant, mais en les unissant et en les rendant plus intelligents.

Dans Yunohost

Yunohost dispose donc d'un serveur de mail (cf Yunohost comme serveur de mails - Billet N°1) et DKIM et SPF sont déjà préconfigurés, disponibles, il n'y a quasiment rien à faire. Il faut récupérer les informations de configuration. Pour ce faire, il faut :

- aller dans la partie interface d'administration de Yunohost https://mondomaine.tld/yunohost/admin/
- Dans le menu DOMAIN > mondomaine.tld > Voir la Configuration DNS

Là il y a les informations pour le DKIM, DMarc, SPF

@ 3600 IN TXT "v=spf1 a mx ip4:12.345.678.123 -all"
mail._domainkey 3600 IN TXT "v=DKIM1; k=rsa; p= 50917a15d4930834a9dd3b43a43ee131190e12674eab791a354dea0afb4475b1"
_dmarc 3600 IN TXT "v=DMARC1; p=none"

Ces informations sont à saisir dans la configuration de l'entrée DNS chez son prestataire (Gandi par exemple) sous la forme :

Nom du champ, Type du champ, Valeur
@ TXT "v=spf1 a mx i … .159.188 -all"
mail._domainkey TXT "v=DKIM1; k=rsa; p= 50917a15d4930834"
_dmarc TXT "v=DMARC1; p=none"

Et on attend de nouveau la propagation du DNS.

Pour vérifier tout ça

Différentes façons de faire et de valider que la configuration est correcte.

Test en ligne

On va sur le site

Champ - valeur :
Domain name : mondomaine.tld
DKIM Selector : mail._domainkey

Et on a comme résultat :

SPF check

1 SPF record found for the domain mondomaine.tld :
"v=spf1 a mx ip4:12.345.678.123 -all"

DKIM check

DNS record for mail._domainkey.mondomaine.tld:
"v=DKIM1; k=rsa; p=50917a15d4930834a9dd3b43a43ee131190e12674eab791a354dea0afb4475b1"
Key length : 1024

On a donc bien la bonne configuration

Thunderbird : on peut ajouter une extension comme DKIM verifier

qui permet d'ajouter un champ dans l'entête d'un mail reçu et de vérifier le DKIM.

Envoi du mail sur un compte Gmail

Et on regarde alors dans le détail du mail (option Afficher l'original), on a alors

SPF : NEUTRAL avec IP 12.345.678.123 En savoir plus
DKIM : 'PASS' avec le domaine mondomaine.tld En savoir plus
DMARC : 'PASS' En savoir plus

Et quand on clique sur bouton le copier-coller, on a le détail :

Received-SPF: neutral (google.com: 12.345.678.123 is neither permitted nor denied by best guess record for domain of genma@mondomaine.tld) client-ip=12.345.678.123;
Authentication-Results: mx.google.com;
dkim=pass header.i=@mondomaine.tld header.s=mail header.b=mbt7mELs;
spf=neutral (google.com: 12.345.678.123 is neither permitted nor denied by best guess record for domain of genma@mondomaine.tld) smtp.mailfrom=genma@mondomaine.tld;
dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=mondomaine.tld
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mondomaine.tld; s=mail; t=1535027249; h=from:from:sender:reply-to:subject:subject:date:date:

Soit une autre façon de valider que la configuration est correcte.
Les mails reçus ne doivent normalement pas être reconnus / tombés dans le SPAM par défaut.