PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Nono : Petite histoire de debugging (sendemail)

mercredi 7 octobre 2020 à 13:15

Je vous raconte comment j'ai failli envoyé un bug report à Debian 🙂
TL;DR: Une dépendances manquante pour le paquet sendemail m’empêchait d'envoyer des mail via TLS.

Dans notre architecture, nous avons un serveur sous XEN, et différentes VM pour différentes fonctions, dont une "WEB" (pour les sites), une "DATA" et enfin une "MAIL" qui est notre serveur mail.
Je voulais changer de méthode d'envoi de mail en local, je suis donc passé au package sendEmail (pas sendmail donc) pour avoir l'auth STARTTLS. Mais, pour une raison inexpliquée, certaines VM arrivaient à envoyer des mails et d'autre non.

Première chose, vérifier les logs;

  1. Du côté du serveur de mail : rien de particulier (comme l'authentification ne marchait pas)
  2. Du côté du client mail (sendemail) : l'envoi en mode debug me donnait quelques indices :

depuis la VM WEB (impossible d'envoyer un mail) :

sendemail -u subject -m message -f user@domain.tld -t user@domain.tld -s mailserver -xu user@domain.tld -xp password -vvvv
DEBUG => Connecting to mailserver
DEBUG => My IP address is: 10.0.1.1
DEBUG => evalSMTPresponse() - Checking for SMTP success or error status in themessage: 220 mailserver ESMTP Postfix (Debian/GNU)
DEBUG => evalSMTPresponse() - Found SMTP success code: 220
SUCCESS => Received:     220 mailserver ESMTP Postfix (Debian/GNU)
INFO => Sending:         EHLO WEB
DEBUG => evalSMTPresponse() - Checking for SMTP success or error status in themessage: 250-mailserver, 250-PIPELINING, 250-SIZE 502400000, 250-ETRN, 250-STARTTLS, 250-ENHANCEDSTATUSCODES, 250-8BITMIME, 250 DSN
DEBUG => evalSMTPresponse() - Found SMTP success code: 250
SUCCESS => Received:     250-mailserver, 250-PIPELINING, 250-SIZE 502400000, 250-ETRN, 250-STARTTLS, 250-ENHANCEDSTATUSCODES, 250-8BITMIME, 250 DSN
DEBUG => The remote SMTP server supports TLS :)
NOTICE => Authentication not supported by the remote SMTP server!
INFO => Sending:         MAIL FROM:user@domain.tld
DEBUG => evalSMTPresponse() - Checking for SMTP success or error status in themessage: 530 5.7.0 Must issue a STARTTLS command first
DEBUG => evalSMTPresponse() - Found SMTP error code: 530
ERROR => Received:       530 5.7.0 Must issue a STARTTLS command first

depuis la VM DATA (où les mails fonctionnaient sans problème) :

# sendemail -u subject -m message -f user@domain.tld -t user@domain.tld -s mailserver -xu user@domain.tld -xp password -vvvv
DEBUG => Connecting to mailserver
DEBUG => My IP address is: 10.0.1.2
DEBUG => evalSMTPresponse() - Checking for SMTP success or error status in themessage: 220 mailserver ESMTP Postfix (Debian/GNU)
DEBUG => evalSMTPresponse() - Found SMTP success code: 220
SUCCESS => Received:     220 mailserver ESMTP Postfix (Debian/GNU)
INFO => Sending:         EHLO DATA
DEBUG => evalSMTPresponse() - Checking for SMTP success or error status in themessage: 250-mailserver, 250-PIPELINING, 250-SIZE 502400000, 250-ETRN, 250-STARTTLS, 250-ENHANCEDSTATUSCODES, 250-8BITMIME, 250 DSN
DEBUG => evalSMTPresponse() - Found SMTP success code: 250
SUCCESS => Received:     250-mailserver, 250-PIPELINING, 250-SIZE 502400000, 250-ETRN, 250-STARTTLS, 250-ENHANCEDSTATUSCODES, 250-8BITMIME, 250 DSN
DEBUG => The remote SMTP server supports TLS :)
DEBUG => Starting TLS
INFO => Sending:         STARTTLS
DEBUG => evalSMTPresponse() - Checking for SMTP success or error status in themessage: 220 2.0.0 Ready to start TLS
DEBUG => evalSMTPresponse() - Found SMTP success code: 220
SUCCESS => Received:     220 2.0.0 Ready to start TLS
DEBUG => TLS: Using cipher: ECDHE-RSA-AES256-GCM-SHA384
DEBUG => TLS session initialized :)
INFO => Sending:         EHLO DATA
[...]

Dans les deux cas, le serveur supporte TLS, mais le "STARTTLS" n'est pas envoyé depuis ma VM WEB.

Les configurations et les accès/restrictions étant les mêmes, gnutls installé sur les deux machines, j'ai commencé à rédiger mon bug report en m'aidant de : https://www.debian.org/Bugs/Reporting

L'une des étapes du rapport de bug debian est d'envoyer les infos du package, dont l'une d'elle (https://www.debian.org/Bugs/Reporting#findpkgver) est :
dpkg --status

Bien m'en a pris, car j'ai pu me rendre compte de cette intéressante ligne :

# dpkg --status sendemail
Package: sendemail
[...]
Suggests: libio-socket-ssl-perl, libnet-ssleay-perl

Effectivement, ces deux paquets ne sont pas des dépendances, mais des suggestions …. néanmoins très indispensable pour envoyer des mails en TLS 🙂

J'ai pu régler mon bug et m’éviter de passer pour un idiot à remplir un rapport de bug inutile…

Gravatar de Nono
Original post of Nono.Votez pour ce billet sur Planet Libre.

Journal du hacker : Liens intéressants Journal du hacker semaine #40

lundi 5 octobre 2020 à 00:01

Pour la 40ème semaine de l'année 2020, voici 10 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Articles similaires

Simon Vieille : Tinternet & cie vous recommande le documentaire "Derrière nos écrans de fumée"

dimanche 4 octobre 2020 à 11:34

Entre documentaire et drame, ce film donne la parole à des experts qui nous mettent en garde contre leurs inventions et décrient l'impact dangereux des réseaux sociaux.

Ce film réalisé par Jeff Orlowski et produit par Larissa Rhodes a pour objectif de nous faire prendre conscience que derrière un post Facebook ou Instagram, qu'autour d'un e-mail affiché sur Gmail ou pendant que vous regardez un contenu sur YouTube, des algorithmes font leur possible pour accaparer votre temps.

Gravatar de Simon Vieille
Original post of Simon Vieille.Votez pour ce billet sur Planet Libre.

Journal du hacker : Liens intéressants Journal du hacker semaine #39

lundi 28 septembre 2020 à 00:01

Pour la 39ème semaine de l'année 2020, voici 12 liens intéressants que vous avez peut-être ratés, relayés par le Journal du hacker, votre source d’informations pour le Logiciel Libre francophone !

Pour ne plus rater aucun article de la communauté francophone, voici :

De plus le site web du Journal du hacker est « adaptatif (responsive) ». N’hésitez pas à le consulter depuis votre smartphone ou votre tablette !

Le Journal du hacker fonctionne de manière collaborative, grâce à la participation de ses membres. Rejoignez-nous pour proposer vos contenus à partager avec la communauté du Logiciel Libre francophone et faire connaître vos projets !

Et vous ? Qu’avez-vous pensé de ces articles ? N’hésitez pas à réagir directement dans les commentaires de l’article sur le Journal du hacker :)

Gravatar de Journal du hacker
Original post of Journal du hacker.Votez pour ce billet sur Planet Libre.

Articles similaires

genma : Linux - Accéder aux données d'une partition Windows chiffrées avec Bitlocker

vendredi 25 septembre 2020 à 09:00

Merci à Neil et Brume, invité.e.s de ce blog, pour avoir rédigé ce tutoriel, complété par mes soins, bien utile pour le double boot de ma machine professionnelle.

Depuis Windows 10, Microsoft propose de chiffrer son disque avec le logiciel Bitlocker. Au démarrage de la session, Windows déchiffre votre disque, vous permettant d'accéder à vos données, mais lorsque l'ordinateur est éteint, il est impossible de récupérer les données en démontant l'ordinateur, par exemple.

Cela ne nous arrange pas lorsque l'on fait un dual-boot (= deux systèmes sur le même ordinateur) et que depuis sa partition Linux on aimerait accéder à ses données sur sa partition Windows.

D'où l'intérêt du logiciel [Dislocker](https://github.com/Aorimn/dislocker). Cet utilitaire en ligne de commande, codé majoritairement en C, permet de déchiffrer une partition Windows chiffrée avec Bitlocker, depuis un système Linux.

Prérequis Windows 10

Il faut penser à désactiver les options d'hibernation, mise en veille et de démarrage rapide pour que l'arrêt de Windows 10 soit un arrêt complet ne laisse pas la partition et le système de fichier NTFS dans un état intermédiaire ne permettant pas sa lecture depuis Linux (une fois la partition déchiffrée avec Dislocker).

Il faut bien penser à avoir récupéré sa clé de récupération Bitlocker - Bitlocker Recovery Key, obtenable en se connectant sur son compte Microsoft (8 séries de 6 chiffres).

Installation

Les instructions suivantes sont destinées aux distributions basées sur Debian. Pour d'autres distributions ou pour plus d'information, consultez [cette page](https://github.com/Aorimn/dislocker/blob/master/INSTALL.md).

Commencez par installer les packets suivants :

apt install gcc cmake libfuse-dev libmbedtls-dev ruby-dev

Clonez le projet Dislocker, puis compilez-le :

sudo git clone https://github.com/Aorimn/dislocker.git /dislocker
cd /dislocker
sudo cmake .
sudo make
sudo make install

Si tout s'est bien passé, félicitations, vous venez d'installer Dislocker.

Utilisation

Il est nécessaire de vous retrouver dans la configutation suivante afin de procéder au bon déroulement de ce tutoriel :

* Vous êtes sur un système Linux ;
* Sur le même ordinateur se trouve une partition Windows fonctionnelle, chiffrée avc Bitlocker, que vous souhaiteriez déchiffrer.

Si ce prérequis est validé, vous pouvez déchiffrer votre partition Windows de la manière suivante :

sudo mkdir -p /dislocker/ntfs
sudo dislocker-fuse -V XXX -pXXXXXXXXXX -- /dislocker/ntfs

La commande ci-dessus utilise les arguments suivants :

* `-V` le nom de la partion Windows, vous pouvez utiliser la commande `lsblk` pour le connaître ;
* `-p` le votre clé de récupération Windows, obtenable en vous connectant sur votre compte Microsoft.

Vous pouvez ensuite monter le fichier créé, afin de pouvoir vous déplacer et éditer des fichiers dedans.

sudo mkdir -p /dislocker/windows
sudo mount -o loop /dislocker/ntfs/dislocker-file /dislocker/windows

Tous les fichiers de votre système Windows sont désormais accessibles dans le dossier `/dislocker/windows`

Vous pourriez vouloir créer un dossier partagé entre la partition Windows et la partition Linux :

sudo mkdir -p /dislocker/windows/Users/[nom d'utilisateur sur Windows]/Documents/Personnel/[nom du dossier]
ln -s /dislocker/windows/Users/[nom d'utilisateur sur Windows]/Documents/Personnel/[nom du dossier] /home/[nom d'utilisateur sur Linux]/[nom du dossier]

Vous pourriez également souhaiter créer un dossier stocké sur la partition Windows, mais qui ne soit pas lisible par Windows, pour des raisons de place ou de besoin de persistance par exemple :

sudo mkdir -p /home/[nom d'utilisateur sur Linux]/[nom du dossier]
sudo mount -t auto -o loop /dislocker/windows/Users/[nom d'utilisateur sur Windows]/Documents/Personnel/[nom du dossier] [dossier précédement créé sur Linux]

Avant d'éteindre votre ordinateur, il est important de démonter chaque dossier monté :

sudo unmount /home/[nom d'utilisateur sur Linux]/[nom du dossier] # à utiliser pour chaaue dossier monté
sudo umount /dislocker/windows
sudo umount /dislocker/ntfs

Et voilà, vous savez désormais

* Déchiffrer votre partition Windows ;
* Récupérer vos documents Windows depuis Linux ;
* Créer des dossiers partagés entre Linux et Windows ;
* Créer des dossier sur Windows qui ne pourront être que lus par Linux ;
* Démonter tous les dossiers montés avant d'éteindre son ordinateur.

Merci de votre lecture !

Gravatar de genma
Original post of genma.Votez pour ce billet sur Planet Libre.