Archives de catégorie : Linux

Pollution Amazon dans Ubuntu

La nouvelle version de Ubuntu Linux est sortie !
Version 18.04 LTS nommée bionic .
Bonne nouvelle même si je préfère toujours Debian Linux.

Par contre, comme d’habitude on a droit à la publicité gênante de Amazon dans les liens des applications (et pas que), et notamment bien placée dans le dock.
Solution pour la retirer à tous les utilisateurs en une seule fois, retirer le paquet ubuntu-web-launchers. Et c’est bon :-)

LG 31MU97 – Forcer les résolutions d’écrans mal détectées

Depuis que j’ai reçu mon LG 31MU97 je me régale les yeux !

Mais… c’est aussi une source de frustration dans certains configurations, l’écran ne renvoie pas toujours correctement les résolutions et fréquences à utiliser par l’ordinateur.

Cet écran en particulier supporte :

  • HDMI 1 et 2 : 3840×2160 à 30Hz ou 4096×2160 à 24Hz
  • DisplayPort et miniDP : 4096×2160 à 60Hz

Ici on travaille sous Linux. Ces problèmes sont résolus différemment sous Windows… on installe le pilote de l’écran.

Forcer à la main pour un essai

La commande xrandr dans un terminal Linux permet tout de suite de savoir où on habite et les résolutions supportées.

Le calcul des bons paramètres se font sur https://arachnoid.com/modelines/index.html

On commence par déclarer les résolutions :

xrandr --newmode "4096x2160_60" 556.730 \
 4096 4104 4136 4176  2160 2208 2216 2222 \
 +hsync +vsync
xrandr --newmode "3840x2160_30" 339.57 \
 3840 4080 4496 5152  2160 2161 2164 2197 \
 +hsync +vsync
xrandr --newmode "4096x2160_24" 284.24 \
 4096 4320 4752 5408  2160 2161 2164 2190 \
 +hsync +vsync

Puis on affecte une ou plusieurs résolutions à des sorties de la machine :

xrandr --addmode DP-1 4096x2160_60
xrandr --addmode HDMI-2 3840x2160_30
xrandr --addmode HDMI-2 4096x2160_24

Maintenant on peut les utiliser classiquement dans notre gestionnaire de fenêtres, par exemple sous Gnome Shell :

capture-decran-de-2018-04-01-13-15-36

On notera que curieusement LG s’appelle en interne Goldstar Company Ltd… Grosses chevilles…

Figer dans la configuration

Créer le script /etc/X11/Xsession.d/10xrandr et le remplir avec :

#!/bin/bash
xrandr --newmode "4096x2160_60" 556.730  4096 4104 4136 4176  2160 2208 2216 2222 +hsync +vsync
xrandr --newmode "3840x2160_30" 284.24   4096 4320 4752 5408  2160 2161 2164 2190 +hsync +vsync
xrandr --newmode "4096x2160_24" 284.24   4096 4320 4752 5408  2160 2161 2164 2190 +hsync +vsync
xrandr --addmode DP-1 4096x2160_60
xrandr --addmode HDMI-2 3840x2160_30
xrandr --addmode HDMI-2 4096x2160_24

etc…

CF : https://wiki.archlinux.org/index.php/xrandr

capture-decran-de-2018-04-01-14-52-15Edit 09/05/2018 : Dans certaines configurations, le "4096x2160_60" n’est pas reconnu par xrandr et il faut utiliser à la place une syntaxe sans underscore "4096x2160x60".

Détecter la résolution d’un écran

Lors de la préparation personnalisée d’une station Linux sur un matériel précis, on peut préparer à la main une image à la ‘bonne’ résolution. Mais on peut aussi le faire faire automatiquement par un script de préparation qui va s’adapter à l’écran disponible.

La conversion d’image se fait avec l’outil en ligne de commande :
convert image.jpg -resize 1920x1080 resized.jpg

Ici la résolution est connue, 1920×1080. Mais on peut l’extraire via la commande :
xrandr | grep -A2 "^Screen 0:" | tail -1
et il reste ‘juste’ à extraire le premier champs… le mettre dans une variable… et replacer la variable dans la commande convert

CF : https://wiki.ubuntu.com/X/Config/Resolution

Changer de fond d’écran sans gestionnaire de fenêtre

Il peut être utile lorsque l’on prépare une machine Linux fortement personnalisée de ne pas utiliser de gestionnaire de connexion et pas de gestionnaire de fenêtre. L’effet collatéral c’est que le fond d’écran n’est pas initialisé.

Les commandes ci-dessous peuvent se faire en root ou avec l’utilisateur propriétaire de la session X. Il faut veiller à autoriser une connexion locale au serveur X (xhost + localhost) ou récupérer le cookie du serveur X.

Première étape, on peut mettre un fond de couleur unie de fond d’écran :
xsetroot -solid '#102bc8'

Seconde étape, on peut mettre en place une image de fond d’écran :
feh --bg-scale /home/user/image.png

Cette façon de faire implique du travail de préparation de la station pour remplacer tout ce que fait un gestionnaire de connexion, mais il permet de gagner de précieuses (ou pas) ressources mémoires et empêche l’utilisateur de modifier le fond d’écran.

Retrouver le numéro de série du disque du système

Il est parfois utile de retrouver le numéro de série du disque dur (ou toute autre information) sur lequel le système tourne. On peut en avoir besoin par exemple pour une mise à jour d’une règle UDEV pour autoriser (ou non) les supports de stockages.

Quand on connaît le nom du disque, par exemple /dev/sda1, on peut retrouver l’information avec l’outil udevadm :
udevadm info -q property -n /dev/sda1 \
| grep ID_SERIAL_SHORT \
| cut -d '=' -f 2

Si on a le point de montage, c’est un peu plus long, il faut préalablement extraire le nom du disque :
udevadm info -q property \
-n $( mount | grep ' / ' \
| cut -d ' ' -f 1 ) \
| grep ID_SERIAL_SHORT \
| cut -d '=' -f 2

Dernier truc, l’exemple ici est fait sur la racine /… mais la racine d’un système Linux aujourd’hui est souvent chiffrée, donc ne dépend pas d’un disque physique mais d’une disque virtuel (lui-même sur le disque physique). Dans ce cas ça ne marche pas mais il est possible de faire le test sur /boot qui sera obligatoirement présent sur un système chiffré et en clair, donc directement sur le disque physique… ou sera présent parce que c’est souvent dans les recommandations pour durcir un système Linux.

Script VPN en vadrouille – via pare-feu

Suite de l’article Script VPN en vadrouille.

Certains opérateurs indélicats ajoutent des pare-feux entre leurs clients et l’Internet. Un des effets classiques de l’ajout de pare-feux, c’est que les connexions TCP qui ne communiquent pas pendant un certain temps sont considérées comme expirées, et donc automatiquement coupées. La coupure intervient généralement au bout de deux minutes. Continuer la lecture de Script VPN en vadrouille – via pare-feu

Script VPN en vadrouille

De balade de nouveau en Colombie.

Cette année, j’ai refait mon script de connexion vers la maison. Il s’agit de faire croire à face de bouc et co que je suis toujours à la maison pas qu’ils me posent tout un tas de questions dont moi-même ne suis pas sûr de pouvoir répondre…

Tout est fait sous Linux Debian mais il est facile d’adapter à d’autres distribution.

Continuer la lecture de Script VPN en vadrouille

Extraction de la piste son avec avconv

Sous Linux, l’outil libav permet de manipuler en ligne de commande les vidéos et notamment de scripter tout plein de choses.

Le paquet à installer sous Debian/Ubuntu s’appelle libav-tools (D/U).

Pour extraire la piste son d’une vidéo et la ré-encoder dans un format audio donné (ici ogg-vorbis), il faut utiliser la commande :

avconv -i fichier_video.mp4 \
-map 0:1 \
-strict experimental \
-acodec vorbis -ar 44100 -ac 2 -ab 192k \
fichier_audio.ogg

Ça tient sur une seule ligne sans les \ de fin de lignes; mais dans un script c’est plus clair…

On peut bien sûr jouer sur la qualité de re-compression ou le format audio de sortie :-)

Migration vers le nouveau serveur

Les blogs de Starend et annexes ont migrés vers de nouveaux serveurs qui tournent sur des distributions Linux beaucoup plus récentes. Il était plus facile de refaire un par un quelques petits serveurs, un par service, plutôt que de tout migrer d’un seul coup.

Il ne reste plus grand chose sur l’ancien serveur. Il va pouvoir être complètement réinstallé…

Essaie de M$ Windows 10

Ca y est, Microsoft fait sa publicité partout pour la sortie de Windows 10. Est-ce que ce sera un bon cru comme Windows 7 ou un taré comme Windows 8 ? L’avenir nous le dira…

Ayant une machine un peu ancienne mais avec une licence Windows 7 valide, je décide de la réinstaller propre en Windows 7 pour ensuite la faire passer en Windows 10, puisque c’est gratuit. Déjà, une réinstallation de W7 complète sans logiciels supplémentaires mais avec toutes les mises à jours, c’est une bonne demi-journée.

En allant chercher chez Microsoft le petit programme qui va bien, je peux lancer tout de suite la mise à jour vers W10. Et hop, trois heures de téléchargement. Il faut dire que les serveurs de distributions de la nouvelle version chauffent un peu en ce moment.

Et la mise à jour commence, 3 heures aussi avec des redémarrages réguliers, un plantage en cours de route… Et enfin, on arrive sur quelque chose d’exploitable !
Ca a fini à 1 heure du mat’ tout ça…

Côté disque, sur les 64Go alloués, 45Go sont occupés, sans rien installer de plus.

Alors ? Bien ou bien ?
Mon avis très perso, c’est que l’interface épuré, ça change du bling bling des interfaces passées avec leurs jeux de transparences et d’effets animés partout. Je suis partagé sur cette interface, j’aime le côté épuré que j’utilise pour nebule, mais là je la trouve un peu moche par défaut. Il y a quand même une bonne cohérence de l’ensemble et c’est fonctionnel, finalement le plus important c’est ça.

Point négatif, c’est que sans compte chez monsieur Microsoft on est vite limité. Beaucoup de programmes le demande. Quand on crée des comptes sur la machine, on nous incite fortement à créer un compte chez M$. Il faut bien cherche le moyen de faire un compte local normal.

Bon, fin de la récréation. Faut quand même que je bosse un peu sur cette machine. Je vais garder le W10 pour tester mes sites web, mais j’ai besoin de mettre un Linux à côté sur le disque.

Au moment de l’installation de W7, au début, j’avais partitionné le disque pour ne laisser que 64Go à Windows. et une petite partition de 1Go pour le /boot du Linux à venir. Je lance l’installation de Linux Debian 8… et je vois que ma petite partition est bien là mais que les 4 partitions primaires sont utilisées. Bref, Monsieur Microsoft a ajouté une partition (800Mo) et n’a pas jugé bon de la mettre en partition étendue. Je suis obligé de sacrifier la petite partition de 1Go pour pouvoir créer une partition principale avec la plus grosse partie du disque pour contenir des partitions étendues.

En une heure l’installation de Debian est terminée, mises à jours comprises. Une autre heure pour les programmes supplémentaires et tout est bon.

On peut choisir au démarrage sur quel système on démarre, et W10 ne se plaint pas de son colocataire :-)

Faire un ‘timelapse’ des feux d’artifices

Ce 14 juillet, j’ai réussi à trouver une pas trop mauvaise place avec une vue correcte sur la tour Eiffel et son traditionnel feu d’artifice. Plutôt que de rester river à mon appareil pour faire des photos ou filmer, je l’ai laissé sur le trépied avec la télécommande en main et j’ai ainsi pu profiter du feu pendant que l’appareil travaillait tout seul :-)

Je suis parti sur un réglage de l’appareil en rafale lente sur f/8, 100iso et 4s, position 36Mpixels. En cours de route, je suis passé à 2s. Cela donne une série de photos de 2s de pose avec quasi rien de pause en chaque photos. Bon, à un bémol près, j’ai régulièrement saturé le buffer de l’appareil, ce qui provoque quelques passages sans photo.

Et en avant, on bloque la télécommande et on regarde !

tl0016

Ici, c’est le concert avant le feu.

En tout, il y a 747 photos exploitables et à exploiter !!!

tl0441

Et voici donc le film du feu d’artifice en ‘timelapse’ :

Un peu de technique maintenant. Comment faire le film en ‘timelapse’ depuis la série de photos. Tout est fait ici en ligne de commande sous Debian Linux avec convert et avconv. Continuer la lecture de Faire un ‘timelapse’ des feux d’artifices

Installation Debian 8 sur clé USB 64Go ultra-petite

La clé USB

Je souhaite disposer d’un nouveau système d’exploitation entièrement embarqué sur une toute petite clé USB et pouvant être utilisé sur n’importe quel ordinateur PC. Pour cela, j’ai acheté une clé USB SanDisk Ultra Fit 64Go.

c9a8d4b6-c006-438c-93ba-ab7f5a4e341f._V325735931__SR300,300_ SanDisk_Cruzer_Fit_Ultra_64gb_4 downloadImage9494_gallery

A l’achat, il y a une semaine, la clé m’a coûté 26€20.

Elle est vraiment petite et ne dépasse que de 6mm de l’ordinateur une fois connectée. Il manque une petite sangle pour l’attacher au porte clé, sans ça elle sera vite perdu…

Le cache de protection plastique est, comme d’habitude, un peu inutile. Il fonctionne bien pour l’instant mais il finira vite à l’usage par ne plus tenir, et donc il ne protégera plus la clé dans la poche au milieu des autres clés. Mais heureusement, il n’est pas indispensable. Au jugé, la coque de la clé est métallique et semble assez robuste pour ce genre de clé.

Le clignotement rouge de la clé est sympathique et le bienvenue à l’usage.

Le système

J’installe ici le système Debian Linux 8.1.0 pour processeurs 64bits.

banner

Le DVD peut être téléchargé ici. On peut prendre une version plus récente ou plus ancienne (8.0), après installation et mise à jour on aura de toute façon l’équivalent de la dernière version.

Deux petite particularités de mon installation. Pour commencer le système et les données utilisateurs sont intégralement chiffrées, sauf pour la partition de démarrage /boot qui restera non chiffrée (minimum indispensable). Et une partition d’échange en FAT32 de 4Go est maintenu pour pouvoir échanger des données notamment avec des machines sous M$ Windows.

Par facilité, j’utilise une machine dans laquelle je retire le disque dur interne le temps de l’installation. Sinon il faut faire attention en fin d’installation que GRUB soit bien installé sur la clé USB et pas sur le disque interne.

Le partitionnement de la clé ressemble donc à ça :

  1. sda1, 4Go, FAT32, /public
  2. sda2, 512Mo, ext4, /boot, avec indicateur d’amorcage
  3. sda3, 57.6Go, volume physique pour chiffrement :
    1. sda3_crypt, 57.6Go, ext4, /

Pas de partition de SWAP pour deux raisons. On ne va pas faire des choses très gourmandes en mémoire ou on considère que la mémoire vive de l’ordinateur sera suffisante pour cela. Et activer un SWAP sur un disque de type mémoire Flash est un bon moyen de l’user prématurément, il ne supporte pas autant de cycle d’écritures qu’un disque dur.

Le reste, c’est comme d’habitude. Et ça va assez vite, le plus long c’est de télécharger le DVD d’installation…

Personnalisation

Pour continuer, je modifie le fichier des sources de logiciels pour ajouter les contrib et non-free. Je désactive l’option qui permet d’installer automatiquement les paquets recommandés. Ainsi, lorsque l’on installe un nouveau logiciel, il ne met que ce qui est nécessaire en dépendance et pas ce qui est superflu (recommandé). Cela va un peu sauver de la place sur la clé.

Moyennant l’installation de divers logiciels pour mes besoins, il reste 48Go de libre.

La liste de ce que j’ai ajouté :

  • environnement Gnome (lors de l’installation)
  • e17
  • icedove
  • darktable
  • gimp-data-extras
  • gimp-gap
  • gimp-lensfun
  • gimp-plugin-registry
  • gwenview
  • hugin
  • kdenlive
  • libav-tools
  • exif
  • audacity
  • asunder
  • plymouth
  • plymouth-themes
  • firmware* (wireless/ethernet)

La liste de ce que j’ai retiré :

  • rpcbind
  • nfs-common

Firmware pour RTL8192EE

Je joue avec un Lenovo X250 installé fraichement sous Debian 8. C’est une petite machine assez sympathique.
Comparé au X240, le TouchPad est bien mieux conçu… au point qu’il vaut mieux éviter très franchement ce X240.

Mais j’ai un peu coincé pour la carte wifi…

Installer le paquet firmware-realtek

Le driver à utiliser : r8192ee

Le firmware peut être téléchargé ici. Il faut copier rtl8192eefw.bin dans /lib/firmware/rtlwifi/ .

Et enfin un redémarrage ou un déchargement/rechargement du driver r8192ee …

CF :
http://www.fishprogs.info/puppy/firmware/rtlwifi/
http://ftp2.halpanet.org/source/_dev/linux-firmware.git/rtlwifi/
https://wiki.debian.org/fr/rtl819x
http://www.corsac.net/X250/
https://github.com/OpenELEC/wlan-firmware/raw/master/firmware/rtlwifi/rtl8192eefw.bin

lenovo-laptop-thinkpad-x250-main

Personnalisation de sa machine Linux – 1 chargeur de démarrage

Première partie de la personnalisation de sa machine Linux.

Introduction

Le chargeur de démarrage, c’est un tout petit programme. Lorsque l’on allume sa machine, elle exécute le BIOS ou l’UEFI. Ceux-ci sont enregistrés dans une puce de la carte mère et permettent d’initialiser et de configurer la machine avec tous ses périphériques (carte vidéo, carte son, disque dur, etc). Lorsque le BIOS ou l’UEFI ont finit leur travail, ils chargent depuis le disque dur (en général) un petit programme stocké en début de disque, c’est le chargeur de démarrage. On trouve principalement GRUB ou LILO pour Linux, ou le Bootloader pour M$ Windows.

A quoi sert ce petit programme ? Il est souvent masqué ou ignoré de l’utilisateur lorsqu’il ne l’est pas. Et il passe très vite. C’est lui qui va lister les systèmes d’exploitations installés sur le ou les disques durs et permettre à l’utilisateur de choisir lequel il souhaite utiliser. Souvent, il n’y a qu’un seul système d’exploitation, c’est la raison pour laquelle peu d’utilisateurs remarquent le chargeur de démarrage.

On utilise ici GRUB, le chargeur de démarrage installé par défaut sous Debian Linux.

Comme on travaille sur une clé USB, suivant les machines sur lesquelles on va démarrer, il ne sera pas toujours possible de disposer d’une bonne résolution d’écran au démarrage. On fixe par défaut une résolution d’écran assez petite pour minimiser les problèmes, soit du 640×480.

Continuer la lecture de Personnalisation de sa machine Linux – 1 chargeur de démarrage

Personnalisation de sa machine Linux – Introduction

Je vais démarrer un cycle de quelques articles sur la personnalisation d’une machine Linux. Les manipulations seront réalisées sur la toute dernière Debian Linux 8.0 « Jessie » sortie il y a quelques jours seulement. Mais beaucoup de manipulations pourront être reproduites sur Ubuntu et Mint en particulier et sur sur d’autres distributions Linux récentes en général.

Tout est fait dans mon cas sur une installation de Debian 8.0 sur clé USB. En cas de problème, si on casse quelque chose, le Linux installé sur la station, normalement sur le disque dur, n’est pas endommagée, ou a peu de chance de l’être.

On sait tous personnaliser le fond d’écran du bureau et la couleur des fenêtres. Mais il y a pleins d’autres choses que l’on peut adapter à ses gôuts ou aux couleurs de son entreprise ou association.
Voici la liste des sujets qui seront abordés dans les prochains articles :

  1. Personnalisation du chargeur de démarrage ;
  2. Personnalisation du démarrage/arrêt du système ;
  3. Personnalisation du gestionnaire de connexion ;
  4. Choix du gestionnaire de fenêtre ;
  5. Personnalisation du bureau.

Avant de commencer ce travail à plusieurs étages, il faut déterminer le thème graphique, le style ou la charte graphique que l’on souhaite appliquer.

Ajouter un logo sur une vidéo

Pour tagger mes vidéos en masse avec un logo, j’ai recherché un peu sur Internet ce qui pouvait être fait en ligne de commande.

Sous Debian Jessie, il n’y a plus ni mencoder ni ffmpeg. J’avais des scripts avec le premier, faut les changer…
En remplacement, il faut installer libav-tools et utiliser la commande avconv.
CF : https://libav.org/avconv.html

Pour avoir un maximum de compatibilité avec les lecteurs vidéo et autres platines multimédia, j’encode la sortie vidéo en MPEG-4.

Il faut bien sûr un logo de la taille attendue sur la vidéo, au format PNG. Par exemple une image de 100px par 100px avec de la transparence :

logo

Pour insérer le logo sur la vidéo en haut à gauche (à 20px du bord) :
avconv -i $input -strict experimental -threads auto -vcodec libx264 -crf 20 -g 2
-vf "movie=$logo [watermark];[in][watermark] overlay=20:20 [out]" $output

Pour insérer le logo sur la vidéo en haut à droite :
avconv -i $input -strict experimental -threads auto -vcodec libx264 -crf 20 -g 2
-vf "movie=$logo [watermark];[in][watermark] overlay=main_w-overlay_w-20:20 [out]" $output

Pour insérer le logo sur la vidéo en bas à gauche :
avconv -i $input -strict experimental -threads auto -vcodec libx264 -crf 20 -g 2
-vf "movie=$logo [watermark];[in][watermark] overlay=20:main_h-overlay_h-20 [out]" $output

Pour insérer le logo sur la vidéo en bas à gauche :
avconv -i $input -strict experimental -threads auto -vcodec libx264 -crf 20 -g 2
-vf "movie=$logo [watermark];[in][watermark] overlay=main_w-overlay_w-20:main_h-overlay_h-20 [out]" $output

Pour insérer le logo sur la vidéo en bas au milieu :
avconv -i $input -strict experimental -threads auto -vcodec libx264 -crf 20 -g 2
-vf "movie=$logo [watermark];[in][watermark] overlay=(main_w/2)-50:main_h-overlay_h-20 [out]" $output

La valeur -50, c’est la taille du logo divisé par 2.

Pour réduire la résolution de la vidéo, et donc la place et la qualité :
avconv -i $input -strict experimental -threads auto -vcodec libx264 -crf 20 -g 2
-vf "movie=$logo [watermark];[in] scale=1280:720 [cropped],[cropped][watermark] overlay=(main_w/2)-50:main_h-overlay_h-20 [out]" $output

Pour réduire le bitrate, et donc encore la place et la qualité :
avconv -i $input -strict experimental -threads auto -vcodec libx264 -b:v 10000k -bt:v 5000k
-vf "movie=$logo [watermark];[in] scale=1280:720 [cropped],[cropped][watermark] overlay=(main_w/2)-50:main_h-overlay_h-20 [out]" $output

Il ne reste plus qu’à faire le tour de toutes les vidéos à tagger… Une bonne vieille boucle en bash sur un find de la mort dans le dossier des vidéos… et beaucoup de temps…

Pollution de blog

Quand certains outils marchent trop bien, on finit par ne plus se rendre compte de leur présence… et de leur travail quotidien à notre profit.

C’est le rôle principal de l’informatique que de travailler à notre profit. Et l’informatique sera complètement acceptée par tous quand elle deviendra complètement transparente…

Bref, sur les blogs que j’héberge, il y avait un problème de connexion de Akismet vers ses serveurs. Akismet, pour rappel, permet de nettoyer automatiquement les messages indésirables des blogs.
Autant vous dire que ça se voit tout de suite, subitement, on a tout plein de copains du monde entier…
Par exemple, pour le blog de nebule, c’est 11 messages indésirables en 2 jours… à modérer à la main… à modérer sans modération !

Convertir une police OpenType en TrueType

On récupère parfois des polices de caractère au format OpenType… mais même si le gestionnaire de fichier les montre et que l’on peut les ouvrir avec la visionneuse, LibreOffice ne les prend pas en compte.

Il faut les convertir en TrueType.

Créer quelque part le fichier otf2ttf.sh contenant :

#!/usr/local/bin/fontforge
# Quick and dirty hack: converts a font to truetype (.ttf)
Print('Opening '+$1);
Open($1);
Print('Saving '+$1:r+'.ttf';
Generate($1:r+'.ttf');
Quit(0);

Et lancer dans un dossier contenant les fichiers .otf la commande :
for i in *.otf; do fontforge -script otf2ttf.sh $i; done

Bien sûr, il faut que le paquet fontforge soit installé.

CF : http://www.thomasvolkmann.com/blog/?p=70 et http://www.stuermer.ch/blog/convert-otf-to-ttf-font-on-ubuntu.html
(Les doubles cotes doivent être remplacées par des simples cotes)

Tunnel TLS pour ldap

Il y a semble-t-il un bugg récent assez gênant sur la libraire GnuTLS sous Debian 7. Suite à une mauvaise implémentation semble-t-il au niveau de la négociation des algorithmes de chiffrement, il est impossible de générer ou d’utiliser des certificats pour les programmes qui utilisent cette librairie. Et c’est le cas notamment de slapd, le serveur d’annuaire LDAP (OpenLDAP) sous UNIX.

Le problème aurait pu passer presque inaperçu… mais il y eu heartbleed…Et il se trouve donc qu’un certain nombre d’admins systèmes ont dû changer très rapidement les certificats de leurs serveurs, et ont dû tomber sur ce problème.

Il devient ainsi impossible de relier un serveur de messagerie ou un serveur web avec un annuaire LDAP utilisant OpenLDAP. J’ai notamment le problème avec mon serveur postfix

Il est possible de ne pas utiliser la connexion à l’annuaire via TLS. C’est potentiellement un gros problème de sécurité en fonction des différents réseaux que vont traverser ces flux. Bref, ont n’a plus de sécurité sur un flux qui contient toute l’authentification du réseau. C’est assez moyen.

Il est aussi possible de mettre en place une solution de remplacement avec stunnel. Cela revient en fait à faire manuellement la connexion et le tunnel sécurisé par TLS. En plus, on peut conserver les mêmes certificats que le démon slapd.

Côté serveur

Il faut commencer par désactiver l’utilisation du port tcp/636. Pour cela, il faut modifier une ligne dans le fichier /etc/default/slapd :
SLAPD_SERVICES="ldap://127.0.0.1:389/"

Redémarrer le démon slapd.

Ensuite,on concatène le certificat et sa clé dans un seul fichier :
cat /etc/ssl/private/slapd.key /etc/ssl/certs/slapd.crt > /etc/ssl/private/slapd-all.crt

Enfin, on crée le bout du tunnel côté serveur, en réutilisant le certificat :
stunnel -d 636 -r 127.0.0.1:389 -p /etc/ssl/private/slapd-all.crt

Côté client

Le client, c’est le service qui utilise l’annuaire LDAP, par exemple postfix.

On crée le bout du tunnel côté client :
stunnel -c -d 6389 -r ldap.serveur.net:636

Enfin, on dit au client, en l’occurrence postfix, d’utiliser le tunnel. Modifier le fichier /etc/postfix/main.cf (ou équivalent) :
account_server_host = ldap://localhost:6389/

Et on redémarre postfix

CF : https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=737921

Continuer la lecture de Tunnel TLS pour ldap