Archives de catégorie : Vie de FUNIX

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.

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.

 

Mise à jour de Funix.org

J’ai procédé à une mise à jour de ma mageia Cauldron qui préfigure la future mageia 6, un peu moins de 1200 packages d’un coup ! Et finalement pas beaucoup de soucis mais des améliorations, j’ai retrouvé mes avatars au login et la session est correctement sauvegardée et restaurée. Il subsiste encore du franglais à droite et à gauche et plus gênant on ne peut toujours pas faire du copier/coller avec la souris avec vi dans un terminal de type konsole.

Du coup j’ai réinstallé par compilation toute ma batterie de logiciels multimedia. Je déplore encore des lenteurs avec kdenlive 16.12 qui n’existaient pas du tout dans la version Qt4. Pour tenter d’y remédier j’ai installé manuellement la dernière version du driver de ma carte vidéo Nvidia GeForce 760, mais ce n’est pas mieux, kdenlive utilise par défaut la CPU et non le GPU (processeur de la carte vidéo).

Tant qu’à faire j’ai mis à jour mon site funix avec les modifications suivantes:

– page outils de base pour la vidéo, présentation du codec audio FDK AAC, passage à x264-snapshot-20161219-2245, movit 1.4.0 et ffmpeg 3.2.2
– page transcodage vidéo, passage à avidemux 2.6.14
– page conteneur vidéo, passage à mkvtoolnix 9.6.0
– page lecteur vidéo, quelques précisions pour l’installation de la version en développement 3.0.0 de vlc
– page montage vidéo, passage à mlt 6.4.1, kdenlive 16.12, LiVES 2.8.2, cinelerra 6 et blender 2.78a
– page outils multimedia pour mediacenter, passage à audacious 3.8.1

L’évolution de movit pour utiliser la puissance du GPU avec kdenlive ne donne rien, ça continue à planter avec ma nvidia. cinelerra a évolué, mais à part l’intégration du codec H264, je ne vois pas beaucoup d’autres évolutions, en tout cas la compilation est toujours aussi délicate.

Windows 7 Pro sous linux dans un espace virtualisé avec VirtualBox

Je croule sous les PC à la maison, 8 au total (voir mes différentes config par ) ! Je me suis décidé à en réduire le nombre. Certains ont une double partition avec windows mais ce n’est quand même pas très pratique de basculer de windows à linux ou vice-versa. Je me suis remis à la page en virtualisant windows sous linux, ça me permet ainsi de pouvoir regrouper les applications qu’elles tournent sous windows ou linux sur les mêmes postes. La virtualisation consiste à pouvoir lancer un système d’exploitation encapsulé dans un autre système d’exploitation support.

j’ai installé la dernière version de VirtualBox sur ma mageia 6 cauldron à partir des sources, ça s’installe relativement facilement et ça se configure tout aussi facilement. Il faut bien sûr disposer d’un DVD d’installation de windows avec sa licence, étant allergique aux dernières versions à brique, je suis resté à windows 7. Aussi incroyable que ça puisse paraître on arrive donc à installer windows dans une fenêtre. Puis à le lancer de manière tout à fait naturel dans une session linux.

Ça nécessite bien sûr un peu de puissance, mais quand on n’est pas un joueur, ça le fait sans soucis.