Archives de catégorie : Vie de FUNIX

Installer un réseau vpn avec openVPN

Je dispose d’un réseau local centré autour d’un serveur Dell PowerEdge T310 qui fait office de serveurs d’authentification avec OpenLDAP, de mail et de fichiers (entre autres) comme je l’ai déjà signalé à multiples reprises sur ce blog. Je suis régulièrement en déplacement et j’avais mis en place un service de webmail sur le serveur me permettant de consulter mes mails d’un mobile ou d’un portable connecté à mon mobile où que je sois. J’avais fait un post il y a quelques temps à ce sujet qu’on trouvera ici.
En revanche pour consulter les fichiers sur mon serveur, j’utilise OpenSSH en ligne de commande, ce n’est pas franchement convivial et intuitif, mais je m’en contentais jusqu’à présent.

Il se trouve que ma petite dernière entame des études à l’étranger et j’aimerais lui faciliter les choses pour qu’elle puisse accéder aux ressources du réseau local en toute transparence et simplicité. J’ai donc pensé à créer un tunnel VPN entre son Thinkpad sous Linux/Mageia et le réseau local familial.

On trouve beaucoup de tutoriels sur internet sur le sujet, mais quasiment tous présentent une configuration où tout le flux internet du client VPN se trouve redirigé vers le serveur via le tunnel VPN. L’accès internet se fait donc via le serveur avec la technique de l’IP Masquerade. C’est sûrement intéressant dans beaucoup de cas, notamment pour une utilisation professionnelle où on souhaite filtrer l’accès à internet (voire l’interdire), ou bien encore pour surfer plus ou moins masqué, mais dans mon cas ça n’apporte rien du tout, car ça ralentit considérablement l’accès à internet sur le client. Je souhaite juste que le client accède aux ressources du réseau local privé et continue à accéder à internet via sa connexion habituelle.

Du coup j’ai travaillé sur cette configuration particulière que j’expose dans cette page où sont présentées les principales étapes pour configurer le serveur et le client VPN basé sur OpenVPN. De mon poste client je peux maintenant simplement lancer la connexion VPN où que je sois connecté et accéder du terminal ou d’un gestionnaire de fichiers aux fichiers du serveur.

Accessoirement j’ai vu également que je pouvais maintenant accéder à mon VPN via mon mobile Android. Je n’en ai pas franchement l’utilité aujourd’hui, mais pourquoi pas, pour le fun je pourrais essayer, ça fera certainement l’objet d’un nouveau post.

Sauvegarde le retour

J’ai connu en début d’année des déboires suite à un crash disque inopiné comme je l’évoque dans ce post. En fait un problème disque bas bruit, non détecté, a conduit à la corruption de données, données qui ont été sauvegardées en écrasant la sauvegarde saine. J’ai été surpris par le crash disk qui est arrivé sans crier gare, et c’est seulement en remontant ma sauvegarde que je me suis rendu compte de sa corruption. Malgré des heures passées à tenter de récupérer les données manquantes avec photorec entre autres, j’ai perdu dans l’affaire pas mal de données essentiellement des fichiers multimédia patiemment emmagasinés depuis des années.

Suite à cet incident, j’avais revu de fond en comble ma stratégie de sauvegarde qu’on peut retrouver dans cet autre post. J’avais évoqué mes déboires et présenté fièrement cette nouvelle stratégie dans ce journal sur linuxfr. Bien m’en a pris, les commentaires qui m’ont été faits m’ont ouvert les yeux et j’ai revue de fond en comble ma stratégie de sauvegarde qui ressemble maintenant à quelque chose comme cela :

Continuer la lecture de Sauvegarde le retour

Installer un agenda kolab sur le webmail roundcubemail

Ma tendre et chère souhaitait pouvoir disposer d’un agenda qu’elle retrouverait sur le PC et sur son mobile pour se débarrasser de son agenda papier de moins en moins pratique. Comme je ne choisis pas la facilité et dans l’esprit que mes données ne se retrouvent pas quelque part aux US ou en Chine à la merci de hackeurs ou de revendeurs de données, j’ai choisi d’intégrer un plugin d’agenda au webmail Rouncube.

Pour mémoire je me repose sur mon serveur personnel Dell PowerEdge T310 qui tourne dans mon garage et qui fait office de cloud perso et sur lequel tourne Roundcube qui me permet d’accéder à mes mails de mon mobile comme expliqué par ici. J’ai choisi d’installer le plugin kolab, le détail de l’installation est donné par . Voilà ce que ça donne sur l’ordinateur

et sur le mobile

le tout est évidemment complètement synchronisé.

Continuer la lecture de Installer un agenda kolab sur le webmail roundcubemail

Mise à jour de FUNIX.org

J’ai opéré une mise à jour récente de funix.org pour prendre en compte quelques évolutions. Dans le détail il s’agit de :

pages divers
– page trucs et astuces, mise à jour des astuces liées aux logiciel libres qui sont issues de ce blog
– page piloter une montre GPS garmin, rajout du pilotage d’une garmin forerunner 735XT sous linux et rajout d’un paragraphe sur les applications de visualisation GPS en ligne comme GPS Visualizer pour n’en citer qu’un.
 
pages multimédia
– page outils de base pour la vidéo, passage à flac 1.3.3, faad 2.9.2, gpac 1.0.0, x265 3.4, OpenCV 4.4.0, et ffmpeg 4.3.1
– page mediacenter, passage à kodi 18.8 Leia qui est essentiellement une version avec des corrections de bogues et qui ne comprend pas de nouvelles fonctionnalités
– page outils audio divers passage au lecteur audio Audacious 4.0.5 dont l’évolution majeure est le passage à Qt5 sinon les évolutions sont assez peu sensibles, passage la version 1.4.0rc2 pour l’autre lecteur vidéo Clementine qui tourne maintenant sous Qt5 la version stable n’est plus très proche, passage au lecteur vidéo lollypop 1.3.6 et Music Brainz Picard 2.4.4 qui permet de taguer automatiquement les fichiers audio.
– page lecteurs vidéo, passage au lecteur vidéo vlc 3.0.11 qui apporte juste des correctifs

Audacious 4.0.5



pages montage vidéo
– page outils de montage vidéo, passage à mlt 6.22.1, kdenlive 20.08.1, Flowblade 2.6, Shotcut 20.07.11, SynfigStudio 1.3.16 et blender 2.90
– page tutoriel kdenlive, passage à la version 20.08.1 et rajout de fonctionnalités issues de cette nouvelle version, notamment les préconfigurations d’affichage en fonction des phases de travail (rushes, effets, colorimétrie, etc.).

kdenlive 20.08.1

pages gestion des mails
– page filtrer les mails, rajout de quelques subtilités dans la configuration de SpamAssassin pour gérer les whitelist et blacklist, et passage à l’antivirus Clamav 0.103.0. Malgré cela je continue à rencontrer encore des soucis avec les whitelist et les blacklist qui sont mal prises en compte.

Dans la page de téléchargement
Mise à jour du tutoriel kdenlive pour prendre en compte la nouvelle version

Montage vidéo

Pas mal de nouveautés sur le front des logiciels de montage vidéo sous linux, jusqu’à présent j’utilisais Kdenlive mais ces derniers temps j’ai pu faire mes derniers montages avec OpenShot Video Editor qui est maintenant enfin pleinement opérationnel. Dans cet élan, j’ai testé Flowblade Movie Editor et Pitivi Video Editor qui sont deux autres logiciels de montage vidéo, le premier est grossièrement équivalent à Kdenlive alors que le dernier se destine plutôt aux débutants.

Flowblade Movie Editor

Devant cette pléthore de logiciel j’ai rédigé un comparatif de Kdenlive, Flowblade, OpenShot et Pitivi sur la base de plusieurs critères les plus objectifs possibles et après avoir passé quelques heures pour réaliser des vrais montages et pas seulement pour survoler les fonctions des uns et des autres. On pourrait résumer ce test avec ce tableau synthétique :

Continuer la lecture de Montage vidéo

Mise à jour de mes pages LAMP

J’ai profité de cette période de confinement pour profondément toiletter mes pages LAMP, en d’autres termes c’est l’ensemble Linux+Apache+MySQL+PHP qui sert à faire tourner les pages web. Avoir un serveur web perso présente plusieurs intérêts, ça permet déjà de pouvoir tester ses pages web avant de les envoyer sur internet sur un autre serveur web hébergé sur internet, cela permet également de monter un serveur web qui pourra être accessible d’internet pour diverses applications. Une illustration de ces applications est donnée en fin de ce post.

Tout d’abord dans la page principale LAMP je présente l’installation d’Apache 2.4.41, de PHP 7.4.4 et, grande nouveauté, de MariaDB à la place de MySQL. Cela fait des années que je tournais avec un serveur MySQL, mais il est passé de mode après un changement de licence et de philosophie, remplacé par son fork MariaDB qui reste totalement libre. J’ai eu un peu de mal à l’installer à partir des sources, mais la migration de mes bases MySQL n’a pas posé de soucis, il faut dire que MariaDB assure une compatibilité avec MySQL. Cerise sur le gâteau, j’ai configuré une connexion chiffrée entre le client et le serveur MariaDB, même si la configuration de la connexion à partir de phpMyAdmin n’a pas été simple.

J’ai également mis à jour la page présentant l’installation d’un moteur de recherche, cela fait 15 ans que je ne l’avais pas mise à jour ! Jusqu’à présent je me basais sur Ht://Dig qui n’est plus maintenu depuis des lustres, je présente maintenant Hl://Dig qui n’est d’autre qu’un fork de Ht://Dig mais qui est toujours maintenu.

Pour terminer j’ai mis à jour la page qui présente les outils webalizer et awstats pour analyser les fichiers logs d’Apache, avec la nouvelle version de mon script qui me sert à récupérer les logs de mon serveur funix hébergé chez online.net et à les analyser et à les rendre accessible sur mon serveur web perso.

Et pour vous donner une illustration de ce qu’on peut faire avec un serveur web, voici une liste non exhaustive des applications de mon serveur web perso:

  • consultation des mails sur mon mobile à distance via le webmail Roundcube Mail, comme présenté ici,
  • synchronisation de mes contacts, de mon agenda et de mes fichiers via NextCloud, comme présenté ,
  • consultation à distance des images et vidéos d’une webcam configurée comme une caméra à détection de mouvement, comme présenté ici,
  • consultation de l’état de l’onduleur qui soutient électriquement mon serveur, présenté .

Lecteurs audio sous linux

Comme lecteur audio cela fait des années que j’utilise Clementine. Par rapport à ses nombreux concurrents, il présente le gros avantage de proposer des listes de lecture intelligentes et c’est bien pour ça que mon choix s’est porté vers lui. En effet, quand on dispose d’un catalogue de plusieurs milliers de titres, c’est souvent laborieux et chronophage de créer ses propres listes de lecture, autant laisser le système le faire à votre place. Clementine propose ainsi les modes de lecture intelligents suivants :

  • 50 pistes aléatoires ;
  • déjà joués ;
  • dernières écoutes ;
  • jamais joués ;
  • les plus joués ;
  • mix aléatoire dynamique ;
  • nouvelles pistes ;
  • pistes favorites ;
  • pistes les moins aimées ;
  • toutes les pistes.

Pour que ça soit efficace, il faut bien sûr utiliser régulièrement Clementine pour qu’il constitue une base de données des goûts musicaux.

Capture d’écran de Clementine en Qt5

Suivant le mode choisi, après un premier choix de liste réalisé par le système, on peut repeupler ou agrandir la liste de lecture comme bon nous semble. Sinon Clementine, comme d’autres, propose un mode parole des chansons, un mode d’information sur l’artiste et l’affichage des pochettes d’album.

Continuer la lecture de Lecteurs audio sous linux

Architecture avec serveur mail local

Dans un post précédent j’avais évoqué l’installation d’un serveur webmail basé sur Roundcube mail. L’intérêt de la manip est de pouvoir stocker ses mails sur son serveur perso et de pouvoir y accéder d’internet sur un mobile perso sous android (ou autres) où qu’on soit. Et donc d’être indépendant d’un GAFAM qui n’aura aucun scrupule à décortiquer les mails pour en tirer un quelconque profit. Dans ce post je vais aller plus loin en présentant l’architecture globale de réception et d’envoi de mail.

L’idée générale est que mon serveur récupère les mails sur des serveurs POP ou IMAP sur internet des utilisateurs du réseau local, puis les passe au travers de filtres anti spam et anti virus avant de les délivrer à un serveur de mail local. Ils peuvent être ensuite consultés via un client lourd du réseau local comme Thunberdird, ou d’un navigateur via le webmail du réseau local ou d’internet sur un mobile. Pour l’envoi de mail, les mails ne partent pas directement vers un serveur SMTP sur internet (généralement celui du FAI) mais passe d’abord par le serveur de mail local avec sa batterie anti spam et anti virus.

Commençons par un petit schéma qui vaut bien des discours.

Cette architecture s’appuie sur plusieurs outils:

  • fetchmail permet de récupérer les mails des utilisateurs du réseau local sur des serveurs POP ou IMAP accessibles sur internet
  • sendmail (MTA mail transport agent) serveur SMTP qui permet de gérer localement la réception des mails et d’appliquer certains filtres anti spam et anti virus pour cela on se basera sur SpamAssassin et ClamAV
  • procmail (MDA mail delivery agent) permet de délivrer les mails et les dispatcher suivant le destinataire, il peut également appliquer d’autres filtres
  • le serveur IMAP permet de rendre accessible aux lecteurs de mails (MUA Mail User Agent) du réseau local les mails qui sont arrivés, que vos clients soient sous windows ou sous linux.
  • le serveur webmail basé sur Roundcube mail permet de gérer les mails via un navigateur, y compris d’un téléphone mobile via internet. Pour cela il faudra rendre son serveur apache visible d’internet, tout l’intérêt de la manip est de rendre accessible d’internet que le serveur apache, il n’est pas nécessaire d’ouvrir les ports du serveur IMAP ou SMTP.

Pendant longtemps j’ai utilisé un serveur POP local, j’y accédais via thunderbird et pour que les mails soient accessibles sur tous les postes du réseau local, le répertoire .thunderbird dans lequel sont stockés les mails était partagé par partage NFS. Inconvénient de la méthode, les mails ne sont accessibles que du réseau local et d’un client lourd. Je suis passé au serveur IMAP pour pouvoir installer un webmail car il permet de pouvoir gérer une arborescence de dossiers de mails. C’est à dire sous thunderbird j’ai initialement classé mes mails dans des dossiers et sous dossiers, et seul IMAP permet de retrouver la même arborescence avec le webmail à partir d’un navigateur ou d’un mobile. Pour ce faire j’ai dû migrer le format de stockage de mes mails de mbox (en gros les mails d’un dossier sont dans un fichier unique) vers maildir (un mail est un fichier et un dossier est un répertoire).

C’est une architecture qui peut paraître particulièrement lourdingue et qui se base sur des outils qu’on peut considérer comme obsolète comme sendmail. Certes, certains disent que tant qu’on a pas chercher à  configurer sendmail, on n’est pas un vrai administrateur système… Disons que j’ai mis en place sendmail il y a maintenant plus de 20 ans sur mon réseau local à l’époque où il était encore largement répandu notamment dans le milieu professionnel et qu’il s’adaptait assez bien à la gestion des mails à l’époque des modems 56k et des adresses mails partagés entre plusieurs utilisateurs. Il existe maintenant bien plus facile à administrer comme postfix mais j’ai choisi d’être le dernier des mohicans et donc je persévère à utiliser sendmail.

Du coup j’ai toiletté mes pages sur le site FUNIX sur la gestion des mails, il s’agit notamment de :

kdenlive 19.12.0 et accélération matérielle

Depuis quelque temps kdenlive me déçoit de plus en plus, je le trouve de plus en plus lent et j’ai perdu les 3/4 des effets qui pouvaient exister par le passé (dont ceux apportés par frei0r). Il devient impossible de monter sans activer les clips intermédiaires, fonction qui permet de dégrader la vidéo lors du montage, mais qui préserve la qualité au rendu de la vidéo finale. Et encore ça reste très lent et laborieux dès qu’on rajoute des effets et transitions un tant soit peu compliqués. Et dire qu’avec les versions 0.9.X c’était parfaitement fluide de monter en HD et on disposait d’un stock considérable d’effets (même si dans la pratique j’en utilisais à peine 10%). Il semblerait que mes problèmes avec kdenlive remontent au passage du moniteur SDL à OpenGL et à la migration de Qt4 (kdenlive <=0.9x) vers Qt5 (kdenlive >=15.x). J’ai constaté un ralentissement général, voire des régressions fonctionnelles et la réapparition de plantage qui avait totalement disparu avec les dernières versions sous Qt4. Il se trouve qu’il existe l’extension movit qui permet de faire bosser un peu plus la GPU et quand je l’activais tout revenait dans l’ordre, je retrouvais la fluidité perdue, sauf que ça plantait toutes les 5min 🙁 .

Il faut croire que tout le monde ne souffre pas du même problème, j’ai pensé à un problème de compatibilité matérielle mais j’ai quand même un i7 avec 16Go de RAM, j’ai également soupçonné ma carte NVIDIA GTX 760 d’être la source de mes ennuis. J’ai même songé à changer de carte. Finalement j’ai exploré la voie de l’accélération matérielle, ça permet de décharger le CPU et la mémoire et de solliciter davantage le GPU et la mémoire de la carte graphique, notamment pour tous les calculs d’encodage et de décodage vidéo. Concrètement, comme à mon habitude en vieux dinosaure que je suis, j’ai récupéré les sources et tout recompilé. J’ai donc activé toutes les fonctions d’accélérations matérielles des différentes bibliothèques sur lesquelles se repose kdenlive. Pour une GPU NVIDIA il s’agit d’activer les bibliothèques et API suivantes :

  • VDPAU (Video Decode and Presentation API for Unix) bibliothèque développée par NVIDIA,
  • NVENC et NVDEC pour l’encodage et le décodage vidéo notamment des codecs H264 et HEVC, ils sont compris dans le package NVIDIA VIDEO CODEC SDK (ex CUVID) et utilisent CUDA (Compute Unified Device Architecture) qui pour simplifier est une boîte à outil de développement pour les GPU également développée par NVIDIA.
  • OpenCL (OpenComputing Language) qui permet de faire des programmes qui vont utiliser à la fois des CPU multi cœurs et la GPU.
  • OpenCV qui sert pour le traitement d’images en temps réel notamment pour faire du tracking d’éléments dans une vidéo.
Continuer la lecture de kdenlive 19.12.0 et accélération matérielle

créer son propre service de messagerie accessible n’importe où et sur n’importe quelle plateforme

Jusqu’à présent j’utilisais les services de messagerie de mon hébergeur, je récupérais mes mails sur son serveur POP et je renvoyais via son serveur SMTP. Localement j’ai mis en place un serveur POP et un serveur SMTP le tout basé sur dovecot et sur sendmail avec toute une batterie anti spam. Utilisant Thunderbird pour la messagerie, tous les mails ensuite se retrouvent dans le répertoire .thunderbird de la home directory de chaque utilisateur de mon réseau personnel. Cette home directory se trouve sur un serveur Dell Poweredge (physiquement qui tourne dans le garage) ce qui permet de pouvoir lancer Thunderbird sur tous les postes de mon réseau local et de profiter des mails. Un script sur le serveur permet de récupérer et d’envoyer toutes les heures les mails respectivement sur le serveur POP et SMTP.

L’inconvénient de tout ça est qu’en déplacement, j’avais accès certes au webmail de mon hébergeur mais pas aux mails présents sur mon réseau local. Qui plus est, je ne pouvais voir les mails qu’entre deux vacations de récupération de mail, c’était plutôt handicapant. Pendant les vacances, quand je n’étais pas là durant une longue durée je coupais le serveur et donc la récupération pour pouvoir voir les mails entrants sur le webmail, mais je n’avais pas accès à mes anciens mails. Bref pas terrible, et je me suis contenté de cette situation pendant trop longtemps avant que je me décide à faire quelque chose, sachant que j’avais d’emblée exclu l’idée d’héberger mes mails dans un cloud quelconque à la main d’un Google ou Microsoft qui n’ont aucun scrupule à consulter les mails personnels pour en tirer une source de profit.

La solution que j’ai mise en place est toujours basée sur le serveur POP et le serveur SMTP de mon hébergeur, sauf que j’ai remplacé le serveur POP par un serveur IMAP local. Le serveur IMAP présente l’avantage de stocker les mails sur le serveur et non pas dans les répertoires d’une home directory d’un utilisateur, permettant ainsi le partage des mails dans la limite de l’accessibilité du serveur IMAP. Et c’est là que les choses intéressantes commencent, sur mon serveur apache local j’ai installé le webmail Roundcube mail, je peux ainsi consulter mes mails localement. Les choses n’ont pas été aussi simples car il a fallu passer d’un format de stockage de mail de type MBOX à un format MAILDIR avec quelques subtilités de configuration pour pouvoir disposer de sous dossier dans l’arborescence des mails. Le détail est donné par ici. Au final on accède à cette élégante interface.

Ce n’est pas fini ! Il faut ensuite sécuriser proprement votre serveur web, ouvrir les routes sur la box et/ou le routeur et mettre les règles shorewall qui vont bien pour que le serveur apache soit visible sur internet, de faire appel à un service de DNS dynamique (comme dyndns ou no-ip) qui fera correspondre automatiquement votre adresse IP fournie par votre fournisseur d’accès à un nom d’hôte. Ensuite à partir d’un bête mobile Android et d’un navigateur quel que soit votre position, vous aurez accès à l’ensemble de vos mails en tout temps et toute circonstance.

J’en profite pour vous signaler que j’en ai profité pour passer mon serveur en apache/httpd 2.4.41, pour franchir le pas vers PHP 7.4.0 et évoluer vers MySQL 8.0.18, ça se passe par ici.