Archives de catégorie : Vie de mes sites

Baliser (taguer) automatiquement ses fichiers MP3

Il y a quelques temps dans un précédent post j’avais présenté MusicBrainz Picard qui permet de taguer proprement des fichiers audio MP3. Cela consiste à marquer correctement dans le fichier les informations sur l’artiste, le titre, l’album et même rajouter une photo de l’album. Ce type d’information standardisé apparaît ensuite sur le lecteur audio quel qu’il soit. En anglais on parle de TAG et en français de balise, même si on a tendance plutôt à utiliser le terme anglais quitte à employer le barbarisme taguer plutôt que baliser.

Mais revenons à notre sujet, les fichiers MP3 peuvent avoir différentes origines et ne sont pas donc balisés toujours proprement. D’où l’intérêt d’un outil comme Picard qui permet de traiter des lots de fichiers musicaux.

Il les traite de deux manières, tout d’abord pour chaque fichier à partir de ses balises d’origine, il va identifier dans sa base de donnée  une piste d’album et libre à nous ensuite de mettre à jour les balises et d’y rajouter la photo de l’album. La deuxième méthode consiste à calculer l’empreinte musicale du fichier (acoustid fingerprint) et trouver une empreinte similaire dans la base de picard et rattacher ainsi le fichier d’origine avec la piste de l’album qui correspond à l’empreinte.

Pour les fichiers qui n’ont pas été trouvés par une des deux méthodes précédentes, il reste à les rechercher directement sur le site. Il existe ainsi une interaction entre le navigateur et Picard qui permet d’identifier et de baliser les fichiers. Dans Picard on sélectionne le fichier non trouvé, ça nous renvoie automatiquement sur la page du navigateur avec une liste de pistes similaires, on choisit notre piste, on clique sur TAGGER dans le navigateur et le tour est joué !

Il peut exister des faux positifs ou des fichiers rattachés à des compilations généralistes qu’on préfèrerait rattachés aux albums de l’artiste. On peut également les traiter de manière indépendante et rechercher des pistes similaires et trouver son bonheur.

Il m’a semblé utile de créer une page correspondant sur mon site Funix avec moult détails et copies d’écran. Comme la page sur les outils multimedia commençait à devenir un peu trop conséquente, je l’ai scindée en deux, on trouvera donc une page sur les outils audio divers (lecteurs audio, outils karaoke et baliseur Picard) et une autre page consacrée au mediacenter Kodi.

Passer en connexion chiffrée avec OpenLDAP et un serveur web Apache

Après être passé en connexion chiffrée avec SSL/TLS sur mon serveur perso dovecot de distribution de mail, ainsi que sur mon serveur sendmail de récupération et d’envoi de mail, il me restait à m’occuper de mon serveur d’authentification basé sur OpenLDAP et de mon serveur web Apache local.

C’est chose faite à présent. Pour OpenLDAP ça se fait en deux étapes, il faut d’abord créer un certificat pour le serveur et activer les connexions chiffrées (voir par ). Ensuite pour l’authentification utilisateur, il faudra sur les clients modifier la configuration du serveur nslcd pour forcer la connexion chiffrée (voir par ici). Pour le serveur web Apache, il faut également créer un certificat et modifier la configuration d’Apache pour activer la possibilité de se connecter via SSL/TLS, à voir par .

Inconvénient de la méthode, en théorie un certificat doit être certifié par une autorité qualifiée de certification (en anglais CA pour Certificate Authority en anglais). Le CA est un tiers de confiance qui d’authentifier l’identité des correspondants, ça évite ainsi de tomber  dans un chausse trappe et de protéger l’échange de ses données. Or c’est une démarche qui n’est pas gratuite, de fait en créant dans son coin son infrastructure à clés publiques (Public Key Infrastructure PKI en anglais) et en générant un certificat,  en l’auto signant, il ne vaut pas grand chose sur internet et il faudra l’accepter ensuite comme une exception de sécurité.

Ça peut le faire sur un réseau privé car on maîtrise ce que l’on fait, mais c’est plus gênant si le service concerné est accessible d’internet. Il existe néanmoins des autorités qui délivrent gratuitement des services, pour un serveur web il existe Let’s Encrypt. La création du certificat se fait de manière simple en lançant un script dans un shell. Let’s encrypt ne gère pour l’instant que les certificats de serveur web. Sinon il existe selso.com et startssl.com. Pour le premier, je suis un peu dubitatif, le site a l’air vieillot, limite abandonné et quand on va sur une page sécurisée, le certificat n’est plus valide et il faut accepter une exception de sécurité ! Ça fait pas très sérieux, le deuxième a l’air plus convainquant.

Photothèque

Je signale la présence sur ce blog d’une photothèque (dans le menu en haut à droite). On y trouve un peu de tout, ce sont des photos que j’ai pu prendre ici et ailleurs lors de voyages, déplacements d’agréments ou professionnels. Depuis quelques années j’utilise un Nikon Coolpix p510, certes ce n’est pas un reflex mais c’est un bridge suffisamment performant pour des photos correctes. Niveau traitement photo, je me contente sous gimp (évidemment) de jouer au cas par cas avec la balance des blancs et/ou la luminosité/contraste. Au final, je vous laisse juger par vous même de leur qualité. A noter qu’à partir du menu contextuel (accessible à partir du bouton droit de la souris) vous pouvez afficher les photos en plein définition.

Pour vous donner l’envie de parcourir la photothèque, en voici un petit échantillon commenté dans leur contexte.

J’ai pris cette photo au Maroc dans le souk de la ville de Fes devant l’étale du boucher, on remarquera bien entendu la tête de dromadaire qui était tout sauf factice ! Je ne sais pas si  ça contribue à attirer le client en tout ça a attiré mon objectif (et les mouches…).

Un caméléon sur l’île de la  Réunion appelé localement endormi, un animal plutôt commun, mais toujours difficile à repérer. A propos de la Réunion, pour les randonneurs je signale par ici la présence de pages qui décrivent quelques randonnées incontournables (dont les ascensions du piton des neiges et du volcan du piton de la fournaise).

Le geyser de Strokkur en Islande qui se situe juste à côté du geyser de Geysir qui a donné son nom à ce phénomène physique impressionnant. Ce dernier est plus moins inactif maintenant alors que celui de Strokkur est le plus actif d’Islande, il jaillit toutes les 10min à peu près. Le bonhomme sur la photo donne une idée de sa hauteur, ce jour là il n’y avait pas de vent, par contre les jours avec vent (le plus souvent !), il faut se situer du bon côté pour pas se retrouver trempé jusqu’aux os ! En plus de cela l’eau est bouillante !

En plus des voyages, pour les amateurs de belle mécanique volante, j’ai une série de photos de warbirds et d’appareils plus récents dans le coin du spotter. Ici le Douglas AD-4NA Skyraider immatriculé F-AZDQ sur la piste de l’aéroport militaire de l’ALAT au Cannet des Maures dans le centre Var.

De l’autre côté de l’Atlantique, un Grumman F14 Tomcat à côté d’un Vought F8 Crusader sur le pont du porte avions USS CV10 Yorktown face à Charleston devenu musée flottant. Le Yorktown qui a participé à la seconde guerre mondiale est le deuxième du nom, le premier du nom, le CV5 Yorktown a été coulé pendant la bataille de Midway. Sur la photo on distingue sur l’îlot le fort Sumter, c’est exactement à cet endroit que les premiers coups de canon de la guerre de sécession ont été tirés en avril 1861.

Plus prés de nous, la France métropolitaine n’est pas en reste. Lors des fêtes maritimes de Brest 2016, le Nao Victoria devant le phare de la pointe Saint Mathieu à l’orée du goulet de Brest. Ce bateau est une reconstitution de celui de Magellan qui a réalisé le premier tour du monde (à la voile forcément) de 1518 à 1522. Dans le lointain, on peut apercevoir l’ile de Béniguet avec ses plages de sable blanc.

Nous ne sommes pas en Afrique, mais bien en France dans son plus grand zoo, le zooparc de Beauval où ces rhinocéros piquent un roupillon.

Ce magnifique piano de cuisson, qui donne vraiment envie de cuisiner, se trouve dans les cuisines du château de Chenonceau.

La suite par !

Problème d’accent suite passage à PHP5.6

En cours de toilettage de mon site FUNIX, j’ai supprimé la section réseau qui était vraiment très obsolète et je n’ai vraiment plus le temps de la mettre à jour et de la maintenir, elle est encore accessible néanmoins via la carte du site. J’ai toiletté également ma section UNIX qui elle est encore pleinement d’actualité, il faut dire que globalement l’administration d’un système a assez peu évolué en plusieurs décennies, on retrouve les mêmes commandes. C’est surtout la partie environnement graphique qui a le plus évolué.

J’ai souhaité rajouter le flux RSS de mon blog sur la page d’accueil. On trouve sur le net du code PHP à intégrer dans le code HTML de la page. Cela donne cela :

<?php
                try{
                if(!@$fluxrss=simplexml_load_file('http://olivier.hoarau.org/?feed=rss2')){ throw new Exception('Flux introuvable');}

                if(empty($fluxrss->channel->title) && empty($fluxrss->channel->description) &&empty($fluxrss->channel->item->title)) throw new Exception('Flux invalide');

                $i=0;
                $nb_affichage = 4;

                
                foreach($fluxrss->channel->item as $item){
			echo '<a href="'.(string)$item->link.'">'.(string)$item->title.'</a></br>'.(string)$item->description.'</br><i>publié le'.(string)date('d/m/Y',strtotime($item->pubDate)).'</i></br></br>';

                if(++$i>=$nb_affichage)
                break;
                }

                }
			
                catch(Exception $e){
                echo $e->getMessage();
                }
           ?>
           </div>

Or mon site FUNIX hébergé en mutualisé chez online.net tourne encore en PHP4 qui ne reconnait pas la commande simplexml_load_file. Heureusement, via la commande d’administration on peut le faire évoluer vers les versions 5.5, 5.6 et même 7. Pour éviter une marche trop haute, j’ai choisi de migrer vers la version 5.6 et là catastrophe, tous les accents étaient en vrac. Toutes les solutions trouvées sur internet pour forcer le jeu de caractères par défaut (charset) de UTF-8 vers celui utilisé par mes pages, à savoir le ISO-8859-1, n’ont pas fonctionné. J’étais donc quitte pour modifier une à une toutes mes pages !

Fort heureusement, et c’est bien un des gros atouts d’une système UNIX, il existe les scripts bash, il m’a fallu à peine quelques minutes pour régler le problème. Tout d’abord j’ai appliqué sur mes pages le script suivant qui permet de convertir les caractères du jeu de caractère ISO-8859-1 vers UTF-8 :

#!/bin/bash
find . -name "*.php" -o -name "*.htm*" -exec sh -c "( \
   iconv -f ISO_8859-1 -t UTF-8 {} -o {}.iconv ; \
   mv {}.iconv {} ; \
)" \;

Ensuite il a fallu modifier l’indication de charset dans les pages html et php avec le script suivant :

#!/bin/bash
for file in *.htm*
do
  echo "Traitement de $file ..."
  sed -i -e "s/ISO-8859-1/UTF-8/g" "$file"
  sed -i -e "s/iso-8859-1/UTF-8/g" "$file"
done
for file in *.php
do
  echo "Traitement de $file ..."
  sed -i -e "s/ISO-8859-1/UTF-8/g" "$file"
  sed -i -e "s/ISO-8859-1/UTF-8/g" "$file"
done

Et le tour est joué.

Shoot’em up Warsow et Unvanquished

Même si je ne suis pas un amateur du genre, j’ai installé la dernière version de Warsow. C’est un lointain descendant du jeu Doom qui a été longtemps une référence dans le domaine des Shoot’em up, c’es le genre de jeu où on tire sur tout ce qui bouge dans une sorte de labyrinthe peuplé de créatures infâmes et de guerriers qui veulent vous faire la peau. Je l’avais installé il y a de cela pas mal d’années, et quel progrès ! C’est vraiment super abouti, avec des beaux graphismes, des belles textures, une grande fluidité et toujours cette possibilité de jouer en réseau en duel ou par équipe.

Bien sûr quand on débute, on a du mal à trouver ses repères et on se fait dézinguer très rapidement, d’autant que cela va très, très vite, on voit vraiment que certains doivent y passer des heures. Malgré cela j’ai réussi à en zigouiller un, il était peut être de ma propre équipe !

Pour aller plus loin, c’est par ici.

Dans le même genre, il existait Tremulous qui est visiblement un projet mort mais il existe maintenant Unvanquished qui en est un fork. C’est le même principe, mais cette fois-ci on est également des aliens, on peut même faire partie de l’équipe des aliens ! Voilà ce que ça donne :

là je suis en très mauvaise posture

pour aller plus loin, c’est par .

Lutter contre le spam referrer avec awstats

J’exploite les logs de mes domaines hoarau.org et funix.org hébergés avec online (hébergement mutualisé) avec awstats. Toutes les nuits, cron récupère les fichiers log d’Apache sur un serveur ftp et je lance l’analyse avec webalizer et awstats comme expliqué par .

La page des referrers est polluée par des SPAM qui la rend inexploitable et c’est assez pénible. En fait c’est une technique des spammeurs qui font des requêtes pour que le site à promouvoir apparaisse dans la liste et ainsi cela améliore son positionnement sur les moteurs de recherche en multipliant les liens. Encore faudrait-il que cette page soit visible sur internet, ils peuvent également espérer qu’un administrateur clique sur un lien.

Il y a plusieurs techniques pour lutter contre ça, l’une d’entre elles est de leur bloquer l’accès au site avec un bon vieux .htaccess à la racine. Ce n’est pas forcément l’idéal car ça engendre un temps de traitement et ça peut ralentir l’accès au site. J’opte plutôt pour la technique en temps différé pour faire le ménage avec awstats. Pour cela il faut activer la variable suivante

SkipReferrersBlackList= »/etc/awstats/blacklist.txt »

avec un fichier blacklist.txt qu’on trouvera dans l’arborescence d’awstats mais qui date un peu. Alors  par ici on trouvera une blacklist nettement plus récente. Dans ce fichier, d’après mes tests il semblerait que la première partie qui commence par des RewriteCond ne serve à rien pour awstats, elle n’est utile que si vous filtrez le SPAM referrer avec un .htaccess. Ce n’est que la seconde partie qui est réellement utile et qui fonctionne avec awstats,

Continuer la lecture de Lutter contre le spam referrer avec awstats

Connexion chiffrée avec un serveur de mail sur internet

Dans le post précédent on a vu comment chiffrer la liaison entre le serveur de mail local et les postes clients du réseau local, avec dovecot pour la récupération des mails et sendmail pour l’envoi de mail. Mais qu’en est-il de l’envoi ensuite vers internet en émission avec SMTP et en réception avec POP ?

Commençons par la réception, il faut d’abord bien sûr que votre fournisseur de service mail dispose d’un serveur POP avec option de chiffrement TLS/SSL. Jusqu’à présent j’utilisais fetchmail qui tourne sur le serveur de mail local, récupère les mails de tous les utilisateurs du réseau local sur internet et en assure la distribution dans les boîtes mail sous /var/spool/mail avec sendmail. Sauf qu’il semblerait que fetchmail ne sache pas gérer le chiffrement TLS/SSL avec comme MDA (mail delivery agent) sendmail. Du coup j’ai remplacé sendmail comme MDA par procmail et au final la commande fetchmail devient:

/usr/bin/fetchmail --sslcertck -a -f /root/.fetchmailrc -L /var/log/fetchmail.log

avec un fichier .fetchmailrc qui ressemble à ça (pour ne pas faire de pub, je suis chez online)

poll pop.online.net protocol pop3
 user olivier.hoarau@funix.org there with password password-fai is olivier here
 option ssl;
 mda "mda "/usr/bin/procmail -d %T"

Passons maintenant à l’émission avec SMTP, là encore il faut que le fournisseur d’accès dispose d’un serveur SMTP sécurisé avec TLS/SSL. J’ai passé des heures à jouer avec la configuration de sendmail pour mettre en place le chiffrement de la connexion jusqu’à  que je me rende compte que la connexion était déjà chiffrée par défaut ! Et pour s’en convaincre il a suffit de lancer sendmail en mode verbeux pour voir les échanges entre mon serveur et le serveur de mon fournisseur d’accès:

sendmail -q -v

voilà le résultat

Continuer la lecture de Connexion chiffrée avec un serveur de mail sur internet

Client mail léger pour connexion sécurisée à distance

Toujours dans l’optique d’une connexion itinérante que j’évoquais dans ce post,  je configure actuellement mon serveur (nommé mana sur mon réseau) et mon portable Thinkpad x220 à cette fin. L’idée est que je puisse recevoir et envoyer mon mail en passant par mon serveur de mail sendmail qui est gréé pour pouvoir gérer les spams et autres virus via SpamAssassin et ClamAV. En attendant de réfléchir  à la mise en place d’un tunnel sécurisé entre le serveur et mon portable via le net, je suis passé à une connexion sécurisée sur la base de SSL/TLS entre les machines clientes de mon réseau et mon serveur pour l’envoi de mail. Jusqu’à présent les échanges de connexion et les mails transitaient en clair sur mon réseau perso sur le port classique 587 du serveur SMTP sendmail. Je suis passé à SMTP avec SSL/TLS et le port 465. A voir par ici cela passe par la création d’un certificat pour le serveur de mail. Alors bien sûr ce certificat n’est strictement valable que sur mon réseau perso et n’est pas valide sur internet, mais ça n’a pas d’importance pour mon usage.

Comme client de messagerie léger, j’ai pensé évidemment à mutt. Mutt est fait pour les geeks, il n’y a pas d’interface graphique et tout se passe en ligne de commande dans un shell, il n’est même pas nécessaire d’avoir un environnement graphique !

Continuer la lecture de Client mail léger pour connexion sécurisée à distance

Sécuriser un poste linux et monitorer un réseau

J’ai passé du temps ces derniers jours à mettre à jour mes pages sur la sécurité informatique autour de linux sur mon site Funix, il était temps, certaines n’avaient pas évolué depuis 8 ans !

La sécurité sous linux et plus généralement sur un réseau peut être vue sous différents angles:

  • tout d’abord la protection du poste en lui même en laissant tourner que le strict nécessaire, en privilégiant les services sécurisés et en installant un firewall, Tout cela est décrit dans cette page.
  • ensuite on peut installer un gestionnaire d’évènements de sécurité comme Prelude, qui va agréger tous les signaux et évènements du système et déclencher des alertes de sécurité, libre ensuite à l’administrateur de déclencher les actions qui vont bien. Ce système connu sous le terme de SIEM (Security Event Information Management) repose sur plusieurs sondes qui peuvent être implantées sur l’ensemble des postes du réseau et éléments actifs compatibles. A découvrir sur cette page. Concernant les sondes, certaines vont analyser les fichiers de logs, d’autres vont « écouter » le réseau en temps réel et détecter les tentatives intrusions, on parle également de NIDS (network Intrusion Detection System) comme snort ou suricata qu’on peut découvrir sur cette autre page.
  • pour sécuriser son réseau/poste encore faudrait-il connaître ses vulnérabilités, rien de plus simple ! Il existe des scanners de vulnérabilités, ils se basent sur des bases de données de vulnérabilités régulièrement mises à jour pour scruter les postes et faire leur reporting. A voir par avec des outils comme OpenVAS et nmap. Ces outils ont un but défensif et il est malheureux qu’ils puissent être également utilisés à des fins malveillantes et offensives.
  • la protection des données est un pan important de la sécurité, notamment lors des échanges sur internet. On peut donc chiffrer ses données et mail avec GnuPG et faire des connexions sécurisées via OpenSSH qui offre également un service de transfert de fichier sécurisé sFTP qui remplace avantageusement FTP.
  • même si sous linux on est beaucoup moins vigilant pour les virus qui envahissent le monde windows, il en reste pas moins qu’il en existe ! La séparation des privilèges de base sur un système linux avec les précautions évoquées ici pourront contenir le risque, néanmoins il n’est pas inutile d’installer un antivirus comme ClamAV.

Et pour terminer une copie d’écran du scanner de vulnérabilités OpenVAS qui est un fork libre de nessus.

Skype et autres bafouilles sous linux

Depuis quelque temps j’avais perdu le son sous Skype bien que disposant de la dernière version pour linux, la 4.0.37 qu’on peut récupérer par ici. En fait curieusement le binaire est toujours en version 32 bits, comme le confirme la commande file skype qui donne:

/usr/local/linux/systeme/skype-4.3.0.37/skype: ELF 32-bit LSB shared object, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.18, BuildID[sha1]=6eef9a3f7c9719980b6e317a00ea971d3717ac89, stripped

pour que le son revienne sur une configuration 64 bits il faudra simplement installer la version 32 bits du serveur de son pulseaudio (libpulseaudio0 pour une distribution Mageia). Et là magique Skype est pleinement fonctionnel (au problème de réseau près indépendant de linux).

Tant qu’à faire, je profite d’un peu de temps pour régler des problèmes qui perduraient depuis des mois sur mon serveur perso Dell PowerEdge T310. Premier problème, le serveur d’authentification de mon réseau perso basé sur un annuaire LDAP tournant avec OpenLDAP était extrêmement bavard et me générait continuellement dans les logs ce type d’erreur :

déc. 23 19:25:06 mana.kervao.fr slapd[12893]: <= bdb_equality_candidates: (uidNumber) not indexed
déc. 23 19:25:07 mana.kervao.fr slapd[12893]: <= bdb_equality_candidates: (uidNumber) not indexed
déc. 23 19:25:07 mana.kervao.fr slapd[12893]: <= bdb_equality_candidates: (uidNumber) not indexed

j’ai vu que c’était un problème connu et largement commenté sur le net, pourtant la solution proposée ne collait pas à ma configuration.  Pour le problème de mode verbeux, il faut reprendre le fichier de configuration du daemon slapd slapd.conf et rajouter simplement

loglevel none

pour l’autre problème, toujours dans le même fichier à la suite de

# Indices to maintain
index   objectClass     eq

on va déclarer d’autres index pour la base de données LDAP

index  uid              pres,sub,eq
index member            eq
index  uidNumber        eq
index  gidNumber        eq
index  memberUid        eqhttp://www.funix.org/fr/linux/index.php?ref=ldap2

on relance le serveur et le tour est joué !

Autre problème, cette fois-ci avec le serveur de mail sendmail ou plutôt avec le plugin qui gère l’interface avec SpamAssassin qui filtre les spams comme son nom l’indique. Toujours dans les logs, SpamAssassin Milter (mail filter) plugin me génère cette erreur :

spamass-milter[2246]: Could not retrieve sendmail macro « i »!.  Please add it to confMILTER_MACROS_ENVFROM for better spamassassin results

Dans le fichier config.mc de sendmail j’ai rajouté un petit i sur cette ligne

define(`confMILTER_MACROS_ENVFROM’,`i, {auth_authen}, {auth_type}’)dnl

on génère un nouveau fichier de configuration de sendmail et dans ce fichier on rajoute

O Milter.macros.envfrom=i
O Milter.macros.envfrom=i, {auth_authen}, {auth_type}

on relance sendmail et c’est terminé ! Ouf, je vais pouvoir dormir plus sereinement…

Pour plus d’infos, voir ma page sur l’authentification utilisateur basé sur un serveur LDAP et celle sur le filtrage de mail.