Planète auto-hébergement

2015-05-20

Aidez-vous, aidez Grammalecte




Personne n’évite les fautes, ou alors elles sont rares, très rares et nombreux sont ceux qui, comme moi, sont capables de repérer une coquille chez les autres mais pas dans ses propres textes. Phipe peut témoigner, il passe régulièrement ici pour me relire et m'envoyer des messages privés sur diaspote pour que je me corrige.

Bref, les fautes, les erreurs, les coquilles, l'ignorance, c'est pour tout le monde. Du coup, quand on voit qu'un libriste se motive pour nous pondre une extension Firefox et Thunderbird pour nous aider, on ne peut que l'encourager.

Vous l'avez compris, c'est donc ce matin que j'ai décidé de filer 5 malheureux euros pour aider Grammalecte à émerger.

Le projet est tout proche de son objectif des 15 000 euros. Il reste 10 jours pour trouver les 3 000 dernières pièces qui manquent. Ce genre d'outil étant exceptionnellement utile, foncez les aider à votre tour.

Pour les utilisateurs de cette saloperie de Google Chrome/Chromium, va falloir vous motiver puisqu'il attendra les 25 000 euros avant de vous supporter. Oui, c'est méchant.


<noscript></noscript>

2015-05-16

[Film] Ex Machina


Parler cinéma, c'est un truc que je ne fais pas souvent, la faute à la ligne éditoriale de ce blog : du libre, de l'open-source et tout ce qui peut s'y rattacher. Mais bon, j'ai souvent envie de parler d'autre chose, alors voilà : Ex Machina !



Ce film nous parle d'intelligence artificielle, d'humain, de sentiments. Il est vraiment troublant. L'histoire tourne autour d'un milliardaire propriétaire d'un moteur de recherche qu'il utilise pour créer une IA incroyable et un de ses employés chargé de lui faire passer le test de Turing.

Pas de spoil ici, je vous encourage simplement à le regarder ! Pensez à faire le rapprochement avec Google et ses nombreux rachats dans le domaine de la robotique, ça donne le vertige.


<noscript></noscript>

2015-05-13

ownCloud Mail débarque dans l'appstore en version 0.1.3




J'en parlais en septembre 2014 comme d'une application qui allait faire du bien : ownCloud ne souffrait plus que de l'absence d'un client courriel pour devenir une boite à outils géniale. C'est maintenant bon !

Comme je le dis dans ce titre à rallonge, c'est encore une version en développement. Rien n'est garanti dans tout les types d'utilisation mais, chez moi, ça tourne très bien avec mon malheureux compte "pro" gmail et mon adresse personnelle en dadall.info. C'est un peu lent, mais ça doit venir de mon serveur.

Sinon, je me retrouve avec une interface agréable, la possibilité de lire mes mails partout et des notifications quand un petit nouveau débarque. De plus, il s’intègre tout seul dans mon Firefox en se proposant d'envoyer un mail quand je clique sur une adresse.



Si vous voulez tester la bête, vous pouvez la télécharger ici et suivre le guide d'installation rapide ici. Ne négligez pas l'installation sous peine de ne pas comprendre pourquoi vous avez un écran tout blanc !

Cette sortie se glisse bien dans l'air du temps : vous avez votre cloud et des applications pour le gérer comme un grand. En plus, c'est une défi technique agréable à relever ;-)


<noscript></noscript>

2015-05-10

Astuces du dimanche #4


Quatrième version des astuces du dimanche ! Je dois avouer que j'aime bien cette formule simple et rapide pour partager des astuces peu révolutionnaires mais qu'il fait bon rappeler de temps en temps.

Au programme de cette semaine : partager des fichiers en réseau sans se prendre la tête et comment créer une archive de sauvegarde (pour un backup, par exemple) et vous l'envoyer alors que vous n'avez pas de place sur le disque dur.

Partager ses fichiers via python

Sans clés USB ou système de partage en réseau, il est bien difficile de partager un fichier avec le PC du voisin. La solution suivante permet de se servir de python pour créer un serveur web simple. Il sera accessible depuis votre adresse IP et le port spécifié.

  • Avec python 2.7 ou plus
# python -m SimpleHTTPServer 80
  • Avec python 3 ou plus
# python -m http.server 80
Lancez l'une de ces commandes depuis un terminal ouvert là où se trouve le ficher à transférer, donnez votre IP et le port à votre pote/collègue et le tour est joué. Attention tout de même à ne pas lancer cette commande depuis votre /home/ sous peine de partager l’intégralité de votre vie privée ;-)

Création et envoie d'archive par le réseau

C'est un truc que je rencontre souvent au boulot : faut faire un gros tar.gz de sauvegarde et le placer bien au chaud sur une autre machine mais pas moyen d'y arriver avec l'espace disque disponible.
Pas de panique, la commande tar associée à ssh, à un pipe et cat permette de faire des miracles.

ssh -n ServeurDistant -p PORT 'tar zcvf - toto.txt' | cat - > toto.tar.gz

Avec ça, depuis votre terminal, vous récupérez le contenu de toto.txt, que vous archivez simplement sur votre disque dur local. Celui du serveur distant n'est plus utilisé : terminé le problème de place !

Bon dimanche ! :)


<noscript></noscript>

2015-05-09

Notes de service - Modération et diaspote


La première note de service touche ce blog. Je dois malheureusement mettre en place une modération des commentaires. Trop de spam me pourrissent la vie. J’espère que ça sera temporaire.

La deuxième note de service est une indisponibilité malheureuse de diaspote pendant un peu moins de 24h suite à une mise à jour foireuse. On reste à la pointe de la nouveauté avec ce que cela entraine de petits problèmes ! :)
La remise en service a pris un peu de temps mais tout refonctionne maintenant. Notez qu'une mauvaise manipulation de ma part a entrainé une perte de fichiers images. Je suis tout désolé. Maintenant je sais qu'il ne faut pas utiliser la commande git clean sans réfléchir.

Voilà pour ce billet rapide. Bon weekend ! :)


<noscript></noscript>

2015-05-06

Joyeux International day Against DRM




Aujourd'hui, c’est la journée contre les DRM. Qui en parle ? Peu de gens.

Les débats tournent, fort heureusement, plus autour du projet de loi sur le renseignement, que je condamne comme tous mes pairs blogueurs et techniciens.

Mais les DRM ?

On voit que Mozilla doit se plier aux règles pour incorporer à contrecœur les DRM dans Firefox.

On voit que le passage tant attendu au HTML5 en remplacement du flash se fait beaucoup via Google Chrome aux dépens de Firefox.

On voit que de belles applications de Firefox OS se trouvent retardées pour cause d’intégration de DRM, pour Netflix.

Les DRM s'installent dans notre paysage et on n'en parle plus. Aujourd'hui, c'est la journée internationale contre les DRM. Un écho quelque part ? Non, pas vraiment. On va se faire avoir, les amis, on va se faire avoir. Ils avancent doucement mais sûrement pendant qu'on se voit obliger de s’écarteler pour lutter contre toutes les autres cochonneries qui pointent le bout de leur nez.

Je dois avouer que ça me déprime.


<noscript></noscript>

2015-05-05

Une dernière vidéo avant de voir nos députés tuer une partie de nos libertés


<iframe allowfullscreen="" frameborder="0" height="540" src="https://www.dadall.info/www.dailymotion.com/embed/video/x2p398w" width="960"></iframe>
6 heures contre la surveillance : Combattre... par Mediapart

Cette vidéo regroupe les propos Benjamin Bayart, Pouria Amirshahi, Isabelle Attard et Clémence Bectarte. Elle est tirée des 6h de direct organisés hier soir par Mediapart. Vous retrouverez toutes les vidéos ici.

Bon visionnage, on se reparle après le vote prévu dans les environs de 16h / 17h30.


<noscript></noscript>

2015-05-04

diaspora* : le réseau social libre et décentralisé passe en 0.5





Enfin une nouvelle version stable à se mettre sous la main ! Diaspora* passe donc en 0.5.0.0.

Petit rappel pour les retardataires : diaspora* est un réseau social qui n'est pas détenu ou contrôlé par une entreprise.

La bienséance et les propos emmerdants n'y figurent pas en bonne place. On y trouve des gens engagés, ou pas, dont les idées sont souvent enrichissantes. Rassurez-vous, on y trouve aussi des photos de chats. Dans les choses vraiment bien, diaspora* vous certifie que les propos ne sont pas triés ou organisés de façon à mieux coller à vos envies du moment. Ça peut paraître un peu brutal dit comme ça, mais quand on sait que Twitter, Facebook & co s'amusent à penser à votre place, savoir qu'un réseau social existe sans vous infliger ça, c'est agréable.
Pour finir, je dirais que le réseau est entretenu par des bénévoles qui ne gagnent pas le moindre kopeck en vous offrant leurs portes d’entrées. Pas de profilage qu'on pourrait revendre. Mieux mais un peu plus compliqué, vous pouvez installer votre propre pod et partager avec nous depuis votre chez vous.

Et cette nouvelle version alors ?! Comme partout, on retrouve des mises à jour : Ruby 1.9 n'est plus supporté, la 2.0 l'est toujours et la 2.1 l'est maintenant. 

Dans les nouveautés, on notera l’arrivée d'un système de détection des comptes abandonnés pour soulager le travail des podmins, l’intégration de Camo pour proxifier tout ce qui serait appelé depuis l’extérieur du pod, et qui vous traque donc, et le fameux chat, qui reste malheureusement expérimental.

Je passe sur la longue liste de bogues corrigés et la toute aussi longue liste des petites améliorations qui se cachent un peu partout. Vous pouvez passer par l'annonce officielle pour tout découvrir ou par le blog de Fla.

Les pods vont maintenant se mettre à jour tout doucement. Courage aux podmins qui gèrent des serveurs noyés d'utilisateurs, je bois du café à votre santé !

Si l'envie de tester diaspora* vous submerge, vous pouvez librement vous inscrire sur Framasphere, le pod de l'association Framasoft, venir faire un tour sur Diaspote, le pod que je gère avec l'ami Augier, ou choisir celui qui conviendra le mieux par ici.


<noscript></noscript>

2015-05-02

Don du mois : grammalecte

Ce post s'inscrit dans la série des dons pour vous donner envie de contribuer même très modestement à des logiciels libres. Les petites pierres font les grands édifices (ex de pratiques similaires : 1, 2).

Ce mois-ci, j'ai choisi de donner à grammalecte, une campagne de financement pour un correcteur grammatical. Le montant de ce don est de 5€. Les raisons de ce soutien :

  • développement d'un logiciel libre (comme spécifié ici.
  • utilité grand public évidente
  • fonction serveur qui offira la possibilité d'interfacer avec n'importe quel logiciel et language (latex, markdown...).
  • greffons firefox et thunderbird qui rendront la solution populaire (donc retour d'expérience, donc amélioration à long terme)

Pour donner à grammalecte.

2015-05-01

L’art de se compliquer la vie ?

Je passe mon temps à me compliquer la vie lorsque je touche à un ordinateur, et à plus forte raison lorsque je l’administre. A y regarder de près, ce n’est pas forcement faux, en apparence du moins. Je pense en fait que ce n’est qu’une question de point de vue et que tout le monde ne place pas le curseur au même endroit. Il m’a donc semblé intéressant de regarder ça plus en détail.

Une histoire de curseur

Qui dit curseur dit compromis entre, au moins, deux paramètres :

  • Le premier est la simplicité d’usage et le côté accueillant de la chose (user friendly comme on dit quand on est hype).
  • Le second paramètre est lié à la maîtrise et, par extension, au degré de confiance que l’on a envers l’outil.

De mon point de vue, lorsqu’on utilise un outil qui nous facilite grandement la vie, il se produit deux choses :

  • D’une part, on transfert la complexité d’une tâche avec peu de valeur ajoutée à un outil.
  • D’autre part, on mobilise son énergie à faire autre chose.

Mobiliser ses capacités à faire des choses intéressantes ou vraiment créatives, c’est cool. La contre partie, c’est qu’il faut se poser quelques questions basiques avant de transférer un tâche quelle qu’elle soit. En fait, la question la plus intéressante consiste à savoir quel est le contrôle que l’on a sur ce nouvel outil. Ce que l’on néglige souvent, c’est que celui contrôle l’outil peut plus facilement contrôler les données traitées par cet outil. Alors, quand on contrôle soit même l’outil, pas de problème, mais quand c’est un autre que vous, c’est sensiblement plus compliqué…

L’innovation

Le cloud, lorsqu’il est géré par un tiers (c’est donc ce détail qui a de l’importance ici), est l’exemple typique où l’on est amené à échanger un peu du contrôle que l’on a de nos données contre un peu de confort. Oui, c’est pratique de pouvoir travailler sur un document depuis n’importe quelle machine, simplement en se connectant à un service avec son navigateur web. Toutefois, ce document n’est alors plus sous votre contrôle et vous ne pouvez rien faire si d’aventure, votre fournisseur de service cloud décidait d’apprécier votre prose. Dans l’absolu, vous n’avez même pas le moyen de savoir quels traitements sont appliqués à vos documents. Finalement, ce ne sont peut être déjà plus tout à fait vos documents (j’exagère à peine).

Le cloud n’est qu’un exemple parmi d’autres mais c’est le plus parlant. J’aurais tout aussi bien pu parler de voitures sans pilotes, de télévisions connectées, de services centralisés sur internet… L’innovation aujourd’hui, au moins dans le numérique, semble se focaliser uniquement sur les moyens de nous simplifier la vie, et par ricocher, nous amène à déléguer à des tiers la gestion de choses anodines en apparence mais potentiellement importantes dans le fond. L’utilisateur moyen n’aurait pas d’autre but que de se décharger des basses besognes à n’importe quel prix, afin de mobiliser son énergie à réaliser des tâches de plus haut niveau ?

L’envie de progrès

Je ne me retrouve pas dans cette course à l’innovation car à mon sens, elle nous dépossède peu à peu, mais sûrement, de choses importantes. Je pense d’abord au respect de notre vie privée, mais aussi à notre indépendance vis à vis de tel ou tel fournisseur de solution, à notre capacité de faire des choix éclairés ou à notre autonomie face à un dysfonctionnement. L’innovation vue sous cet angle ressemble plus à un moyen d’asservir ou de garder l’utilisateur captif qu’autre chose. En tout cas, elle ne permet pas de réel progrès.

L’envie de progrès me semble être le dénominateur commun de ceux qui cherchent à comprendre comment tout ce joyeux bordel fonctionne et comment il pourrait mieux fonctionner pour profiter à tous. Le partage de l’information à chaque fois que c’est possible ou la curiosité sont alors des réponses possibles face à cette problématique.

Je me complique la vie, certes, mais c’est un acte assumé. Assumé en tout cas depuis que j’ai pris conscience de l’importance de ce qu’il est nécessaire de perdre pour un peu de confort. Mon propre curseur est sans doute plus proche de l’envie (ou plutôt de la nécessité) de maîtrise que de la facilité d’usage.

Ainsi, ceux qui passent de temps à autre sur ce blog savent par exemple qu’il est auto-hébergé. Ça implique des contraintes :

  • Matériel fonctionnant 24h/24, 7j/7 à mon domicile (conso électrique supplémentaire ; plan de reprise d’activité en cas de pannes).
  • Gestion de la politique de sauvegarde des données que l’on gère (typiquement, le mail de mes quelques comptes).
  • Administration au quotidien.
  • Chercher à comprendre comment ça fonctionne.

Ça peut paraître lourd et contraignant. La réalisation de cette tâche aurait été nettement plus simple (et possiblement mieux réalisée sur le plan technique) si je l’avais transférée chez un prestataire de service quelconque. Pour autant, mes données sont sur ma machine et je suis le seul à y avoir légitimement accès. Ça ne me met pas totalement à l’abri car un cambriolage ou un piratage est toujours possible après tout, mais ça va dans le bon sens.

L’auto-hébergement (et tant qu’à faire, rien qu’avec du logiciel libre) n’est qu’un exemple. j’aurais aussi pu parler de l’utilisation d’outils permettant d’améliorer le respect de sa vie privée sur le web. Un navigateur Firefox, bien paramétré et avec les bons plugins par exemple est parfois contraignant à utiliser au quotidien et rend certains sites quasiment impraticables. Cet outil a en fait un rôle pédagogique car il pointe par exemple des problèmes potentiels de sécurité. J’ai en mémoire un site web sur lequel je ne pouvais pas naviguer lorsque le plugin « request policy » était activé dans mon navigateur, la faute à un menu entièrement géré par JQuery (JQuery étant chargé dans ce cas depuis le site de google).

Pour conclure

La guillotine a en son temps été une innovation technique remarquable. Pourtant, le progrès pour l’homme fut d’en interdire l’utilisation. Il en va de même pour l’innovation dans le numérique qui n’est pas non plus synonyme systématiquement de progrès. Conservons donc notre curiosité et notre esprit critique, même si ça fait parfois mal au crâne.

Manifestation ce lundi 4 mai contre le #PJLRenseignement




On remet ça les amis ! On retourne dans la rue, sans doute sous la pluie, mais motivé pour bien montrer à notre représentation nationale qu'on ne veut pas de ces boites noires au cœur de notre beau réseau.

Pour plus d'informations, je vous redirige vers le billet de Tristan Nitot.

On se retrouve ce 4 mai, 18h30 environ, Esplanade des Invalides.

Bon week-end et à lundi ;-)


<noscript></noscript>

2015-04-30

Ubuntu 14.04 : activer la connexion filaire




Je viens de changer de matériel pour rafraîchir le vieux PC fixe sur lequel je traîne le plus clair de mon temps. Nouveau processeur avec la carte mère qui va bien et un peu plus de mémoire vive.

Je passe donc d'un vieux Intel Q6600 à un AMD FX 8250, de 4 cores à 8 et ça fait du bien. Le support de cette petite merveille est une carte mère Gigabyte 990XA-UD3. Après mise en place, cette CM m'a quand même filé du boulot : pas moyen d'avoir une connexion filaire. C'est assez con quand on est sur un PC fixe. C'est un problème de driver qui ne passe pas correctement.

Pour la retrouver, voici la solution :

sudo apt-get install linux-headers-generic build-essential dkms
wget wget http://ftp.debian.org/debian/pool/main/r/r8168/r8168-dkms_8.039.00-1_all.deb
sudo dpkg -i r8168*.deb
echo "blacklist r8169" | sudo tee -a /etc/modprobe.d/blacklist-r8169.conf
sudo modprobe -rfv r8169
sudo modprobe -v r8168
sudo service network-manager restart
Et hop, c'est tout. La connexion ethernet repart. Maintenant, pour vous, le dernier problème à résoudre est de trouver un moyen d'avoir une connexion internet ou une clé USB pour récupérer les quelques paquets à installer :-). Moi, je suis passé par un vieux dongle wifi qui traînait dans un carton.


<noscript></noscript>

2015-04-29

Auto-hébergement : le retour

Voilà un moment que j’ai rédigé ce premier article sur mes réflexions sur l’auto-hébergement de mes services web. Près de quatre ans ont passé et un certain nombre de choses ont évolué.

Petit tour du propriétaire…web-server

Matériel

Commençons par la base. Le serveur que j’utilisais lors de la rédaction de mon premier article était clairement limité et a commencé à montrer de sérieux signes de faiblesse quelques mois plus tard.

J’ai donc investi dans un mini-PC répondant un peu mieux à mes besoins en terme de puissance et d’espace de stockage sans sacrifier les coûts : coût direct ( à l’achat) et indirect (consommation électrique). Processeur Intel Atom D525, 2 Go de mémoire vive et 320 Go d’espace disque et 25 W de consommation électrique le tout pour à peine plus de 200 euros à l’époque. La parfaite petite bête pour subir mes expérimentations. et me rendre quelques menus services.

Système d’exploitation

Je vais passer rapidement sur ce point, il n’y a pas grand chose à en dire, j’utilise une distribution Ubuntu serveur (14.04 aujourd’hui) qui me convient parfaitement et qui me permet de garder un parc informatique uniforme puisque mes autres machines fonctionnent également avec Ubuntu.

Je vois d’ici le puristes critiquer ce choix avec plus ou moins de raisons valables. Je suis conscient que qu’Ubuntu n’est pas le choix le plus pertinent pour un serveur, mais c’est le miens.

Services

Voici la partie vraiment intéressante de l’article.

Je parlais d’iFolder comme alternative à DropBox, je me suis finalement dirigé vers ownCloud et son client desktop qui sont les outils parfait pour la synchronisation et le partage de fichiers. Simple d’installation, de configuration et d’utilisation cet outil est l’une des meilleurs trouvailles que j’ai fait. D’autant plus qu’il ne se limite pas au partage de fichier mais est capable de beaucoup d’autres choses via les « apps » qu’on peut lui ajouter. En ce qui me concerne j’utilise notamment l’app calendar qui m’a permis de me séparer de Google Calendar l’un des outils du géant américain que j’utilisais le plus. L’app contact permet également de disposer d’un annuaire de contact synchronisable avec le protocole CardDAV.

Subsonic est un outil que j’avais déjà repéré lors de la rédaction du premier article et je peux aujourd’hui dire que je ne me suis pas trompé. C’est une petite merveille qui me permet de streamer l’intégralité de ma bibliothèque musicale via navigateur web quand je suis au travail ou chez moi, mais aussi via l’application android dédiée lorsque je suis en voiture ou dans les transports en commun. Un vrai bonheur d’avoir accès à la totalité de ses titres et de gérer ses playlist depuis n’importe où. Je sais que certain regretterons de ne pouvoir découvrir de nouveaux titres comme avec Deezer ou Spotify, mais je suis pour ma part pleinement satisfait de cette solution.

Le gros morceau : Google. Nous l’avons vu plus haut j’ai réussi à me séparer de Google calendar grâce à ownCloud, mais il reste quelques outils.

La disparition de Google Reader en 2013 m’a forcé (pour mon plus grand bien) à adopter une solution alternative. rssLounge n’étant plus maintenu j’ai finalement jeté mon dévolu sur Selfoss, un outil simple et relativement bien fait. Compatible PC et smartphone il répond parfaitement à mes besoins pour l’agrégation de mes flux RSS. Il en permet la lecture, l’archivage des articles favoris et le partage via les réseaux sociaux ou par mail.

Comme je le disais il y a quatre ans, la migration de mes projets Google Code étais alors déjà en cours, c’est désormais chose faite et tout est géré vie Redmine et mes dépôts Subversion. Une solution très pratique et complète même si Redmine me paraît parfois un peu lourd pour mon serveur. Mais pour l’heure hors de question de m’en séparer.

J’avais également abordé la question de Google Doc, outil que j’utilisais très peu. L’alternative que j’évoquais alors ne semble pas très active et n’en ressentant pas le besoin, j’ai laissé ce point de côté.

Reste le sacro-saint Gmail. C’est désormais le seul outil auquel je n’ai pas trouvé d’alternative satisfaisante. Les choses bougent et on voit fleurir un peu partout différents projets de messagerie, mais pour l’heure aucun qui répondent aussi parfaitement à mes exigences que l’outil de Google. Je vais donc continuer à l’utiliser pendant encore un certain temps je pense, mais certainement de plus en plus en chiffrant mes messages pour sécuriser mes échanges.

Petits plus

Je ne l’avais pas prévu au départ, mais quelques outils sont venus se rajouter à la liste de ceux que j’avais énoncé en 2011.

Notamment transmission un client BitTorrent disposant d’une interface web simple et parfaitement fonctionnel. Un petit outil accessible à distance pour le téléchargement et le partage de fichiers (en toute légalité bien évidemment).

Afin de rendre accessible simplement certaines informations j’ai également mis en place un wiki grâce à dokuwiki. Simple et sans base de données, l’outil parfait pour avoir quelques pages facilement accessibles et modifiables depuis l’extérieur.

Tous ces services sont donc désormais installés sur mon serveur. Tous accessibles par navigateur, et depuis peu tous sécurisés par SSL pour limiter les risques de fuites d’informations. La configuration d’Apache pour en arriver là a demandé du temps et a pas mal joué avec mes nerfs, mais c’est fait et ça fonctionne parfaitement avec mes certificats auto-signés. C’est un petit plus qui trouve de plus en plus son importance aujourd’hui.

Un dernier petit point intéressant lorsqu’on héberge, comme moi, ses services sur une ligne ADSL classique et que son IP publique est donc régulièrement changée par son FAI. OVH permet l’utilisation, avec les noms de domaine achetés chez eux, de l’outil ddclient qui a le même rôle que DynDNS ou No-Ip. Cela permet donc de mettre à jour automatiquement son adresse IP publique auprès des DNS et permet donc de disposer d’un nom de domaine parfaitement personnalisé et de sous-domaines, même pour un serveur auto-hébergé. C’est un point très appréciable et qui facilite la vie quand il s’agit de se connecter à ses différents services.

Conclusion

Il me reste à l’avenir à installer et configurer une annuaire LDAP pour permettre de synchroniser les identifiants de connexion sur chacun de ces services, et pouvoir ainsi gérer plus facilement l’ajout d’utilisateurs et le renouvellement des mots de passe.

Je l’indiquais en clôture de mon article précédents, les alternatives accessibles au moins expérimentés d’entre nous commencent à fleurir un peu partout. Le projet BeedBox que je citais semble être en pause depuis un moment maintenant, mais d’autres communautés comme Yunohost ou CozyCloud par exemple se montrent de plus en plus actives et c’est tant mieux.

Face aux actualités récentes concernant la surveillance des données par les gouvernements et les grands acteurs économiques, l’auto-hébergement me paraît plus que jamais une solution à essaimer et cultiver.

Flattr this!

2015-04-28

TomTom et Mozilla s'associent pour pondre un GPS pour FirefoxOS



C'est une critique qu'on trouve régulièrement dans les fils de discussion autour de FirefoxOS : cet OS mobile n'a pas de GPS digne de ce nom.

C'est vrai qu'avec Here Maps, qu'on ne trouve même plus dans le marketplace, on frôle à peine le tolérable, si on compare l'application avec celles disponibles sur Android, iOS et les autres. Ceci dit, personnellement, quand je me balade dans les rues de Paris, je suis bien content de l'avoir. A pied, le nez sur l'écran, ça passe. En voiture, ce n'est pas la même histoire. Cependant, personne ne sait comment l'application de Nokia va évoluer : elle est à vendre et les prétendants ne sont pas vraiment ma tasse de thé.

Pour pallier ce manque, TomTom et Mozilla se sont mis d'accord pour fournir un GPS en HTML5 pour FirefoxOS. On connaît bien TomTom et leur capacité à faire des GPS plus que convenable alors la nouvelle va donner du baume aux cœurs des adeptes du système mobile de la fondation.

C'est une annonce, il va falloir attendre de savoir ce que ça va donner et quand on pourra jouer avec la chose. L’idée m'enchante tout de même.


<noscript></noscript>

2015-04-27

GNU/Linux Debian 8 Jessie est disponible !



C'est après 24 mois de boulot que les gars de chez Debian nous annoncent la sortie de leur dernier né : Jessie

Au programme de cette version, on notera comme changements notables le passage officiel à systemd comme remplaçant de sysvinit, une grosse amélioration du support de l'UEFI, l’utilisation du kernel 3.16 et le support étendu d'office grâce au travail des équipes LTS et Security (5 ans de tranquillité !)

On peut aussi lister les différentes mises à jour :
  • GNOME 3.14
  • GIMP 2.8.14
  • KDE 4.11.13
  • LibreOffice 4.3.3
  • Iceweasel (Firefox) 31.6
  • Icedove (Thunderbird) 31.6.0
Ils nous disent que la mise à niveau devrait se passer sans douleur et sans période de déconnexion, ce qui est une bonne nouvelle pour ceux qui gèrent des serveurs. Cependant, pensez tout de même à regarder les notes de publication, histoire d’être certain que vous ne ferez pas le mauvais choix.

Je me sers de Jessie sur mes deux PC portables et j'en suis très très content. Avec du GNOME, c'est beau, c'est fluide et vraiment très agréable. J’écris ces quelques mots depuis un vieux EliteBook 8530w qui carbure vraiment avec Debian 8.

Lors de la sortie de Debian 7, on était passé pas loin d'avoir une distribution efficace et assez fraîche pour une utilisation Desktop, avec la 8, on a franchi le pas. Elle n'a pas grand chose à envier aux Ubuntu, Mageia et consœurs, si ce n'est quelques outils qui installent automatiquement les greffons multimédias.

Pour la télécharger, c'est par ici et pour l'essayer en Live, c'est ici.

Il ne me reste plus qu'à prévoir la mise à jour de ce serveur et de celui de diaspote !


<noscript></noscript>

2015-04-22

Installer Sonerezh sur Debian Wheezy


Je me rends compte que les gens rencontrent des difficultés à installer le lecteur de musique en ligne Sonerezh alors voici un rapide tutoriel pour s'en sortir.

Vous trouverez ci-dessous de quoi installer la branche master, celle qui marche directement tout en contenant quelques petits bugs peu gênants.

Je passe sur l'installation de LAMP, vous trouverez les infos qu'il vous faut par ici.

Récupérer les sources

git clone https://github.com/Sonerezh/sonerezh.git -b master

Configurer les droits

chown -R www-data: sonerezh/
chmod -R 775 sonerezh/

Vérifier les modules Apache2 nécessaires

Voici la liste des modules pour Apache2 que j'utilise actuellement. Cette liste en contient surement qui ne sont pas utiles à Sonerezh mais je pars du principe que si cette liste marche chez moi, ça marchera chez vous ;)
  •  core_module (static)
  •  log_config_module (static)
  •  logio_module (static)
  •  version_module (static)
  •  mpm_event_module (static)
  •  http_module (static)
  •  so_module (static)
  •  actions_module (shared)
  •  alias_module (shared)
  •  auth_basic_module (shared)
  •  authn_file_module (shared)
  •  authz_default_module (shared)
  •  authz_groupfile_module (shared)
  •  authz_host_module (shared)
  •  authz_user_module (shared)
  •  autoindex_module (shared)
  •  cgi_module (shared)
  •  cgid_module (shared)
  •  deflate_module (shared)
  •  dir_module (shared)
  •  env_module (shared)
  •  fastcgi_module (shared)
  •  headers_module (shared)
  •  mime_module (shared)
  •  negotiation_module (shared)
  •  proxy_module (shared)
  •  proxy_balancer_module (shared)
  •  proxy_http_module (shared)
  •  reqtimeout_module (shared)
  •  rewrite_module (shared)
  •  setenvif_module (shared)
  •  ssl_module (shared)
  •  status_module (shared)

S'il vous en manque, un a2enmod nondumodule vous permettra de l'activer.

Vérification des dépendances pour PHP5

  • libapache2-mod-php5
  • php5
  • php5-cgi
  • php5-cli
  • php5-common
  • php5-curl
  • php5-fpm
  • php5-gd
  • php5-imagick
  • php5-mcrypt
  • php5-mysql
  • php-acp

Il en manque ? apt-get install nomdupaquet pour l'installer.

Configuration du virtualhost

Adaptez ce virtualhost à votre installation.

<VirtualHost *:80>
        ServerAdmin admin@monserv.tld
        ServerName www.monserv.tld
        DocumentRoot /var/www/sonerezh
        <Directory /var/www/sonerezh>
                Options -Indexes
                AllowOverride all
                Order allow,deny
                allow from all
        </Directory>
    CustomLog   /var/log/apache2/demo.sonerezh.bzh-access.log "Combined"
    ErrorLog    /var/log/apache2/demo.sonerezh.bzh-error.log
</VirtualHost>

Redémarrez apache2 pour que tout soit bien chargé et certifié sans erreur.

Configurer MySQL

C'est par ici que ça se passe, la documentation officielle est très claire.



Nous y voilà, c'est la fin ! Vous pouvez maintenant vous connecter à votre instance Sonerezh et suivre la procédure d'installation automatique !


<noscript></noscript>

2015-04-19

Facebook lit les documents Google Doc partagés

  1. Créez un nouveau document Google Doc.
  2. Créez un lien de partage (seuls les personnes connaissant le lien peuvent accéder au document)
  3. Partagez ce lien dans un message privé sur Facebook.
  4. Regardez immédiatement la page web Google Doc, vous verrez 2 utilisateurs anonymes connectés à votre document ! Et ce alors que votre destinataire n’a pas encore lu votre message !

Facebook a l’air d’aspirer tous les nouveaux documents Google Doc échangés sur Facebook. Le même comportement s’observe si vous publiez le lien Google Doc sur votre mur Facebook.

Autre élément corroborant, une vignette miniature du document apparaît dans Facebook à coté de votre lien. Cela montre que Facebook l’a lu et en a fait une capture d’écran. Votre document a de forte chances d’être exploité à toute fin utile pour Facebook et les USA (tracking publicitaire, détection des terroristes et pédophiles, espionnage commercial par la NSA, etc…)

Bref, Facebook, ce n’est pas chez vous, et ce n’est pas privé. Relisez ses conditions d’utilisation.

J'aime(6)Ferme-la !(0)

Astuces du dimanche #3


Aujourd'hui je vous parle de deux utilitaires qui devraient être connus de tous, ou presque, enfin, ceux qui gèrent des serveurs : Tmux et Screen.

Tmux

On m'en parle depuis pas mal de temps. Jamais je n'avais fait l'effort de m'y mettre de peur de devoir changer trop d'habitudes. Ça, c'était jusqu'à il y a encore quelques jours. Je sais maintenant m'en servir et pourquoi. Conclusion : c'est super !

Installer le paquet

aptitude install tmux

Utiliser tmux

C'est là que ça demande de la pratique, mais pas tant que ça. Une fois que vous connaissez les 5 commandes les plus intéressantes, vous pouvez être le roi du monde :
  • ctrl^b + " = Découpage horizontal
  • ctrl^b + % = Découpage vertical
  • ctrl^b + o = Changer de fenêtre
  • ctrl^b + x = Fermer la fenêtre actuelle
  • ctrl^b + z = Passer en plein écran
A partir de là, vous pouvez vous amuser à afficher des choses comme ça :




De gauche à droite : un echo tout simple, Htop, Emacs avec 2 fenêtres et Emacs affichant le code d'une image PNG en hexl-mode. Le tout dans une seul terminal ouvert. C'est quand même chouette. Notez l'inception Tmux dans Emacs ! :-)
Vous l'aurez compris, Tmux permet d'utiliser plusieurs terminaux dans un seul affichage. Super pratique dans un nombre incalculable de cas. Vous trouverez sans doute une bonne occasion de vous en servir.

Screen

Installer Screen

aptitude install screen
Screen reprend une fonction de Tmux dont je n'ai pas parlé au dessus puisque je ne m'en sers tout simplement pas. Screen permet de détacher un terminal virtuel. En bon français, on pourrait dire que le terminal passe en tâche de fond tout en continuant de fonctionner et sans qu'une action ne le dérange. On peut reprendre la main via une simple commande et rejouer avec ultérieurement.

J'utilise screen dans deux cas : pour faire tourner mon pod diaspora et pour exécuter des commandes extrêmement longues sur un serveur. Screen détachant le terminal dans lequel la commande est exécutée, celle-ci devient insensible à une déconnexion et continue ainsi à tourner. Ça sauve la vie ce genre de chose.

Utiliser Screen

  • screen -S nomdelasession = créer une session
  • screen -ls = liste les sessions en cours
  • screen -r nomdelasession = permet de récupérer une session

Mais encore :

  • ctrl^a + d = détache le terminal en cours
  • ctrl^a + n = va au terminal suivant
  • ctrl^a + p = va au terminal précédent
  • ctrl^a + c = créer un nouveau terminal

On pourrait dire que Tmux est plus avantageux que Screen puisqu'il permet aussi de détacher les terminaux mais, personnellement, je les vois vraiment dans deux rôles différents. Tmux pour le bordel, Screen pour le détachage de terminal.

Voilà pour ce dimanche. Je vous laisse fouiller les mans des deux outils pour trouver ce qu'ils cachent encore. Entre Tmux, Screen et Emacs, je vous souhaite bon courage pour ne pas vous tordre les doigts !


<noscript></noscript>

2015-04-18

JAH-5 – De l'installation épique d'une Debian Lenny

Journal de bord du capitaine :
Date : 10 janvier 2010
Lieu : Perdu dans le cyber espace

J'avais profité du délai de livraison pour lire en détail la section consacrée au choix de la distribution dans le wiki sur l'auto-hébergement dont j'ai déjà parlé dans ce journal [1]. Mon choix s'est assez rapidement arrêté sur la dernière Debian stable : Lenny 5.0.3, les distributions Debian étant réputées pour leur fiabilité, leur stabilité et leur documentation fournie. Par ailleurs, étant tombé dans le monde du logiciel libre par le terrier Ubuntu, j'étais un peu familiarisé avec les principes de fonctionnement (dépôts de paquets installant des binaires pré-compilés et autres) et les logiciels de base (entre autre apt) des distributions Debian. Je me suis donc procuré sur le site officiel le manuel d'installation Debian pour amd64 (l'architecture de mon processeur Intel Atom) et j'ai commencé à le lire en entier.

Ce fut une erreur, car ce manuel, ultra complet, bien qu'écrit clairement, contient beaucoup de détails qui peuvent perdre l'utilisateur novice. Je me suis alors rabattu sur les sections spécifiques qui présentent des guides rapides d'installation. Comme je l'ai dit précédemment, la documentation Debian est très bien fournie et contient tout ce que l'on peut chercher à savoir : les guides d'installation rapide se trouvent en annexe de la documentation officielle, nul besoin d'écumer le net à la recherche de conseil.

J'ai opté pour une installation dite : netinstall, qui permet d'installer et de lancer l'installateur Debian avec le minimum de paquets requis, puis lors de l'installation les paquets supplémentaires nécessaires, en fonction des choix de configuration, sont téléchargés à la volée. Ne disposant pas de lecteur cd-rom sur mon serveur, l'installation par clé USB me sembla un choix judicieux. J'ai donc suivi les indications de la "méthode détaillée" décrite dans le guide d'installation Debian afin de créer une clé USB bootable contenant l'installeur (copie de quelques fichiers sur la clé et édition d'un fichier texte).

Lorsqu'on se lance dans quelque chose de nouveau, il convient de faire les choses une à une afin de savoir précisément quelle étape à pu causer des problèmes en cas de soucis. C'est pourquoi, avant même de tenter le démarrage sur clé USB, j'ai mis sous tension mon serveur et essayé de l'allumer. Et là, un miracle : il a démarré sans problème ! Le disque dur étant bien évidemment vide, une fois l'initialisation terminée, le programme d'installation par réseau (installé par défaut dans la carte-mère) s'est lancé puis stoppé une fois qu'il eût terminé d'examiner le réseau, sans rien trouver pour démarrer.

Je redémarre afin de paramétrer le BIOS pour qu'il tente le démarrage en priorité sur les périphériques amovibles puis les disques durs internes et ensuite seulement les périphériques réseau. Je sauvegarde, insère ma clé USB, redémarre, le BIOS s'initialise et là ... c'est le drame : "Boot Error". J'appuie sur une touche, le programme d'installation par réseau se lance alors et se termine comme la fois précédente. Cela semble donc évident : il y a un problème avec ma clé USB. Il est possible que lors du téléchargement, ou de la copie, un des fichiers ait été corrompu. Je repars donc de zéro et récréé une clé en retéléchargeant les fichiers depuis les serveurs Debian (je vérifie les sommes de contrôles, cette fois), je retente et là ... même résultat. Ayant heureusement plusieurs PC en ma possession, je teste ma clé sur un autre ordinateur : l'installateur démarre sans problème. Cette "Boot Error" était donc bien due à mon serveur et non à l'installateur sur le clé. Un problème matériel me semblant exclu (j'ai testé sur différents ports USB par acquis de conscience) il ne pouvait s'agir que d'un problème de configuration du BIOS; mais n'ayant rien modifié, à part l'ordre de démarrage des périphériques, l'erreur venait plus probablement d'une des options par défaut que d'une de mes modifications.

C'est Internet qui m'apporta la solution : en cherchant le nom de ma carte-mère et USB Boot Error, les premiers liens me guidèrent vers différents forums qui m'apprirent qu'une des options par défaut du BIOS concernant la gestion des périphériques amovibles gérait mal les périphériques bootable [2]. Ça ne s'invente pas ! Une fois cette option changée, je tente un énième redémarrage et là ... miracle : l'installateur démarre !

Les premières étapes de l'installation se déroulent sans problème : langue, nom de la machine, nom de domaine, etc. Arrive l'étape de la recherche d'une image iso sur le périphérique d'installation, cette image étant sensée contenir plus ou moins de paquets selon celle qui a été copiée lors de la création de la clé. Tout était beaucoup trop facile depuis une dizaine de minutes, je n'aurais pas dû baisser ma garde. Une nouvelle fois, une erreur : "Il n'y pas d'image iso sur le périphérique ou elle n'est pas nommée correctement". Après plusieurs relectures attentives du guide d'installation Debian, je me rends compte que je ne sais tout simplement pas lire. Le guide indiquait de copier une image dite "netinst" voyant un répertoire "netboot" à côté du répertoire où j'avais récupéré les autres fichiers, j'ai été cherché mon iso dans ce répertoire "netboot" ... Cette idiotie m'a fait perdre une bonne demi-heure avant que je m'en rende compte et que je récupère enfin, en quelques minutes, sur le site de Debian, une vraie iso "netinst". Ma clé correctement préparée, j'ai pu redémarrer l'installateur sur mon serveur.

Une fois les étapes préliminaires terminées, arrive, de nouveau, la détection de l'image iso qui cette fois ce déroule sans problème. Forcément, une fois qu'on fait ce qui est marqué dans le manuel et qu'on improvise pas en lisant les mots de travers ça ce passe mieux ! Après quelques minutes, vient l'étape clé de la gestion du disque dur. Ayant à l'avance préparé mes partitions, je ne pensais pas passer trop de temps sur cette étape; erreur monumentale bien sûr, car j'avais oublié de prendre en compte le chiffrement ! N'étant pas du tout familier du chiffrement des partitions, je m'improvise expert en cinq minutes avec wikipédia, le temps de me renseigner sur les options proposées par l'installateur Debian, notamment l'utilisation de LVM (Logical Volume Manager) qui, résumons très grossièrement, permet de créer des partitions logiques sans tenir compte des disques physiques en présence; par exemple : faire une seule partition sur deux disques distincts ou encore redimensionner très simplement des partitions sans perdre leur contenu. Il est possible d'utiliser LVM sur des volumes chiffrés mais j'ai fait le choix de ne pas l'utiliser.

Je décide donc de chiffrer entièrement mes deux partitions et de les utiliser comme prévu, car le chiffrement se passe en deux temps : tout d'abord on chiffre un volume, afin d'augmenter la sécurité, il est rempli de données aléatoires (ce qui peut s'avérer assez long si les volumes sont importants); le volume qu'on avait sélectionné apparaît alors comme volume chiffré et une nouvelle partition (identique au volume chiffré avant son chiffrement) s'ajoute au menu de sélection des partitions. On peut alors utiliser cette nouvelle partition comme n'importe quelle autre : choisir son utilisation (système de fichiers, swap, etc), son point de montage, la rendre amorçable ... Je paramètre donc mes partitions comme prévu : une pour la racine du système et l'autre qui accueillera les répertoires personnels des utilisateurs. C'était avant le drame bien entendu, car au moment de passer à l'étape suivante l'installateur me signale par un message d'erreur que si je veux chiffrer mes partitions, il me faut obligatoirement une partition de boot non chiffrée. Cela est bien sûr indiqué dans le guide d'installation Debian mais à trop vouloir gagner du temps, on finit toujours par en perdre !

Dans mon malheur, j'ai eu la chance de ne pas avoir à redémonter tout le PC pour remettre le SSD sur mon PC de bureau. Puisque j'avais aligné, partitionné et configuré mon disque en ligne de commande la dernière fois, je n'ai eu qu'à ouvrir le terminal disponible dans l'installateur et tout recommencer, en laissant cette fois une partition d'une centaine de Mo qui ne sera pas chiffrée et servira pour le boot. Une fois les partitions créées, je recommence toutes les étapes d'installation depuis le début (y compris le long remplissage des deux volumes chiffrés); était-ce nécessaire ou aurai-je pu simplement reprendre à l'étape de configuration des disques ? Je n'en sais rien mais dans le doute, je suis reparti de zéro.

Sur les conseils d'un ami, je ne désigne aucune partition comme étant amorçable, soit disant que ça sert à rien ! Je termine toutes les étapes de l'installation (enfin !), viens alors le moment de redémarrer et là ... c'est le drame : bien que la bonne séquence de démarrage ait été définie dans le BIOS, il ne se passe rien lors de la tentative de démarrage sur le disque dur, c'est le démarrage par réseau qui finit par s'amorcer. Ayant un doute sur le "ça sert à rien de marquer la partition comme amorçable", je décide donc de refaire toutes les étapes (y compris les longues) de l'installateur afin que dans l'étape de configuration des disques, je puisse choisir la partition de boot comme partition amorçable.

Lors d'une des dernières étapes de l'installateur, il est demandé de choisir certaines tâches correspondantes à l'utilisation que l'on souhaite faire de l'ordinateur (bureau, serveur, portable etc). Ces tâches correspondent chacune à un ensemble de paquets qui vont être installés sur le PC. Comme la fois précédente, je choisis de n'installer que le minimum de paquets (aucune tâche sélectionnée) afin d'une part : d'éviter d'installer des paquets qui ne me serviront pas (des programmes inutiles pour moi pourraient être lancé en tâche de fond sans que j'en sois conscient); et d'autre part : de limiter le plus possible l'espace sur le disque. L'installateur se termine par l'installation et la configuration de grub (programme permettant de choisir quel système lancer au démarrage) sur la partition amorçable (à mon avis, c'est ici que ça avait pêché la fois précédente).

Je redémarre et là ... ça marche ! Une fois l'initialisation du BIOS terminée, je vois apparaître l'écran de grub qui me propose de lancer Debian en mode normal ou en mode "single-user", je sélectionne le mode normal, le démarrage de Debian commence : je rentre mes mots de passes pour mes partitions chiffrées [3] et enfin j'accède à l'écran de connexion Debian où je peux me connecter avec les comptes root et utilisateur que j'ai créé lors de l'installation.

Conclusion :

  • Les guides d'installation Debian sont très bien fait donc il ne faut pas hésiter à les consulter à chaque étape (lire tout en avance ne sert à rien) et surtout il ne faut pas remplacer un mot par un autre !
  • En cas de problème : Internet est là. Lorsqu'on rencontre un problème en informatique il est rare qu'on soit le premier.

Maintenant que j'avais un système Debian fonctionnel, j'allais pouvoir commencer à installer et à configurer ce dont j'avais besoin pour mon serveur. Mon impatience était à son comble !

Prochaine entrée du journal : Des premiers pas timides d'un débutant sysadmin

Notes

[1] Voir la note n°2 de l'article JAH-1 – Du pourquoi.

[2] Il fallait changer l'option "USB Mass Storage Emulation Type" de "Auto" à "All Fixed Discs". D'après un post de ce thread le paramètre "Auto" considérerait les clés USB de grande capacité comme des disques et refuserait de démarrer dessus.

[3] Chaque partition ayant été chiffrée séparément, elles avaient chacune un mot de passe différent. J'ai appris lors de mes installations suivantes de Debian à utiliser LVM pour créer plusieurs partitions sur un unique volume chiffré, cela simplifiant la procédure de démarrage puisqu'il n'y a qu'un seul mot de passe à taper.

2015-04-17

ownCloud Server laisse tomber Windows Server




C'est officiel, ça y est. J'en parlais au conditionnel dans ce billet en sachant bien que si la question était posée, c'est que ça allait arriver.

[...]we have decided to stop support for Windows as an ownCloud application server.

Cette phrase est cachée dans le premier paragraphe de leur (très) long billet d'annonce. On se retrouve donc avec l'une des plus belles et des plus abouties solutions d'informatique dans les nuages choisissant de ne plus supporter officiellement Microsoft Windows Server.

Ils restent tout de même prudents en ne laissant pas complètement tomber les utilisateurs qui seraient coincés sur cette plate-forme :
  • Ils fournissent des  machines virtuelles
  • Script de migration vers ces VM
  • Support de OC 8 pour Windows maintenu

Si vous voulez savoir pourquoi OC laisse tomber Windows, voici les principales raisons :

  • PHP mal supporté
  • Des magouilles insupportables à faire
  • Des problèmes d'encodage
  • Donc des problèmes de synchronisation
  • Des problèmes de clés de chiffrement
  • Des bugs avec MSSQL
L'abandon de Windows Server sera effective avec la sortie de OC 8.1, ça vous laisse du temps pour vous retourner.

J'en reviens au questionnement sur la position de Microsoft dans le monde de l’hébergement. Ils semblent doucement abandonner ce secteur. Quand on voit que le Windows ordinaire se dirige vers une plate-forme gratuite de vente de services liés à la Apple, cette situation n'est pas étonnante et je suis certain que ça ne sera pas la seule annonce d'abandon parmi les rares applications libres ou open sources qui la supportent encore.


<noscript></noscript>

2015-04-15

Chanson : Gare aux Godillots !


Je vous partage déjà une chanson de JCFrog qui s'attaque au Projet de loi sur le Renseignement, #PJLRenseignement pour les connaisseurs, sur toutes les pages de ce blog. Il y parodie Rape Me de Nirvana pour taper sur les envies de surveillance de masse du gouvernement.

Ce soir, c'est sur les députés naïfs, inconscients ou incompétents qui voteront les yeux fermés le projet de loi du gouvernement, qui en prennent pour leur grade.

Voici sa dernière chanson, bonne écoute !


<iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/90L28nunboU" width="420"></iframe>

J'en profite pour vous rappeler que c'est demain que ces godillots voteront en souriant la fin de la vie privée en France malgré la mobilisation sur le terrain économique des entreprises professionnelles du métier.

Quel beau pays.


<noscript></noscript>

2015-04-12

Le B2D contre le Projet de loi sur le Renseignement


Si vous n'en avez pas encore entendu parler, je vous redirige vers le site Sous-surveillance.info, sinon, sachez que ce texte va être discuté cette semaine, très rapidement, et soumis au vote ce jeudi de cette même semaine.

Je me déclare ouvertement contre l'installation de "boites noires" dans le cœur du réseau français. Depuis cet espace, j'affichais déjà un bandeau vous incitant à vous renseigner depuis le site dédié de la Quadrature du Net. Maintenant, je change ma page d’accueil.

Ce n'est malheureusement pas grand chose, c'est pour ça que je serai aussi présent lors de la manifestation de ce lundi 13 avril devant l’Assemblée Nationale.

J’espère vous y retrouver nombreux.

<iframe allowfullscreen="" frameborder="0" height="315" src="https://www.youtube.com/embed/UBdVr9Kj6nc" width="420"></iframe>


<noscript></noscript>

2015-04-10

JAH-4 – Du montage musclé d'un petit serveur

Journal de bord du capitaine :
Date : 6 janvier 2010
Lieu : Perdu dans le cyber espace

Un boîtier où chaque chose est sensée avoir sa place avec l'espace suffisant, des composants fait pour s’emboîter les uns dans les autres, des trous, des vis et un tournevis; voila ce qui s'étalait sous mes yeux au moment où j'ai décidé d'attaquer le montage de mon serveur. Le cœur rempli de l'espoir que dans une petite heure, je pourrais le brancher !

Première chose : le petit sac de vis fourni avec le boîtier. Il me semblait étonnement rempli, je commence donc à détailler son contenu. Je trouve quatre vis identiques j'en déduis donc que ce doit être celle qui vont servir à fixer la carte-mère. En effet, la première étape du "Quick start" fourni avec la carte-mère commence logiquement par la fixation de celle-ci au boîtier. On notera, au passage, que la documentation détaillée de la carte-mère est sur cédérom, et celle du boîtier uniquement disponible sur Internet. Parfaitement logique et simple lorsqu'on monte son tout premier PC. Mais ne chipotons pas, peu de personnes prennent le temps de lire ces manuels (à tort, le plus souvent) donc l'écologie y gagne !

Je commence donc par ouvrir le boîtier Antec. Procédure simple et rapide, composée du dévissage de quelques vis et de coulissement de quelques pièces métalliques. Une fois l'accès au fond du boîtier dégagé, il ne me reste qu'à pousser à l'extérieur du boîtier les nombreux câbles d'alimentation des futurs composants. Ainsi est pleinement dégagé l'espace qu'occupera la carte-mère, les quatre pas de vis étant accessible.

Avec ma carte-mère, était fourni ce que j'appellerai "la grille des connectiques". Cette grille est sensée être mise à la place de la grille fournie avec le boîtier, afin de "coller" parfaitement à l'emplacement des sorties de la carte-mère; permettant, par la même, de ne pas laisser d'ouverture superflue qui serait une porte à poussières. Et c'est là qu'ont commencé les difficultés pour moi …
Car si la grille du boîtier s'est enlevée en une seconde, la nouvelle ne me semblait pas parfaitement adaptée à l'espace qui lui était réservé. J'ai donc passé près de 50 minutes à essayer de la mettre le mieux possible, poussant de toutes mes forces avec mes doigts sur tout les endroits possibles, afin qu'elle soit enfoncée au maximum partout. Je n'ai pas osé utiliser d'outils de type marteau ou autre, afin que le destin ne soit pas tenté de m'apporter, une nouvelle fois, la preuve de ma maladresse et de ma malchance chronique. J'avoue qu'après quasiment une heure de combat, j'étais plutôt satisfait et persuadé d'être arrivé à la clipper correctement.

L'étape suivante consistait en la mise en place de la carte-mère. Gros problèmes de ce type de matériel : aucune prise et des composants fragiles tout les millimètres ! Après avoir failli arracher le ventilateur du processeur et un radiateur, j'ai enfin réussi a poser la carte-mère sur les pas de vis; et là, c'est le drame : les trous de la carte-mère ne sont pas en face des pas de vis ! Il s'agit de quelques millimètres de décalage mais, tout de même, cela empêche le vissage.

Après de multiples tentatives, je me rend à l'évidence : quelque chose bloque ! Mais quoi ? Le problème de ce type de boîtier, c'est que tout est, pour ainsi dire, calculé au poil de cul pour rentrer; donc il n'est pas aisé (disons le : c'est impossible) de regarder, par exemple, en dessous de la carte-mère si rien n'accroche ou tout autre chose. La conclusion à laquelle je suis arrivé, c'est que la fameuse grille ne devait pas être suffisamment enfoncée. Pas grand chose, à peine un millimètre, mais cela suffisait à gêner la carte-mère. Je me suis alors résolu à faire quelque chose que je déteste : forcer sur des composants fragiles !

Tout en poussant au maximum la carte-mère avec une main, j'ai donc essayé de visser une des vis que j'avais repérée, tout au début, dans un des trous de la carte-mère qui était presque en face de son pas de vis. J'ai, bien évidemment, fait tomber la vis sur la carte-mère; on recommence ! La seconde fois, j'arrive presque à poser la vis dans le trou, tout en continuant à pousser avec le bout de mes doigts (en feu), je me saisis du tournevis et commence à visser; et là, nouveau drame : ça résiste ! Et pas qu'un peu ! Au point où j'en suis, je continue à forcer le vissage, jusqu'au moment où je m'aperçois que je suis en train de littéralement creuser dans la carte-mère ! J'arrête là les frais et étudie attentivement les vis et les trous dans lesquels elles sont sensées rentrer : ce n'étaient pas les bonnes ...

Après un tri attentif de toutes les vis fournies, et des essais dans les trous de la carte-mère et dans les pas de vis, je finis par trouver les bonnes vis; on recommence ! Cette troisième fois fut le bonne, ma première vis (légèrement de biais) est à moitié dans son pas de vis, je recommence donc l'opération avec les autres. A chaque vis, je devais forcer un peu moins, la carte-mère se rapprochant, au fur et à mesure, de sa position nominale. Au final : 3 vis à 100 % dans leur pas et la 4ème à 75 % ; ce qui n'est pas si mal et surtout bien suffisant pour que la carte-mère ne bouge plus jamais.

Le reste du montage se passa, relativement, sans encombre. Il n'y avait qu'à suivre l'ordre des composants à brancher, le "Quick start" détaillant tout à l'aide de schémas très clairs. Je n'ai eu à improviser que pour les leds du boîtier où, chose très étrange, une des connectiques était un embout femelle pour trois pins (alors que seulement deux fils y étaient reliés) et sur la carte-mère seulement deux pins étaient prévus. J'ai aligné, dans l'embout femelle, les fils avec les pins présents sur la carte-mère et j'ai branché le tout.

Conclusion :

  • Tout enfoncer à fond et ne pas hésiter à marteler ou découper ce qui peut l'être pour ne pas avoir à forcer sur des composants fragiles.
  • Toujours tester les vis pour être sûr de visser les bonnes sur le pas adéquate (comme Sheila)
  • Surtout ne pas se presser et ne pas s'énerver

En appliquant ces quelques conseils simples tout le monde peut monter un ordinateur.

En remettant la dernière vis du boîtier, je dois avouer que je me senti soulagé; cela terminait, en théorie, toutes les manipulations matérielles que j'avais à faire. La suite se passerait via un clavier et un écran, environnement dans lequel je me sens un peu plus à l'aise. Il ne restait plus qu'à prier qu'une fois mis sous tension, et le bouton d'allumage pressé, tout cela n'allait pas me griller sous le nez ...

Prochaine entrée du journal : De l'installation épique d'une Debian Lenny

t411 bloqué, The Pirate Bay bloquée, et les autres... mais ?!


On est vendredi, rigolons un peu aidé par le dessin de Grise Bouille.



Faites donc un tour sur son blog, ça vaut le coup !


<noscript></noscript>

2015-04-09

Les hébergeurs français contre le projet de loi sur le renseignement




Gandi, IDS, Ikoula, Lomaco et OVH s'affichent ensemble pour dénoncer le projet "Boites noires", comme ils l'appellent.

Ils commencent par rappeler que l’économie de l’hébergement tourne à plein régime dans notre bel hexagone, des chiffres qui font tourner la tête et des embauches à prévoir, beaucoup d'emplois, que je confirme personnellement par la présence de pas mal d'offres dans ma boite mail.

Ils enchaînent sur l'avantage qu'a la France sur une bonne partie du reste du monde : notre droit respecte les données personnelles, et rien que ce détail fait de nos hébergeurs un choix bien plus qu'avantageux pour les entreprises du monde entier.

Ils nous parlent aussi technique, via une belle citation que je vous offre, savoureuse :

 L’algorithme placé à l’intérieur (des boites noires) serait validé, souvent a posteriori, par une commission, composée de juristes et de parlementaires (députés et sénateurs) et d'un expert technique nommé par l'Arcep… Sans vouloir être offensant pour la représentation nationale, nos entreprises ont de nombreux experts en algorithmique, si nous ne prétendons pas être capables de contrôler cette boîte noire, nous ne pensons pas que nos représentants le puisse mieux.

Allez lire ce texte, c'est un régal !

N’hésitez pas à cliquer sur le petit encart en haut à droite de ce blog pour vous mobiliser !

Il ne manquait plus qu'eux. Nous, utilisateurs avancées, techniciens, employés, patrons sommes contre.

[Photo de John McStravick] [Source : Chocobozzz]

<noscript></noscript>

Appréciez le droit, mes amis


Il y a des choses que les gens n'aiment pas ou peu lire mais qui font pourtant parties de notre quotidien : les lois, les décrets, les textes de la justice. Ces choses sont souvent peu claires, parce qu'écrites dans un français qu'on peut qualifier de difficile, mais tellement importantes !

Alors que tout le monde se mobilise contre le Projet de loi sur le Renseignement : la Quadrature du Net, les fournisseurs d’accès à Internet associatifs, les blogueurs geeks/barbus/libristes francophones, les médias de masse ou médias indépendants, il y avait une personne que je n'attendais pas : Maître Eolas.

Pour nous parler, il nous sort un billet d'une longueur incroyable (Wallabag parle de 15 bonnes minutes de lecture) mais tellement plaisant. Il est donc hors de question de vous divulguer la conclusion ou une seule citation ici. Je ne vous propose que de le lire.

Ce blogueur nous parle Droit et Justice depuis des années. Il est à ajouter dans votre lecteur de flux RSS si vous ne l'avez pas encore. Son éclairage est toujours pertinent et passionnant.


<noscript></noscript>

2015-04-07

La Brique Internet : libérer sa connexion simplement


Les lorrains de la LDN, Lorraine Data Network, nous parlent de leur dernière création : la brique internet.

Il s'agit d'un boîtier à brancher à sa box (ou téléphone !) pour déployer une connexion VPN directe vers les serveurs de l'association membre de la FFDN de votre choix. Avec ça, on passe outre les atteintes à la neutralité du net (comme Free et Youtube), aux altérations du contenu et filtrages en tous genres (port 25).

En plus de vous faire passer tranquillement par un VPN digne de confiance, ce petit boîtier peut vous servir d'outil principal d'auto-hébergement puisqu'il se sert de YunoHost.

La vidéo suivante est bien plus claire que ce que je viens de vous raconter :



Gardez en tête que cet outil n'est pas là pour vous offrir l'anonymat complet puisque les associations françaises restent soumises aux lois de l’État. Son but premier est de faire sauter les limitations inhérentes à la configuration malheureuse d'une box de FAI et de récupérer un internet neutre.

Ceci-dit, si vous vous branchez sur un VPN localisé dans un autre pays... voila.

[source]

<noscript></noscript>

2015-04-05

Note de service : StartCom en rade


Mise à jour
, 06/04 : La situation est revenue à la normale. Une panne de courant est à l'origine de la panne.


Billet rapide pour vous confirmer que la vérification des certificats SSL provenant de StartCom ne s'effectue plus depuis ce weekend. Ils rencontrent des difficultés serveurs.

L'information est confirmée sur leur forum. Ce problème ne se manifeste que sous Mozilla Firefox puisqu'il semblerait que ce soit le seul navigateur à s’inquiéter en permanence de la validité de ces derniers. C'est assez choquant de voir IE, Chrome & co ne pas réagir.

Ce blog n'est pas concerné mais le pod diaspora* d'Augier et de moi-même, diaspote.org, se sert d'un de leur certificat. Il n'est donc plus accessible depuis Firefox.

Pour contourner le problème, vous pouvez temporairement vous passer de la vérification OCSP en décochant l'option dans les préférences / Avancé / Certificats de votre navigateur.


<noscript></noscript>

2015-04-04

JAH-3 – De la préparation du disque dur

Journal de bord du capitaine :
Date : 5 janvier 2010
Lieu : Perdu dans le cyber espace

Après de multiples rebondissements pour obtenir mes pièces (disque dur plus disponible, plusieurs allers-retours au magasin de retrait où sévissent des incompétents mal aimables ... ), j'avais enfin en ma possession tout ce que j'avais si soigneusement choisi. Les préparatifs étant terminés, le moment était venu de commencer ce long voyage initiatique.
Dans la suite de ce journal, je m'évertuerai à toujours narrer les événements tels qu'ils se sont produits, et non pas tels qu'ils auraient dû se produire. Ceci afin que mes erreurs puissent servir de leçons.

Dans la précédente entrée de ce journal, j'ai expliqué que l'un des éléments qui avait déterminé mon choix de SSD fut le suivi technique assuré par OCZ. Ayant trouvé sur le forum officiel d'OCZ (qui au passage est une mine d'or), toutes les informations nécessaires à la mise à jour du firmware de mon disque dur, j'ai décidé d'effectuer cette procédure avant même le montage de mon serveur. En effet, selon la version de base du firmware, les manipulations pouvaient impliquer des changements de configuration du bios de la machine hôte, voir de "jouer" avec des cavaliers. Ne souhaitant pas multiplier les difficultés, il était préférable de faire ces manipulations sur un pc que je connaissais et pas sur un serveur neuf. J'ai donc commencé par installer mon disque sur mon pc de bureau.

Première bonne surprise : le firmware présent sur mon disque était l'avant dernier firmware officiel (1.3) et ne nécessitait que des manipulations logicielles pour être mis à jour avec le dernier firmware officiel (1.41). De plus, la mise à jour n'effaçait pas les données présentent sur le disque; ce qui était le cas des précédentes procédures de mise à jour, d'où mon choix de m'occuper de cette mise à jour avant tout autre chose.
En suivant les instructions du forum, j'ai pu, aisément, créer une clé USB amorçable (merci UNetbootin[1]) contenant le logiciel de mise à jour de firmware. Un redémarrage et quelques minutes plus tard : mon disque SSD était à jour !

Ayant pris pour habitude d'avoir mes données personnelles sur une partition séparée du système d'exploitation, puisque le disque était installé sur mon pc de bureau, cela me semblait une bonne idée de préparer à l'avance mes partitions pour gagner du temps lors de l'installation. De plus, cela me permettait d'aligner mes partitions (principe permettant de limiter les écritures inutiles sur les disques SSD et donc de rallonger leur durée de vie[2]). Suivant les étapes décrites sur le forum OCZ[3], j'ai pu créer et aligner mes partitions en utilisant fdisk puis les formater en utilisant mke2fs.
Bien qu'il existe, depuis fort longtemps, des outils graphiques simples et performants pour créer ses partitions, les réglages fins nécessaires à l'alignement des partitions ne pouvaient se faire qu'en ligne de commande. Cela eu l'avantage de me permettre de me familiariser avec ces outils (ce qui va me servir par la suite même si ce n'était pas prévu ainsi), et par la même, d'éclaircir dans mon esprit la distinction entre : création de partitions, type de partitions et formatage.

Après quelques heures, le temps de lire les manuels des outils et de lire les tutoriels d'alignement, j'avais enfin mes 2 partitions (8 et 22 Gio) formatées en ext4[4]. Tout semblait prêt pour la prochaine étape, qui, j'en étais certain, ne pouvait que bien se passer ... ou pas en fait !

Prochaine entrée du journal : Du montage musclé d'un petit serveur

Notes

[1] UNetbootin est un petit logiciel multi-plateforme qui permet très rapidement de créer des périphériques amorçables : soit à partir d'iso que l'on a récupéré au préalable, soit en lui confiant le soin d'aller les télécharger à la volée.

[2] À la date de publication de cette article (2015), ces manipulations manuelles sont obsolètes et gérées automatiquement par tout les logiciels de partitionnement.

[3] En 2009, il fallait partir à la chasse aux infos en parcourant les forums, mais depuis, OCZ a publié un "DOs and DONTs with FAQs" sur les SSD qui semble assez complet.

[4] À l'époque, il y avait aussi un débat sur l'impact des différents système de fichiers sur la durée de vie des SSD. C'est cet article de Theodore Ts'o qui m'a rassuré et décidé à choisir ext4.

2015-04-03

Créer un NAS avec OpenMediaVault (OMV)

logo_omv

On a tous un vieux poste qui traine dans un garage et de plus en plus envie d’un petit NAS ou centralisé ses données. Je vous propose donc de voir comment transformer rapidement une vieille machine en NAS avec OpenMediaVault.

Pour ma part, j’ai installé OpenMediaVault sur une machine virtuelle créée sur un serveur dédié, ce que vous pouvez faire par exemple auprès de l’hébergeur 1&1. Mais la manip est exactement la même avec une machine. Ce qu’il faut savoir c’est qu’OpenMediaVault ne peut pas stocker les données sur le même disque que celui où il est installé. Il vous faudra donc minimum 2 disques durs!!

Installation de OMV

C’est ici que les choses commencent à devenir sympa : installer OMV est d’une simplicité déconcertante. Il vous suffira dans un premier temps de télécharger l’ISO de OpenMediaVault pour ensuite ou le graver soit en faire un live USB.

A partir de là l’installation se fait comme pour une « simple Debian », avec un lot de menu en moins, on spécifie sa langue, son type de clavier, le disque sur lequel installer le système et c’est parti.

2015-03-27 09_49_45-VM 102 ('LWOMV1') 2015-03-27 09_56_59-VM 102 ('LWOMV1') 2015-03-27 09_57_12-VM 102 ('LWOMV1') 2015-03-27 09_57_26-VM 102 ('LWOMV1')

Plus simple, y’a pas! Une fois l’installation terminée, la machine va démarrer et nous allons pouvoir nous y connecter avec le mot de passe par défaut du compte root : openmediavault. Un petit ifconfig nous donnera notre IP à partir de laquelle on pourra accéder à OMV en http.

On tape cette IP dans notre navigateur et on accède à son NAS. Il ne reste plus qu’à le paramétrer à l’aide du compte par défaut  (admin – mot de passe openmediavault).

2015-03-27 11_56_54-OpenMediaVault web administration interface - LWOMV1

On arrive alors sur une jolie Interface en html5/Sencha à partir de laquelle sans grande connaissance technique tout le monde pourra paramétrer son NAS. Tout se fera directement depuis un menu simple rangé en 5 catégories : Système, Stockage, Gestion des droits d’accès, Services et Diagnostiques.

2015-04-02 21_18_25-OpenMediaVault web administration interface - LWOMV1

Paramétrage de OMV

Il va falloir maintenant paramétrer la plateforme :

  • Changer le mot de passe administrateur depuis le menu Système > Paramètres généraux > Sécurité Administrateur.
  • Modifier son adresse IP au profit d’une IP fixe depuis le menu Système > Réseau 
  • Mettre à jour son système depuis le menu Système > Gestionnaire de mise à jour 
  • Créer une partition pour les partages depuis le menu Stockage > Systèmes de fichiers

Pour ce faire, on cliquera sur le disque dédié aux data, puis sur Créer et on pourra créer une partition dont on aura choisi le libellé (DATA dans mon cas) et le système de fichier.

2015-03-27 13_54_19-OpenMediaVault web administration interface - LWOMV1

  • Créer des utilisateurs depuis le menu Gestion des droits d’accès > Utilisateur
  • Activer les partages samba depuis le menu Services > SMB/CIFS
  • Créer/gérer les partages depuis le menu Gestion des droits d’accès > Dossiers partagés

Si vous voulez plus d’assistances sur ces quelques étapes, je vous conseille ce guide très complet de gamerzone.

 

Notez que si vous désirez ouvrir votre NAS sur l’extérieur, je vous conseille vivement d’activer le SSL et l’authentification htts depuis le menu Système > Certificats !

 

Activer le dépot OMV-Extras.org

Pour ajouter quelques fonctionnalités supplémentaires à votre plateforme OMV, vous pouvez ajouter un dépot suppélmentaire : OVM-extras.org. Pour ce faire, il vous faudra télécharger le fichier deb de OMV-extras.

Le dépôt va s’installer depuis le menu Système > Plugins > Télécharger . Le dépot sera alors disponible sous la forme d’un plugin à activer.

2015-04-02 21_55_07-OpenMediaVault web administration interface - LWOMV1

Après activation du plugin, il pourra être géré depuis Système > OMV-extras.org. Une fois ce dépôt installé, de nouveaux plugins seront disponibles comme par exemple :

  • openmediavault-transmissionbt qui vous permettra de gérer vos téléchargement torrent
  • openmediavault-teamspeak pour héberger un serveur teamspeak
  • openmediavault-minidlna pour diffuser en DLNA ces média sur son réseau
  • openmediavault-roundcube pour gérer ses mails depuis un webmail open-source et efficace
  • openmediavault-owncloud pour partager ses données partagée sous la forme d’un cloud Owncloud (que je vous ai déjà présenté ici)

Bref, il y a du beau potentiel!

 

OMV au quotidien

OpenMediaVault est très efficace de fonctionnement et sa rapidité est un vrai plaisir. Le hic avec ce genre de solution est par contre la perte de contrôle qui rendra la maintenance plus difficile en cas de dysfonctionnement.

Par contre, un truc plutôt sympa avec OMV c’est la qualité des débits d’accès aux données, bien supérieure à ce qu’offrent certains NAS (2Mo/s).

debit_OMV

Bref, j’espère que ce petit article vous donnera envie de goûter à l’usage de OMV. C’est un très bon outil que je vous encourage à essayer ; en plus c’est gratuit et opensource!

2015-04-02

Utiliser diaspora* avec classe : flat design


Ce réseau évolue, c'est indéniable : l'équipe de dev s'acharne sur Github pour faire avancer le code principal en prévision de la prochaine version, en approche rapide (la 0.5 RC est disponible), mais il n'y a pas que ça ! Il existe des bidouilleurs qui s'amusent à changer le style de notre réseau adoré : Dorian Millasseau est un de ceux là.

Il vient de nous sortir une version flat design de diaspora*. Le boulot vaut le coup d’œil :



Pas mal quand même ! Personnellement, j'utilise son travail avec le plus grand plaisir. Vous le voulez aussi ? Suivez le guide !

- Installer Stylish

Simple, cliquez ici pour installer l'extension.

- Récupérer le code du thème

Le code du thème est disponible ici.

- Adapter le thème pour votre pod

Ensuite, pensez à changer la ligne 101 du thème, via l’éditeur de Stylish, pour faire apparaitre en clair le nom de votre pod.

- Appliquer le thème

Enregistrez le tout, et c'est terminé.

Voila, tout simplement. Les goûts et les couleurs, j'en parlerai pas, mais je serais ravi de pouvoir utiliser un thème de ta création, toi, lecteur doué en CSS.

A tantôt sur d*, un lien vers mon profil est disponible en haut à droite de ce blog et si tu veux suivre mes posts publics, il y a un flux Atom pour ça. ;-)


<noscript></noscript>

2015-03-30

Libriste à la recherche d'un boulot ou d'un stage ? Lolix v2 en approche


Lolix.org... je lui en dois une à ce site. Si vous ne le connaissez pas, sachez qu'il s'agit d'un site de recherche et d'offre d'emplois, de stages, de missions et j'en passe, pour libristes. Tout ce qui se passe sur ce site gravite autour du libre. Quand vous êtes un extrémiste comme moi, lorsque vous cherchez de quoi bosser, vous passez par Lolix.org. Pour la petite histoire, c'est ce que j'ai fait il y a de cela quelques mois et j'ai trouvé ce que je voulais : une entreprise, du libre, des sous. Que demander de plus ?

Lolix, c'est aussi un site extrêmement moche. Y'a pas à chipoter, la version actuelle traîne une charte graphique qui donnerait une crise cardiaque au premier venu.



Les gars de Lolix sont au courant. C'est pour ça qu'ils bossent sur une v2 depuis de longs, très longs mois : 14 mois, après le succès de la campagne Ulule, que j'attendais des nouvelles !

Une démonstration de la nouvelle charte graphique est en ligne. Ce n'est pas fonctionnel, c'est juste là pour montrer l'état d'avancement du projet.



On note bien une incroyable amélioration, vous ne trouvez pas ?

Le boulot n'est pas fini, mais je trouve déjà le résultat très chouette. Si vous, développeurs ouebs et python-django, vous sentez motivés pour filer un coup de main, le dépôt Gitlab est ouvert à vos contributions et remarques.

Ce site mérite qu'on s'y attarde, qu'on s'en serve, qu'on l'apprécie. Il offre un vrai service impeccable. Faites passer le mot, utilisez-le et contribuez !

Encore merci Lolix ;-)

[Source]

<noscript></noscript>

2015-03-29

Astuces du dimanche #2


Le hasard est si bien fait qu'il m'a proposé de naviguer vers un site web dont l'accès est officiellement bloqué. N'aimant pas qu'on décide à ma place ce qu'il faut ou pas faire, voici une solution pour les utilisateurs des dérivés de Debian, facilement adaptable pour toutes les distributions.

Astuce 1 : Le filtrage

Installer bind9

On installe son propre serveur DNS sur sa machine :
aptitude install bind9

Configurer son utilisation

  • Commentez toutes les lignes présentes dans votre /etc/resolv.conf et n'y laissez que nameserver 127.0.0.1.
  • Indiquez à votre gestionnaire de connexion de ne plus se servir d'un autre DNS que celui que vous venez d'installer.


Remarquez que j'ai viré la recherche automatique de DNS et que j'ai ajouté l'IP 127.0.0.1.

Redémarrez votre gestionnaire de connexion et le tour est joué. J'ai réussi à aborder le galion.

Astuce 2 : ownCloud et le .htaccess perdu

L'autre astuce vient des soucis rencontrés pendant une installation manuelle de ownCloud. Si, après la configuration du compte administrateur et de la base de donnée, l'installateur vous annonce que vous n'avez pas la bonne version du .htaccess :

.htaccess file has the wrong version. Please upload the correct version. Maybe you forgot to replace it after updating?

Voici ma solution :
  • Allez prendre le .htaccess directement dans le dépôt Github de votre version d'ownCloud. Par ici pour la 8.0.2.
  • Et créez-le avec votre éditeur de texte préféré (emacs!) à la racine de votre installation de ownCloud. N'oubliez pas de lui donner les bons droits.

Reprenez l'installation de zéro, en vidant la base de données, si vous ne voulez pas vous prendre un "Nom d'utilisateur déjà utilisé", et le tour est joué.

Voilà voilà. En espérant que ça vous aide aussi.


<noscript></noscript>

2015-03-28

JAH-2 – De la difficulté de bien choisir son matériel

Journal de bord du capitaine :
Date : 15 décembre 2009
Lieu : Perdu dans le cyber espace

Prendre la décision de me lancer dans l'auto-hébergement fut la partie simple de cette aventure, car c'est bien de ça qu'il s'agit : une aventure. Moi-même, face à ma machine, à mes problèmes, cherchant à faire par moi-même, avec ce qu'on me donne par défaut avant de demander "à ceux qui savent". La première étape fut de choisir mon matériel.

Règle d'or de l'informatique (et principe que l'on devrait appliquer plus souvent) : commencer par bien définir ses besoins !
Quel est mon projet ? Me faire mon serveur personnel pour faire de l'auto-hébergement; c'est à dire : serveur de messagerie électronique, messagerie instantanée et par la suite peut-être un petit wiki et/ou blog. Ce serveur sera à priori toujours allumé et toujours connecté au réseau, donc administré à distance, donc nul besoin de périphériques type écran, clavier et souris. Je ne compte pas faire de jeux avec, ni de multimédia (visionner des films en Haute Définition ou autres) donc je n'aurais besoin ni de grosse puissance de calcul, ni d'accélération graphique puissante; ce qui exclu toutes les solutions à base de nvidia Ion par exemple (très bonne technologie au demeurant mais ne correspondant pas à mes besoins).

Il me fallait donc choisir un processeur basse consommation, un disque dur SSD, une carte mère (la plus silencieuse possible) pouvant accueillir le dit processeur, de la mémoire vive véloce (afin d'avoir un serveur le plus réactif possible) et bien sur un boîtier petit, silencieux et discret.
Une fois faites ma liste de courses, comment bien choisir ? Et bien tout simplement en commençant par faire un petit tour de ce qui existe et lire les tests et comparatifs les plus récents possible. Sans oublier, bien sur, de jeter un œil aux annonces des futures sorties. Acheter un produit obsolète la semaine suivante, c'est vexant. Les sites tels que hardware.fr sont des mines d'or dans ce type de recherche, en général je lis un de leur comparatifs, puis me renseigne sur internet sur les différents modèles du comparatifs, ce qui m'amène à lire de nouveaux tests avec de nouveaux modèles etc. Oui je sais, c'est un peu la partie chiante, il faut lire ! Et des trucs qu'on comprend pas toujours en plus. Dans ce cas, il ne faut pas hésiter à se renseigner sur tel ou tel terme ou technologie; le choix final se fera ainsi de manière plus éclairé. En général, assez rapidement, au bout de 2-3 heures, certaines marques et/ou modèles commencent à émerger.

J'ai d'abord choisi mon processeur : un Intel Atom 330. J'avoue toujours avoir eu un petit coup de cœur pour Intel (même si du côté de mon pc de bureau, je me suis permis de tester AMD) et puis, il faut bien l'avouer, il correspondait parfaitement aussi bien à mes besoins, qu'à mon budget. La carte mère fut alors rapidement trouvée : une Intel D945GCLF2[1], avec un tout petit ventilateur. J'avoue avoir longtemps hésité avec une carte mère à refroidissement entièrement passif (sans ventilateurs) mais le budget était un peu plus important.

Une barrette Kingston de 2 Go, cadencée à 533 Mhz, fera parfaitement l'affaire pour un serveur de ce type, Kingston étant réputé pour ses garantie à vie (10 ans en France !) et la qualité de ses produits.

Le plus dur fut, sans conteste, le choix du disque dur. Cette technologie étant encore jeune, les modèles se multiplient à vitesse grand V; chaque modèle comblant une partie des lacunes de son prédécesseur. Lors de mes recherches j'ai dû m'improviser expert en SSD en lisant moult articles et comparatifs sur les différentes technologies mises en œuvre. Pour faire un court résumé et sans entrer dans les détails : la technologie SLC ou MLC jouera sur la durée de vie (la vie d'un disque SSD étant limitée à un nombre maximal de cycle de lecture/écriture), le contrôleur aura son importance sur les performances (la seconde génération à base d'Indilinx est nettement supérieure à la première), enfin, choisir un disque d'une marque qui assure un suivi technologique de ses produits (par des mises à jours de firmware par exemple) est clairement un plus.

Mon choix s'est arrêté sur un OCZ Vertex de 30 Go. Faisant partie de la seconde génération de SSD, il résout, en partie, le problème de la perte de performance observée suite à l'usage prolongé d'un SSD (toutes marques confondues), grâce, notamment, à des firmwares de plus en plus efficaces (gestion des instructions TRIM par exemple), d'où l'importance du constructeur dont je parlais précédemment. Les forums OCZ sont un exemple de communauté active et passionnée[2], et on y trouve de l'aide pour toutes les plateformes !
Au moment de ma recherche (septembre 2009), les disques SLC, à durée de vie supérieure, offraient un rapport (performances,capacité)/prix désastreux. J'ai donc choisi, sans remords, un disque MLC dont, à mon humble avis, la mort n'aura pas lieu avant son remplacement dans plusieurs années. L'autre marque qui avait retenu mon attention était Intel, mais la différence de performances ne justifiait pas, à mes yeux, la différence de prix. De plus, le suivi technologique semblait plus léger que chez OCZ.

Le lecteur attentif aura remarqué que je n'ai pas pris de produits sans-marques (les fameux "no-name") qui sont parfois tentant à cause de leur faible prix. Mais, en informatique, la qualité correspond souvent (toujours ?) au prix que l'on paie. Donc, pour un serveur destiné à contenir mes données personnelles, j'ai, logiquement, fait le choix de la qualité !

Carte-mère et processeur, mémoire vive, disque dur, tout les organes internes de mon serveur était là, restait à lui choisir une jolie enveloppe corporelle, et le choix fut rapide : un boîtier Antec ISK 300-65. Cette marque étant connu notamment pour le silence de ses boîtiers cela me convenait parfaitement. Il était, de plus, fourni avec une petite alimentation parfaite pour mon usage, le ventilateur du boîtier était à vitesse réglable et, surtout, sa petite frimousse noire m'a fait fondre instantanément et assurerait sa discrétion et sa sobriété dans mon intérieur.

Une fois les composants finaux choisis, un rapide tour d'horizon des divers fournisseurs sur Internet me permis d'en trouver un qui avait en stock ce que je recherchais, à prix raisonnable. Une autre recherche me permis, en quelques clics, d'obtenir un bon de réduction pour ce revendeur, allégeant d'autant plus ma facture. Comme prévu, la douloureuse fut inférieure à 300 € ce qui était ma limite maximale de budget.

Encore un peu de patience et les choses sérieuses allaient pouvoir commencer ...

Prochaine entrée du journal : De la préparation du disque dur

Notes

[1] Les spécifications techniques de la D945GCLF2 sont disponibles sur le site d'Intel.

[2] Les mises à jour des firmwares des SSD OCZ sont publiées sur leur forum.

2015-03-26

ownCloud pour sa partie serveur pourrait laisser tomber le support de Windows




La nouvelle va se répandre assez rapidement maintenant : ownCloud, le merveilleux outil qui permet de monter son informatique dans les nuages pourrait arrêter de supporter les serveurs sous Windows. On ne parle pas du client de synchronisation mais bien du serveur.

D’où je sors ça ? Des réseaux sociaux via le compte officiel diaspora* et plus particulièrement ce message. Au passage, remarquez que je vous transmets deux liens différents pointant vers le même contenu, la belle prouesse de ce réseau social.

Ce message, donc, est le suivant : Let us know what you run #ownCloud on: #Windows or #Linux and if on windows, could you move to Linux (like, in a VM or something) if Windows was no longer supported ?

En français : Dites-nous sur quoi vous faites tourner owmCloud : Windows, Linux et si c'est Windows, pourriez-vous passer à Linux (en VM ou autre) si Windows n’était plus supporté ?

Question simple mais il a quand même fallu que les responsables du projet précisent qu'elle ne concerne que la version serveur et rien d'autre. Sur diaspora*, il n'y a encore personne se réclamant de Windows, rien d’étonnant. Dites-moi si d'autres sur d'autres réseaux parlent de Windows, j'suis curieux.

Ca doit traîner dans la tète des dev' depuis pas mal de temps s'ils ont décidé de faire part de leurs états d’âme en public. D’après ce message, ils racontent que c'est une plaie de supporter le système d'exploitation de Redmond et que peu de gens s'en servent. Un abandon serait alors logique.

Je ne suis pas impartial : je me sers de GNU/Linux, je travaille avec GNU/Linux, je me détends avec GNU/Linux et c'est naturellement que je dis qu’abandonner Windows ne serait pas un mal. En plus, si on suit l’actualité de Microsoft, on se demande bien où sont les nouveautés côté serveur ? On parle beaucoup du bureau, des tablettes, des téléphones mais rien au sujet des serveurs.


<noscript></noscript>

2015-03-25

Journée du Libre à Nancy le 28 mars 2015


Ah, Nancy ! Avant de me retrouver à Paris au retour de mon année en Inde, j’étais un nancéien. Que de souvenirs, et dans ceux-ci, on trouve les gars de Mirabellug. Nan, je n'ai pas souvent participé à leurs réunions, mais je suivais leur activité. C'est donc avec plaisir que je vous rappelle, amis lorrains, qu'il va y avoir une Journée du Libre ce samedi 28 mars.



Au programme, des démonstrations, des ateliers et Framasky de Framasoft pour une conférence sur le thème de la dégooglelisasion d'internet.

N’hésitez pas à aller y faire un tour !


<noscript></noscript>

2015-03-21

JAH-1 – Du pourquoi

Journal de bord du capitaine :
Date : 2 décembre 2009
Lieu : Perdu dans le cyber espace

Enfin ! Ça y est ... Je me suis lancé, tout seul, comme un grand. Mon projet : faire de l'Internet ! Du vrai, pas du minitel 2.0 comme l'explique si bien Benjamin Bayart [1]. Devenir mon propre hébergeur, voilà un projet ambitieux !

D'où vient celle lubie ? Tout simplement d'un ras le bol et d'une peur. Partout, tout le monde expose sa vie sur des pages web : la grande course des contacts sur Facebook, la galerie d'art personnelle des photos de la communion du petit neveu sur Picasa, le "tweet" instantané pour tenir au courant des dizaines/milliers/millions de suiveurs de la dernière tache de chocolat sur son pantalon blanc acheté sur ventes-privees.com, le webmail ultra perfectionné (avec chat et vidéo intégré) qui permet d'avoir ses mails, ses amis et ses emmerdes accessibles partout, n'importe quand. Le culte de l'immédiat, voilà la religion du 21ème siècle.

Aujourd'hui, on ne répond plus "Oui !" à l'amoureux transit qui tend une bague à genoux devant vous, mais on court changer son statut facebook pour que tout le monde sache (y compris lui, qui poireaute toujours !) qu'on passe de "célibataire" à "fiancée". Sauf qu'à force de vouloir tenir la terre entière informée, instantanément, du moindre mickey qu'on sort avec extase de sa protubérance nasale, on oublie un peu trop vite que la précipitation est souvent mauvaise conseillère. Et si grâce à tout ces merveilleux outils modernes, tout mes cybers amis peuvent savoir ce que je fais, le monde entier le sait aussi ... et une fois mes informations personnelles sur un réseau que je ne contrôle pas : tout est fini, rien ne s'oublie, pour le meilleur et pour le pire ...

Le quidam moyen aura tendance à protester à l'apparition de nouvelles caméras de vidéo surveillance, à l'angle de sa rue commerçante favorite, sous prétexte qu'on viole sa vie privée, qu'elle n'appartient qu'à lui, et que ça ne regarde personne qui il va bécoter à l'ombre des réverbères pendant que bobonne prépare la tambouille et torche le petit dernier, non mais ! Mais donnez lui la possibilité de la raconter, sa vie privée : son passé, ses projets, ses secrets, ses désirs, ses infidélités, ses mycoses au pied ... et bien il le fera avec le plus grand plaisir ! En plus il vous dira merci, vous fera de la pub et, grand con comme il est, il ira même parfois jusqu'à payer pour ça; le tout bien sur sans se demander si sa vie lui appartient encore.

En effet, si je suis à la pointe de la cyber communication, que tout les réseaux, dit "sociaux", à usage plus ou moins professionnel, savent qui je suis, que j'ai un compte chez tout les cybers marchands, que je demande toujours aux même de m'aider à trouver quelque chose, que j'aime bien rentrer toutes mes informations "personnelles" à droite et à gauche pour qu'on me propose : des lettres d'informations personnalisées, des pubs qui m'intéressent dans le marge de mes sites favoris et qu'on corrige mes probables erreurs de frappe lors de mes recherches "pour mon bien et pour me faciliter la vie" ; que me reste-t-il ? Quel est encore la part de moi qui n'est censée appartenir qu'à moi ? Mes goûts, mes secrets, mes affinités, tout mes faits et gestes sont librement consultables sur la place publique. Est-il dès lors étonnant, qu'au cours de mon prochain entretien d'embauche, le recruteur sache quels extraits d'alambic j'ai ingéré samedi dernier et par quel trou ils sont ressortis quelques heures plus tard, le tout, preuves photographiques à l'appui ?

Nous sommes ici face à deux problèmes :

  • L'ignorance (l'absurdité ?) des utilisateurs d'un service dont ils ne s'interrogent pas sur le fonctionnement et sur les conséquences
  • Le contrôle des données que l'on souhaite partager avec quelques cyber-amis

Ma misanthropie chronique me souffle que pour le premier problème seul Darwin pourra faire quelque chose, néanmoins le second problème peut-être attaqué de front, des solutions existent, et on peut les déterminer, contrairement à ce fainéant de Cauchy qui se contentait de démontrer leur existence !

La première notion essentielle dont il faut être persuadé : "Ce qui est à moi doit être chez moi." Il ne viendrai à l'idée de personne d'aller stocker ses photos de vacances chez un inconnu qui habite en centre ville, sous prétexte que les trois pèlerins que mes tribulations estivales intéressent sont plus près du centre ville que de chez moi. Non ! Si je veux que des amis puissent voir une de mes photos, je dois la partager depuis mon ordinateur personnel; c'est cela Internet : un réseau acentré (qui n'a pas de centre, notion à distinguer de "décentré"), l'intelligence, le contenu, n'est pas dans un centre que tout le monde peut consulter mais en périphérie d'un maillage reliant, directement, entre eux des ordinateurs.

Si je fais de l'Internet avec mon ordinateur, et pas du minitel, si j'éteins mon ordinateur : Internet est diminué. C'est ça faire de l'Internet, faire Internet, être une partie de lui, contribuer à cet immense maillage en apportant ma petite contribution aussi modeste soit-elle. Ce qui est vrai pour mes photos, l'est pour tout autre contenu m'appartenant : la poste transporte ma correspondance, elle ne conserve pas mon courrier dans ses locaux en me laissant le droit de les consulter "librement", pourquoi n'en serait-il pas de même pour mon courrier électronique ? Pourquoi devrait-il être sur les ordinateurs de mon Fournisseur d'Accès à Internet (FAI) qui s'octroie par la même, le droit d'en lire le contenu et de l'utiliser à des fins commerciales. Comment ça ? Personne ne m'a prévenu ! Ah ben si c'était marqué dans les fameuses Conditions d'Utilisation que personne ne lie !

Ok ! Admettons qu'il faille garder chez moi ce qui n'est pas censé être chez le voisin, mais ça implique d'acheter un ordinateur exprès pour ça (un serveur comme disent les vrais pas rasés) et de le laisser allumé tout le temps ! C'est cher, pas écologique et ça fait du bruit ! Deuxième notion essentielle : "L'auto-hébergement c'est pas vrai que c'est cher et pas écolo".
Oui, la liberté à un prix, c'est certain, mais à combien peut-on évaluer sa vie privée ? L'achat d'un pc et la facture de sa consommation électrique ne sont rien au regard des enjeux dont il est ici question.

Par ailleurs, la récente explosion de la mode de "netbook" (ces ultra portable soit-disant "low-cost") joue indéniablement en faveur de l'auto-hébergement. En effet, les fabricants de processeurs (les fondeurs, comme on dit dans le métier) se sont rués sur ce créneau et ont commencé la bataille du : "Le mien consomme moins que le tien, du coup, avec la même batterie il tient plus longtemps". Même si notre serveur ne tournera pas sur batterie, cette consommation amoindrie ne peut qu'être bénéfique pour notre portefeuille. Effet non-négligeable de la faible consommation des processeurs : une température moindre, et donc un système de refroidissement minimaliste, réduisant ainsi quasi à néant le problème de la nuisance sonore.

Autre technologie en plein essor : le disque SSD (pour Solid State Drive), pour la faire courte: on peut maintenant remplacer, de manière fiable, son ancien disque dur classique (qui fait du bruit et qui consomme beaucoup) par une grosse clé USB, qui ne fait pas de bruit et consomme moins qu'un moineau africain en période de sécheresse. Seul inconvénient : à prix équivalent, l'espace de stockage du SSD sera nettement moindre; mais toujours grandement suffisant pour faire de l'auto-hébergement, donc tout va bien !

Bon c'est bien beau tout ça : il faut garder le contrôle et la propriété sur mes données et ma vie, et la technologie pour le faire existe; mais une fois que j'ai mon pc j'installe quoi dessus ? Et comment je le configure ? C'est dur ! Troisième notion essentielle : "Avec un minimum de patience et de persévérance, on peut tout faire". La technologie matérielle existe et n'est pas très chère. Concernant la partie logicielle, elle est accessible avec un minimum de connaissances en informatique, pour peu qu'on prenne le temps de lire la documentation, les manuels et autre tutoriels fournis par les développeurs. Sans parler des divers sites internet, forums et salons de discussion remplis de gens prêt à aider et à nous renseigner, mais pas à faire à notre place !

Je remercie au passage Tanguy Ortolo pour son wiki sur l'auto-hébergement[2] qui a été la pichenette qui m'a décidé à sauter le pas. Toutes les informations nécessaires pour se lancer dans l'auto-hébergement étant réuni en un seul endroit, et dans la langue de Molière en plus, il n'y a même plus l'excuse de devoir les chercher sur le réseau.

Pour conclure cette auto-masturbation cérébrale, dont la diarrhée verbale résultante ne sera sans doute jamais lue par quiconque, à part d'éventuels relecteurs, je répondrai à cette simple question : "Pourquoi ce journal ?" Pour deux raisons en fait :

  • La première étant de garder, pour moi, une trace de tout ce que je fais et des ressources qui m'ont été nécessaire pour le faire. Internet étant une entité mouvante, nul n'a la moindre idée de combien de temps une information restera disponible là où on l'a trouvé la première fois; et le coup du "si j'ai besoin de le refaire dans 3 ans je me rappellerai comment j'ai fais" ça fait longtemps que j'en suis revenu !
  • La deuxième raison étant de publier ce journal sur mon site personnel, dans l'hypothèse où, peut-être, un jour, quelqu'un tombera dessus et qu'il décidera à son tour de se lancer dans l'aventure. Si personne ne le lit et bien ce n'est pas grave, la première raison justifie à elle seule ce travail. Libre à vous de confier votre vie et vos couilles à Google et ses amis, moi je suis en train de préparer les papiers du divorce !

Prochaine entrée du journal : De la difficulté de bien choisir son matériel

Notes

[1] Benjamin Bayart - Internet Libre ou Minitel 2.0 ?

[2] L'ouverture de ce wiki a été annoncé par Tanguy dans une dépêche sur linuxfr le 08 juillet 2009.

2015-03-20

Note importante sur Popcorn Time





Depuis l'article de The WIRED sur Popcorn Time, on voit débouler un nombre incalculable d'articles en français sur le moyen le plus agréable au monde de regarder des films, des séries et des animés. Ces articles recopient bêtement le contenu de l'article anglais sans faire attention aux liens qu'ils fournissent. Typiquement, faire pointer les gens vers Popcorn-time.se et non pas sur Popcorntime.io me pose un gros problème.

Popcorn-Time.se ne propose pas de dépôt git pour facilement regarder ce qu'il se passe et comment ça se passe, contrairement à Popcorntime.io qui héberge son propre Gitlab.

Ces deux site fournissent un logiciel libre hérité d'une même base, mais l'un est clairement plus transparent que l'autre. Je suppose que le fait que les journalistes aient réussi à choper un développeur de la version .se pour lui poser des questions n'est pas étranger à cette mise en avant maladroite.

Mon coté méfiant passe peut-être pour de la parano, mais on n'entend pas que du bien des forks qui ont succédé à Popcorn Time premier du nom.


<noscript></noscript>

...et le P2P redevient une technologie


Des années, mais vraiment des années qu'on nous gave avec la confusion : échange pair à pair = piratage. Bon d'accord, son utilisation intensive dans le partage de fichiers pas vraiment légaux est un fait. Faut dire que c'est simple, rapide, efficace et super économique, tout ce que les plate-formes légales n'offrent absolument pas.

Quand j'annonce que le P2P redevient une technologie, c'est parce que c'est la première chose à laquelle j'ai pensé en lisant cet article sur le dépôt par Apple d'un brevet pour "légaliser" son utilisation. Ca m'avait fait tilter, mais pas plus. Apple bouffe une quantité dingue de données via iTunes, y mettre un peu de pair à pair dedans soulagera sans nul doute la facture. Le truc remarquable, c'est qu'on parle de P2P dans un cadre "légal".

C'est vraiment en lisant que Windows 10 pourra se servir de P2P pour diffuser ses mises à jour que j'ai sursauté. Nom d'une pipe, comme dirait l'autre, est-ce que ce système de partage serait de nouveau devenu une technologie et pas un moyen de piratage ?!

Faut croire que oui. C'est pas trop tôt.

Ces nouvelles remontent un peu le moral, et ça fait rire aussi. Avec les histoires de fournisseurs de bande passante qui veulent taxer/escroquer les entreprises qui bossent avec leurs tuyaux, le P2P a vraiment de beaux jours devant lui...

... mais aussi la HADOPI, qui va rigoler en voyant le trafic exploser !



<noscript></noscript>

2015-03-19

Don du mois : ipython et jupyter

Ce post s'inscrit dans la série des dons pour vous donner envie de contribuer même très modestement à des logiciels libres. Les petites pierres font les grands édifices.

C'est au tour de Ipython, une interface de type console et web pour python et d'autres langages. Le montant de ce don est de $6. Les raisons de ce soutien :

  • Je l'utilise au quotidien avec Python, notamment pour les notebooks qui me facilite l'analyse et la visualisation de données. Ca a grandement amélioré mon travail.
  • Ipython donne une réelle valeur ajoutée à python par une approche complémentaire pour résoudre un problème. En effet, je n'effectue pas un traitement d'images comme l'écriture d'une bibliothèque logicielle.
  • Ipython a annoncé qu'il allait se découper en deux avec Jupyter, car Ipython gère aussi d'autres langages comme perl ou ruby. C'est donc un projet de très grande ampleur et qui a un fort potentiel.
  • Plusieurs financements viennent aider le développement, ce qui permet d'avoir 6 développeurs à plein temps.
  • L'intégration dans un navigateur en fait une solution facilement auto-hébergeable.

Pour donner à Ipython/Jupyter.

Aide à une noob par reverse SSH

Imaginons que Alice veuille se faire dépanner par Bob.

Problème, Bob ne peut pas se connecter directement à l’ordinateur d’Alice à cause d’un routeur NAT (une box ADSL, un réseau d’entreprise, un réseau wifi public, etc…).

Il existe un moyen assez simple pour Alice de se faire dépanner grâce à SSH.

Bob a un peu de travail avant

Bob va créer sur sa machine un utilisateur aux droits très restreints. Alice va utiliser celui-ci pour faire un tunnel inversé. On commence par la création du nouvel utilisateur dénommé « help » :

# adduser help

Dans /etc/ssh/sshd_config faites un règle spéciale pour cet utilisateur :

Match User help
   #AllowTcpForwarding yes
   X11Forwarding no
   PermitTunnel no
   GatewayPorts no
   AllowAgentForwarding no
   PermitOpen localhost:60000
   ForceCommand echo 'Only reverse port forwarding allowed'

En gros, l’utilisateur ne peut qu’écouter sur le port 60000 local.

Authentification par clé de chiffrement

Bob doit avoir une paire de clés de chiffrement SSH.
Ensuite il doit transmettre sa clé publique à Alice. Pour cela, Bob doit envoyer son fichier ~/.ssh/id_dsa.pub à Alice.

Alice doit vérifier avec Bob que la clé reçue est bien la bonne. Pourquoi? Parce qu’Alice va maintenant autoriser le détenteur de la clé privée correspondante (Bob logiquement) à se connecter à son compte avoir son mot de passe. Pour cela, Alice doit ajouter le contenu du fichier « id_dsa.pub » à son fichier ~/.ssh/authorized_keys:

$ echo id_dsa.pub >> ~/.ssh/authorized_keys

Note, le fichier ~/.ssh/authorized_keys doit se terminer par un ligne vide.

Alice doit ensuite copier-coller ceci en dans un terminal en remplacant l’IP de Bob:

$ ssh -R 60000:localhost:22 help@ip_de_bob

L’empreinte de la clé publique de la machine de Bob sera présentée. Tapez « yes ».

Le mot de passe à entrer est donné par Bob, c’est celui de l’utilisateur « help » que Bob a créé chez lui. Note pour Alice : le mot de passe ne s’affiche pas quand on le tape, c’est normal :)

Voila. c’est fini pour Alice.

Prise de contrôle

Bob peut ensuite se connecter à l’ordinateur d’Alice, sous le compte d’Alice sans connaitre le mot de passe d’Alice :

$ ssh -p 60000 alice@localhost

Critique

Cette technique est une alternative à Teamviewer pour Linux et Mac. Elle permet notamment d’avoir un accès confortable au terminal à distance et aux possibilités évoluées de SSH par la suite (partage de fichier par SFTP, redirection de port, proxy SOCKS pour naviguer sur le réseau local, VNC sécurisé, etc…).

Au début, je me suis dit que j’allais enfin tordre le cou au « man in the middle » de Teamviewer. Mais en réalité, il y a pas mal de failles de sécurité dans la mise en place de ce processus.

Premièrement, Alice doit vérifier et ajouter la clé publique de Bob. Pas facile ! Aussi, elle donne l’accès à ses fichiers pour se faire aider et n’aura aucun contrôle sur ce que fera Bob avec cet accès. Donc il faut une grande confiance dans Bob.

Ensuite, par quel canal est transmis la commande à taper? la clé publique de Bob? Comment est vérifiée l’authentification de la machine de Bob par Alice?

Il y a peut être moyen de wrapper tout ça dans un utilitaire avec une double authentification et une interface graphique qui affiche sur l’écran d’Alice un suivi en temps réel des commandes effectuées par Bob, des fichiers transférés… le tout sans nécessiter le mot de passe de session d’Alice. Mais ce sera peut être moins flexible pour Bob… (auto-complétion, sshfs, etc..)

J'aime(3)Ferme-la !(0)

2015-03-18

[Invité] Du libre en entreprise, cher, certes mais si personne ne le fait jamais…


L'ami Augier souhaite réagir au billet publié hier : Du libre en entreprise ? Non, pas encore. Voici donc ses mots et ses idées :

<style type="text/css">p { margin-bottom: 0.25cm; line-height: 120%; }a:link { }</style>
dada a appuyé dans son billet sur un point assez pertinent : le libre en entreprise, contrairement à ce qu'on pourrait penser, ça coûte cher.

Et c'est vrai. Parce que quand une entreprise s'équipe en logiciel libre ou s'auto-héberge, il faut penser à embaucher le gros barbu qui va bien pour maintenir tout le bousin et il faut payer des formations aux noobs de la boîte. Ceci entraînant cela, les sociétés préfèrent payer de la licence plutôt que de passer au libre parce que ça coûte moins cher.

… À court terme…

Parce qu'en fait, il faut voir le passage au libre comme un investissement de long terme. Certes, dans le bilan comptable de l'année, le coût de la licence sera moins élevé que le coût de la masse salariale, mais uniquement quand tout se passe bien. Si les choses commencent à tourner au vinaigre — par exemple si le glandu qui maintient la boîte aux lettres est un gros branleur — l'entreprise l'a dans l'os et va se retrouver avec du matériel disfonctionnel pendant des semaines, voire des mois avant que le branleur ne daigne mettre des rustines sur les fuites.

C'est là où je pense que dada prend le problème à l'envers. Sur un plan strictement financier, il n'y a pas photo. Sur un plan humain, on se retrouves avec des personnes qui se disent ingés, développeurs, ou admin sys mais qui sont en réalité incapable de taper la moindre ligne de commande. Rigolez pas, récemment, la boîte où je bosse a décidé de passer à Debian. C'est la galère…

Alors voilà le constat que je fais : passer au libre, ça coûte cher et c'est contraignant, certes. Mais si personne ne s'y met jamais, on se retrouve en fait avec une somme colossale de pertes en compétences.

Et c'est précisément le problème qu'illustre le Commit Strip que dada poste à la fin de sont billet : choisir de garder des licences, c'est choisir de laisser des compétences essentielles à l'entreprise s'accumuler dans les mains de quelques informaticiens brillants et quelques lobbys.

Si le produit de gestion des mails de Google est si bon, c'est précisément parce que personne d'autre que Google ne souhaite s'en soucier. Et pourtant, il est aujourd'hui courant dans les boîtes d'informatique d'interdire aux employés d'utiliser la messagerie d'entreprise pour s'échanger des données sensibles, un comble…

Mais j'ai bon espoir : nombre d'entreprises commencent à se rendre compte d'à quel point l'informatique est une question sensible et à quel points elles ont besoin de compétences.  Elles sont de moins en moins enclines à externaliser leur informatique. Et dans le même temps, on assiste à une poussée considérable du libre dans tous les domaines de l'informatique.

Moi je vous le dis : un jour, le libre dominera le monde ! Mais pas demain. Demain y'a conférence de Stallman.

Merci à lui ! Vous pouvez parcourir ses autres billets publiés sur le blog de Laurent Napias.


<noscript></noscript>

2015-03-17

Du libre en entreprise ? Non, pas encore


Eh oui, je sais que ça va vous énerver mais que voulez-vous ? Depuis que je bosse dans une Digital Agency parisienne, je côtoie des gens qui vivent au quotidien les principes économiques du monde professionnel. Alors, pourquoi ne serait-ce encore possible de passer au libre ? Essayons de voir ça en quelques points.

Le contexte

Là où je bosse, ils vendent du libre, principalement de l'EZ Publish, du Drupal, de l’hébergement et d'autres choses que je connais moins. Les serveurs tournent sous Debian et l'ambiance est franchement pas mal.

Les licences logiciels, c'est pas cher

Alors, ils ne le disent pas comme ça, mais c'est un constat. Le coût des licences est marginal par rapport à celui de la masse salariale. Cela ne veut pas dire qu'il ne faut pas faire attention, une dépense est une dépense et ça joue sur les résultats attendus en fin de mois. Le passage sous un environnement de travail libre n'est tout simplement pas une question de frais de licences : que ce soit les logiciels ou les systèmes d'exploitation. Ils payent des licences Windows, PHPStorm, VMWare, Google, Github, etc. Si on additionne le tout, ça ne pèse pas lourd quand on traîne presque une centaine de salariés.

S'auto-gérer

On pourrait penser que passer son infrastructure complète des services propriétaires à des services libres ou open source auto-hébergés serait une bonne idée. Pour le principe, ça l'est, mais, là encore, pas dans les chiffres. Utiliser les services de Google pour ses mails, ses agendas, le partage des fichiers, gérer les réunions et j'en passe ne coûte que peu d'argent. Il faut un homme ou deux pour les faire tourner et quelques euros pour passer des limites grands publics aux largesses du service professionnel.
Si on souhaite se servir des logiciels libres, ils faudrait bien plus que deux poilus pour les faire tourner, les maintenir et former les gens à leur utilisation. De plus, les services proprio se targuent d’être toujours disponibles, ou de ne pas rester en panne bien longtemps, sans coût pour ceux qui les utilisent. On n'entre pas dans le même cadre idyllique si son ownCloud crash (OC est un exemple) et qu'il faut réveiller le DevOps pour corriger la boulette qui a fait tomber l'organisation de la boite.
Si on parle des mails, c'est encore pire : avec toute la bonne volonté du monde, on pourrait avoir la meilleure installation possible mais rien n’empêchera Outlook, Gmail et les autres de vous balancer dans la corbeille de vos clients. C'est con quand même.
Note de consolation, la gestion des projets est faite via Redmine et ils envisagent Easy Redmine dans un futur proche.

La formation et l'habitude

Le truc qui me frustre le plus par sa réalité, c'est la conclusion d'une courte discussion que j'ai pu avoir sur l'adoption d'une distribution GNU/Linux pour les développeurs. Pour l'histoire, la majorité des gens bossent sous Windows et OSX. Pas moi, of course, mais en tant que DevOps, un terminal est un terminal. J'ai pas besoin de grand chose d'autre.
On se disait que ça serait chouette de virer les Windows pour mettre des Ubuntu. Simple, mais irréalisable. Les dev' ne sauront pas tous comment s'en sortir en cas de petits problèmes. Ils perdraient du temps, et le temps perdus, c'est foutu. Imaginez-vous dire à votre client que vous ne pouvez pas livrer à temps parce que la dernier mise à jour de l'OS des dev' à faire perdre des heures et des heures de taff. Mauvais, très mauvais délire.
On se rend bien compte ici de l'influence des habitudes, aussi mauvaise soient-elles, sur l’évolution d'une société. Les gens savent s'en sortir avec Windows alors on ne bouge pas. C'est tout. Un des derniers CommitStrip le résume très bien :


On peut malheureusement conclure que c'est un luxe de se servir d'outils libres pour les entreprises. En consolation, on peut se dire que ça sera peut-être possible dans plusieurs années, quand les développeurs sauront plus se servir de GNU/Linux et de son écosystème que des outils proprio et qu'ils se regrouperont pour s'en sortir. Vous allez me dire ça existe déjà, mais des exemples sont rares. En attendant, tant que je pourrais, je tenterais de pousser à l'adoption de solutions libres autant que possible !


<noscript></noscript>

2015-03-12

Créer une page de status avec Cachet

Savez-vous ce qu’est une page de status ? C’est simple, c’est une page qui agrège différentes informations (incidents, maintenances) et des mesures sur une platforme tout en conservant un historique. C’est pratique pour informer les gens lorsque justement vous rencontrez des soucis sur vos systèmes en production.

Une des références dans le domaine est StatusPage.io, il faudra tout de même s’acquitter d’un paiement mensuel de 29€ (ce que je trouve bien cher mais là n’est pas la questions). Mais si jamais vous voulez mettre en place une telle page pour votre architecture, que vous voulez l’héberger vous même ou que vous ne voulez pas payer pour un service tier, il existe une webapp open-source qui s’appelle Cachet développée en PHP et qui vous propose de faire cela simplement.

L’installation est bien documentée et heureusement parce que ce n’est pas forcément très simple à cause des dépendances utilisées et qu’il faut avoir composer d’installer sur la machine, mais rien de bien insurmontable au final pour qui bidouille un peu le PHP.

Après avoir fait l’installation et configuré des composants (un site web, une base de données, une API ou autre), vous pourrez obtenir une page dans le genre que j’ai fait pour tester.

Capture d'une page de status créée avec Cachet
Capture d'une page de status créée avec Cachet

Elle ressemble beaucoup à la page que l’on voit pour des services comme Github, Atlassian ou encore Disqus :

  • L’état des différents composants,
  • La liste des différents incidents par jour,
  • Des mesures de performances

Je ne suis pas pas sur de savoir si Cachet est capable de vérifier qu’un service est UP ou DOWN, j’ai été obligé de saisir les incidents à la main et de les marquer comme résolu, mais c’est peut être l’objectif de cet outil. Autre petit problème, je ne suis pas parvenu à afficher des mesures, mais c’est un projet encore en développement très actif c’est peut être un bug qui sera corrigé prochainement.

En conclusion, Cachet est une solution simple et efficace pour créer sa propre page de status pour soi et surtout pour l’héberger soi-même

Homepage du projet Cachet

2015-03-11

De RoundCube à RainLoop

Pour la consultation de mes mails, j’utilisais Roundcube via un paquet fourni par Synology que j’installais sur mon NAS afin de consulter mes mails via un navigateur. Cela va faire 2 ans que j’utilise Roundcube quotidiennement, je m’étais habitué à sa lenteur, n’ayant pas la fibre je blâmais ma connexion.

L’envie de remplacer Roundcube me trottait dans la tête depuis la fin d’année dernière, mais comme d’habitude le temps m’a empêché de le faire avant.

Pourquoi RainLoop ?

Tout simplemenet parce qu’il n’y a pas beaucoup de webmails modernes sur le marché aujourd’hui et je n’ai pas eu beaucoup de candidats à tester. En gros il n’y en avait que deux qui pouvaient m’intéresser.

Tout d’abord, j’ai testé MailPile mais comme il est toujours en bêta et que du coup certaines fonctionnalités me manquaient, j’ai passé mon tour.

Et ensuite il restait plus que RainLoop… Du coup, je ne peux que vous conseiller d’aller faire un tour sur la démo de RainLoop, c’est après avoir testé la démo que j’ai pris la décision de l’installer sur mon serveur, pour faire un test en conditions réelles.

L’installation

L’installation est très simple, bien documentée sur leur site et il ne m’aura pas fallu longtemps pour mettre en place un virtual host sur mon serveur nginx.

La configuration est aussi facile à réaliser puisqu’elle se passe dans le navigateur, mais si vous préférez le faire dans le terminal avec votre éditeur favori, c’est aussi possible. Le choix est libre mais le résultat sera le même ! Mention spéciale pour l’outil qui permet de configurer les serveurs IMAP et autres SMTP qui est très bien conçu et rend cette tâche, généralement fastidieuse, aisée puisqu’il est possible de tester la configuration en live.

Pour les mises à jour pas de panique, elles se font à partir de l’administration (une fois connecté en “admin”), ainsi une fois RainLoop installé, il est possible de le gérer entièrement via son navigateur ce qui est plutôt pas mal.

L’interface de RainLoop

Le gros point fort de RainLoop,c’est son interface graphique et l’expérience utilisateur qu’elle procure. C’est travaillé, efficace et simple à la fois. Pour moi, elle n’a pas grand chose à envier à un Gmail par exemple. Parmi les autres points que j’ai aimé, je peux citer :

  • la sensation de rapidité et de fluidité,
  • les nombreuses options disponibles,
  • la simplicité de la configuration,
  • l’éditeur qui est un bon compromis entre fonctionnalité et complexité

Si vous n’avez pas été voir la démo, voici une capture de RainLoop une fois que vous êtes authentifié.

Capture de la liste des messages de RainLoop
Capture de la liste des messages de RainLoop

Il y a des boutons pour agrandir, diminuer les différents panneaux du webmail, afin d’optimiser les informations visibles à l’écran. Par exemple, je cache toujours la barre de gauche qui contient les dossiers parce c’est une perte de place de la voir en entier sur un petit écran.

Une fois que l’on sélectionne un mail, bien évidement le panneau de droite change.

Capture lors de la lecture d'un message avec RainLoop
Capture lors de la lecture d'un message avec RainLoop

Ici encore, il y a des petites fonctions bien pensées, par exemple il y a un bouton pour revenir en haut du mail si le mail est un peu long (plus pratique que le scroll), le bouton à droite du header du mail se souvient de la dernière action que l’on a réalisé (ce qui évite d’afficher le menu contextuel à chaque fois) et surtout il y a une longue liste d’actions disponibles dans le menu contextuel…

Et enfin, le mode “édition de messages”, qui est aussi puissant que les autres modes.

Capture de la liste des messages de RainLoop
Capture de la liste des messages de RainLoop

Un premier point important est l’auto-complétion des adresses mails qui est vraiment très fiable et pratique à utiliser, le drag and drop fonctionne parfaitement. L’upload des images est aussi très implémenté avec le support du drag and drop à partir d’un élément du bureau. Autre fonctionnalité intéressante, la possibilité de minimiser la popin d’écriture de mail pour naviguer dans les mails afin de retrouver une information puis de faire ré-apparaitre la popin d’édition du mail dans l’état dans lequel vous l’aviez laissée. Vraiment pratique…

Et plus encore…

Je ne vous ai parlé que des fonctionnalités que j’utilise, mais RainLoop offre beaucoup d’autres options que je n’ai pas couvertes :

  • Support des scripts sieve,
  • Gestion multi-comptes,
  • Authentification avec Facebook, Twitter, Google (pas sur que ce soit vraiment utile),
  • Support des plugins,
  • Synchronisation des contacts avec un serveur CardDAV,
  • Gestion des dossiers.

Et même dans cette liste, j’en ai oublié…

Le webmail parfait ?

Non, RainLoop n’est pas exempt de défauts, mais rassurez-vous rien de très grave. Pour moi le plus gros défaut est lié à la recherche, car elle ne se fait que dans le dossier “courant” à l’instar de Gmail. Cela peut être un gros manque pour certains(si on se fie au nombre de votes sur ce thread), mais personnellement je fais avec, mes mails sont assez bien classés pour que je puisse deviner dans quel dossier le mail qui m’intéresse se trouve.

Ensuite, il y a certaines fonctions qui ne sont accessibles qu’aux utilisateurs payants, c’est dommage mais tout travail mérite salaire et puis la majorité de fonctions sont elles gratuites.

Et il y a un petit point d’ombre sur la légalité et l’avenir de RainLoop détaillé dans ce ticket Github, je ne suis pas un spécialiste donc je ne sais pas si l’auteur de RainLoop risque quelque chose, je vous laisserai seul juge.

Conclusion

Le gros point positif de RainLoop est son interface qui est vraiment clean, avec un fond uni RainLoop est extrêmement joli. La rapidité qu’apporte RainLoop n’est pas négligeable le développeur garde à l’esprit l’impact de ces développements sur la fluidité de son application.

Le développement suit son bonhomme de chemin et on voit assez souvent passer des versions bêta (que je vous déconseille d’installer) avec des nouvelles fonctionnalités.

Pour finir, j’utilise RainLoop depuis quelques semaines maintenant, au début j’avais gardé Roundcube dans un coin au cas j’ai un soucis, mais je viens de le désinstaller car RainLoop est fiable et j’en suis pleinement satisfait. Et je ne peux que vous conseiller de tester RainLoop si vous hébergez vous-même votre webmail.

Site de Rainloop

2015-03-10

Retour sur l’utilisation de Mumble

Dans un précédent article, j’ai installé un serveur Mumble en guise de solution de VoIP chiffrée. Voici mon retour d’utilisation :

Le serveur plante souvent, sans que j’en sache la raison. Ce ne m’arrive jamais en conversation mais le fait est que quand j’en ai besoin, le serveur est éteint et que je dois le relancer. Systemd ne voit pas que le service a planté et ne le relance pas automatiquement. -> Bug Debian #780300

Il n’y a pas de système de réduction d’écho performant. Cette fonctionnalité a l’air de dépendre du client et est souvent de mauvaise qualité. On s’entend parler avec un décalage ou pire, ça larsen à cause du bruit de fond qui est amplifié en boucle. En tout état de cause, on s’entend bien uniquement quand tout le monde a un casque avec micro.

J’ai essayé Firefox Hello. Ou plutôt j’ai tenté de l’essayer, j’ai jamais pu voir ou entendre mon correspondant.

Et vous, vous utilisez quoi?

J'aime(3)Ferme-la !(5)

Réflexion autour de mon nouvel hébergement

Entre deux tâches sur le Nas, je commence à me projeter sur la configuration du serveur d’hébergement. Je suis parti du constat que centraliser le tout n’est pas forcément une bonne idée. J’ai revu ma copie pour la réalisation de trois entités physiquement distinctes avec chacune un rôle différent pas plus :

  • Pare-feu
  • Stockage
  • Services hébergés

Les deux premières étant terminées, je commence donc l’étude de la troisième. Je sais déjà ce que je veux sur le plan matériel, peu encombrant, faible consommation électrique, le même cahier des charges que j’ai utilisé pour concevoir le pare-feu et le stockage. Mais sur le plan logiciel il me reste encore un choix à faire concernant le système hôte pour mes machines virtuelles. Est-ce que LXC sera adapté à mon utilisation ?

Au revoir donc proxmox et KVM, qui devient de plus en plus contraignant à utiliser, gourmand en ressources hôtes et n’est plus adapté à ma façon de travailler. Pour un particulier qui s’auto-héberge sur ses propres denier KVM c’est un peu la grosse artillerie pour chasser les moustiques. Je préfère de loin les performances et la facilité de mise en oeuvre de la virtualisation par conteneur. Adieu aussi proxmox, qui se tourne de plus en plus vers les professionnels, chose que je ne suis pas. J’utilisais proxmox depuis sa version 1.7. Au début elle jouait très bien son rôle, mais au fil des années je me suis senti de plus en plus restreint dans son utilisation. D’un avis général les distributions clef en mains spécialisées s’avèrent très utile et très formateur au début, mais rapidement je me trouve limité dans mon utilisation et je préfère dans ses cas là monter le “truc” à la main. Ce fut le cas pour mon Nas et c’est actuellement le cas pour le serveur de services hébergés.

Maintenant il ne me reste plus qu’a attendre le matériel, pour commencer les travaux sur lxc et étudier si une migration complète serait possible. Je me suis aussi penché un moment sur docker, mais celui-ci ne répondait pas à mes besoins de faire des isolations complètes de conteneurs virtuels et non d’isoler le fonctionnement d’un service ou d’une application.

D’après mes premières recherches et lectures lxc serait quand même beaucoup plus proche de ce que je faisais avec openvz. Celui-ci utilise directement les fonctionnalités noyau pour cloisonner les conteneurs et n’a pas besoin d’un noyau patché comme openVZ. Il est maintenu directement dans les dépôts Debian ce qui est un gros plus pour un Débianeu comme moi. Mais je n’ai pas encore essayé la bête pour me faire réellement une idée et voir s’il me convient. Je garde toujours le plan B openvz au cas où.

Cette réflexion est le point départ pour d’autres réflexions et articles à ce sujet. Un peu comme j’ai fait lors de création de mon serveur nas.

 

2015-03-08

Piwik, la statistique auto hébergée

Si vous voulez un compteur de visites un peut évolué sur votre site web, je vous conseille Piwik.

Ca donne des statistiques basiques : types de navigateurs, origine géographique des visiteurs, sites web de provenance, titre des pages visitées, heure des visites, etc…
Vous avez un historique de toutes ces statistiques au jour le jour et vous pouvez les suivre en temps réel.

Le compteur de visiteurs m’a l’air fiable, il ne compte pas les robots et ne surestime donc pas les chiffres. J’ai testé des plugins comme Statpress, SlimStat, Post view stats et Piwik est celui qui me donne le moins de visiteurs.

Il ne ralentit pas beaucoup les visites ou l’utilisation de WordPress contrairement aux plugins sus-cités.

Mais le plus important est que les statistiques que vous récoltez sur vos visiteurs ne sont partagées avec personne à part vous. Ainsi vous ne participez pas au suivi des internautes d’un site à l’autre en livrant les données de vos visiteurs à un site central (coucou GoogleAnalytics) qui recoupe tout ça pour retracer le parcours des internautes sur le web tout entier. (et ce n’est pour rigoler puisque que c’est leur business model)

Vous n’aurez pas beaucoup d’informations sur les mots clés utilisés dans les moteurs de recherche pour vous trouver. Ceci car Google, entre autres, utilise un page de transition afin de gommer le paramètres de l’URL de recherche. Ca donne un peu plus de vie privée aux internautes sur les sites web qu’ils visitent. Cependant, cela permet aussi à Google d’enregistrer sur quel lien vous avez cliqué… :D Du coup, puisque seul Google sait quels mots clés vous avez recherché, peut-être que cette info est disponible dans leur outil de statistique maison GoogleAnalytics? je n’ai pas la réponse à cette question ne l’ayant jamais utilisé.

Finalement, je m’en sers juste pour mesurer la popularité de mon blog. Pas vraiment fameuse à vrai dire (400 visiteurs journaliers lorsque je ne publie pas de nouveaux articles, 2000 quand un article a du succès)

L’installation se fait vraiment rapidement si vous êtes déjà autohébergé. J’ai été surpris par sa simplicité de mise en oeuvre et je l’aurais mis en place plus tôt si j’avais su cela au lieu de perdre du temps sur des alternatives.

J'aime(5)Ferme-la !(2)

JAH-0 – Journal d'un auto-hébergé

En décembre 2009, je me suis enfin décidé à sauter le pas : auto-héberger les services internet dont j'avais besoin. Cette aventure, commencée il y a plus de six ans maintenant, continue encore aujourd'hui et me passionne toujours autant.

Je n'aurais probablement jamais sauté le pas (ou en tout cas avec beaucoup plus de difficultés) sans le nombre incroyable de ressources et d'aides disponibles sur ce sujet sur l'ensemble du web et d'internet. Je me suis donc posé la question de comment rendre la pareille ? Comment à mon tour contribuer à ces ressources et permettre à d'autres de se lancer dans l'aventure ?

Ce « journal d'un auto-hébergé » a été ma réponse. Plutôt que de reproduire à l'identique les tutoriels que j'avais moi-même suivi, ou rédiger un énième billet de blog technique sans originalité, j'ai voulu simplement témoigner de mon parcours. Raconter mes succès et mes échecs autrement que par une suite de ligne de commandes sans explication ; sur un ton plus informel, comme on le raconterait à un ami ou à un journal intime.

Six ans après je me décide donc à publier ces quelques articles. Ce n'est pas toujours de la grande littérature, il y a des « trous temporels » et je trouve moi-même certains passages risibles en les relisant après toutes ces années, mais je tiens à les garder tels quels. Après tout, quelle serait la valeur d'un témoignage si on pouvait le modifier sans cesse …

2015-03-05

Don du mois : pitivi

Ce post s'inscrit dans la série des dons pour vous donner envie de contribuer même très modestement à des logiciels libres. Les petites pierres font les grands édifices.

Ce mois-ci (en fait le mois précédent, mais je n'ai pas eu le temps de faire le billet), ce fût pitivi, $5. Pitivi est un logiciel graphique de montage video. Les raisons sont les suivantes :

  • Un logiciel qui a de l'ambition.
  • Il a pour objectif de combler un manque réel dans le logiciel libre et c'est la source d'un reproche que j'entend fréquemment.
  • J'ai pu obtenir de l'aide des devs quand j'ai bêtement raté ma compilation.
  • La campagne n'a pas encore atteint son objectif et elle débloquera des nouvelles fonctionnalités.

Même si je n'utilise pas ce logiciel fréquemment, il m'a rendu quelques services et il est clairement utile selon moi pour les utilisateurs de solutions libres.

Pour donner à pitivi.

2015-03-04

Horde upgrade (avec pear standalone)

Cet article fait suite à l’article sur l’installation de Horde en standalone via pear.

Pour faire un upgrade d’horde on lance deux commande :

/var/www/horde/pear/pear -c /var/www/horde/pear.conf channel-update pecl.php.net
/var/www/horde/pear/pear -c /var/www/horde/pear.conf upgrade-all

Ensuite on va prendre un thé.

L’upgrade écrase le .htaccess où nous avions indiqué l’emplacement de nos libs pear. Il faut donc le re-éditer /var/www/horde/.htaccess

[...]
# Spécifie l'emplacement de pear
php_value include_path /var/www/horde/pear/php
SetEnv PHP_PEAR_SYSCONF_DIR /var/www/horde

Ensuite il faut se connecter à horde en admin (http://horde.chezvous.com/admin/config) et lancer la mise à jours des configurations et des schémas de bases (suivre la procédure à l’écran, c’est du clic clic…).

Si tout c’est bien passé vous devriez avoir un panel d’admin dans ce goût là :

Terminé !

2015-03-02

Proxy Web avec SSH

Imaginons que vous soyez sur un réseau où certains sites web sont bloqués.
Si vous avez une machine à l’extérieur et un accès SSH dessus, vous pouvez l’utiliser comme proxy.

1ère étape

Lancez la commande suivante pour créer un proxy :

$ ssh Utilisateur@MachineExterne -C -N -D 8080

Les options sont les suivantes :

  • -C : compresse la transmission pour économiser la bande passante
  • -N : n’ouvre pas de shell
  • -D : ouvre un proxy dynamique

Vous devez garder le proxy ouvert, ne fermez donc pas la console sur laquelle vous l’avez ouvert !

Cette commande fonctionne pour Linux et MacOS. Pour Windows, je vous laisse regarder du coté de Putty.

2eme étape

Configurez ensuite votre navigateur pour pour rediriger le flux TCP et DNS vers le proxy :
proxyN’oubliez pas de cocher la case « DNS distant ». Et voila !

Vous avez en plus changé d’IP sur Internet. Vous utilisez désormais celle du serveur proxy.

J'aime(4)Ferme-la !(0)

2015-02-26

Conditions de service de Facebook

Article 2 des conditions de service de Facebook :

Pour le contenu protégé par des droits de propriété intellectuelle, comme les photos ou les vidéos (contenu de propriété intellectuelle), vous nous donnez expressément la permission suivante, conformément à vos paramètres de confidentialité et des applications : vous nous accordez une licence non exclusive, transférable, sous-licenciable, sans redevance et mondiale pour l’utilisation des contenus de propriété intellectuelle que vous publiez sur Facebook ou en relation avec Facebook (licence de propriété intellectuelle). Cette licence de propriété intellectuelle se termine lorsque vous supprimez vos contenus de propriété intellectuelle ou votre compte, sauf si votre contenu a été partagé avec d’autres personnes qui ne l’ont pas supprimé.

Pas de besoin de chercher loin, dès les première lignes des conditions de service, on trouve une clause inacceptable. En clair, vous donnez consciemment les droits d’exploitation de toute œuvre intellectuelle (et pas seulement vos photos et vidéos) à Facebook pour toute utilisation commerciale et pour gratos en plus.

vous n'etes pas un fichierDes solutions alternatives existent : WordPress (blog), Owncloud (stockage et partage de fichiers), Jabber (chat), et le mail bien sur !

Des réseaux sociaux intégrés comme Movim ou Jappix sont en développement.

J'aime(6)Ferme-la !(0)

2015-02-15

Monitoring de serveurs auto-hébergés avec Munin

J’avais besoin d’un peu de monitoring sur mes serveurs auto-hébergés. Quelque-chose de simple et léger qui me permette de surveiller et historiser l’activité : CPU, disque, réseau etc.

Munin me semble bien adapté à ça : il fait des graphiques par jour/semaine/mois/année de tout un tas de métriques système (mais aussi serveur http, bases de données etc). Et il permet de le faire aussi pour des serveurs distants, et d’envoyer des alertes quand certains seuils sont dépassés.

logo-munin

… sauf que j’ai eu plus de difficultés que je pensais à le mettre en œuvre. En particulier pour l’adapter à la faible puissance de mes machines.

Architecture

Une machine maître pilote la recherche périodique des données sur x machines (les noeuds), puis les stocke, génère des graphes, et envoie des mails d’avertissements si nécessaire.

Source : https://munin.readthedocs.org/en/latest/tutorial/getting-started.html

Munin-Architecture1

Munin est plutôt positionné sur de la métrologie (construire et mettre à disposition des métriques) que sur de la supervision (vérification de l’état de serveurs ou services). Cf http://decrypt.ysance.com/2011/02/comparatif-outils-monitoring-metrologie-supervision-2-zabbix-centreon-nagios-cacti-munin/

Les plugins

Les métriques sont fournies par des plugins. Munin fournit en standard un grand nombre de plugins, capables de collecter des métriques très pertinentes sur plein de services.

A mon sens, c’est la principale force du produit.

D’autant que Munin est aussi capable de détecter lui-même quels plugins sont pertinents sur votre machine.

De plus, il existe plein de plugins supplémentaires fournis par la communauté (qu’il faut ajouter soi-même) : https://github.com/munin-monitoring/contrib/tree/master/plugins

Les graphiques

Munin produit en standard des pages HTML statiques, avec des graphiques par machine, plugin, et période de mesure.

Pour vous faire un avis : http://demo.munin-monitoring.org/

(Cette démo ne montre pas les plugins sur les bases de données, qui sont pourtant très complets, en tous cas sur MySQL et PostgreSQL)

Installation

Il y a des packages tout prêts pour les distributions les plus classiques.

Sur Debian, c’est le package “munin” pour le serveur maître, et “munin-node” pour chaque nœud (dans mon cas, le maître est aussi un nœud lui-même).

Utilisation de la version backport sur Debian Wheezy

Sur les dépôts non-backport, la version fournie avec Debian Wheezy est la 2.0.3. Le dépôt backport fournit la version 2.0.25, qui apporte pas mal de correctifs.

Finalement, je ne suis pas certain que c’était vraiment nécessaire.

Comme je ne voulais pas activer le dépôt backport pour tous les packages, j’ai installé manuellement les packages :

Paramétrage

Toute la configuration se fait dans /etc/munin/

Lors de l’installation de chaque nœud, Munin détecte ce qui est installé sur la machine, et active les plugins correspondant. Il s’agit simplement de liens symboliques de /usr/share/munin/plugins/ vers /etc/munin/plugins/

On peut donc en ajouter/enlever en jouant sur ces liens symboliques.

Munin est aussi capable de suggérer lesquels devraient fonctionner :

munin-node-configure --suggest

Puis de préparer les lignes de commande pour créer ces liens symboliques :

munin-node-configure --shell

Cas du plugin MySQL

Première chose à savoir : pour qu’il fonctionne, il faut que le package libcache-cache-perl soit installé (en plus de MySQL, bien sûr)

Deuxième chose à savoir : il y a une petite incompatibilité entre munin 2.0.x et mySQL>=5.5. C’est corrigé dans munin 2.1 mais, en attendant, le plus simple est de désactiver les 3 plugins qui posent problème (tous les autres fonctionnent), en supprimant les liens symboliques associés :

rm /etc/munin/plugins/mysql_replication
rm /etc/munin/plugins/mysql_innodb_io_pend
rm /etc/munin/plugins/mysql_innodb_insert_buf

Cas du plugin Apache

Pour que Apache puisse être monitoré par Munin, il faut qu’il soit accessible en localhost (sur le port 80, par défaut), sur une URL http://127.0.0.1/server-status.

C’est le cas sur une configuration Apache par défaut (module status activé par défaut), mais peut ne pas l’être suivant votre configuration. Dans mon cas, il a fallu que je crée un VirtualHost exprès pour ça.

Sur Debian, il faut aussi installer le paquet libwww-perl.

Exposition des graphiques par Apache

Lors de l’installation, Munin ajoute lui-même un fichier de configuration pour Apache, dans /etc/munin/apache.conf, avec un lien symbolique dans /etc/apache2/conf.d

Par sécurité, l’accès est réservé à la machine locale, par défaut.

Pour autoriser l’accès à n’importe qui, il faut y mettre :

Allow from all

à chaque ligne commençant par Allow from.

Évidemment, je vous encourage ensuite à sécuriser l’accès d’une manière ou d’une autre.

Configuration avec un seul maître et plusieurs nœuds

Sur chaque nœud, il faut autoriser l’accès depuis le serveur maître, en modifiant le fichier /etc/munin/munin-node.conf : ajouter une ligne commençant par allow

Sur le serveur maître, on liste les nœuds à contacter dans /etc/munin/munin.conf

Avertissements par email

Il suffit dans /etc/munin/munin.conf de rajouter une ligne du type :

contact.email.command mail -s "Munin: ${var:graph_title} - ${var:host}" nom@domaine.tld

Avertissements par SMS (chez Free Mobile)

Comme on peut mettre n’importe quelle ligne de commande dans la syntaxe ci-dessus, on peut aussi envoyer des SMS avec l’API Free Mobile :

contact.sms.command wget --ca-certificate=/path/to/RapidSSLCABundle.pem -O /dev/null "https://smsapi.free-mobile.fr/sendmsg?user=12345678&pass=abcdefgh&msg=Munin : ${var:graph_title} - ${var:host} : warnings: ${var:wfields} - criticals: ${var:cfields} - unknowns: ${var:ufields}"

Pour des explications sur le paramètre ca-certificate, voir mon autre article sur l’envoi de SMS Free Mobile depuis Fail2ban.

Unité des graphiques

Par défaut, toutes les métriques sont affichées par seconde (ex : nombre de requêtes par seconde). Avec un serveur pas très chargé, ça donne des valeurs pas très parlantes.

Il est possible de changer ça dans /etc/munin/munin.conf , en passant la valeur de graph_period à minute (voire hour)

NB : ça n’a aucune influence sur la fréquence de la collecte : il s’agit uniquement d’avoir un affichage plus parlant.

Difficultés

Gestion des erreurs

S’il y a une erreur sur un nœud, cela annule l’envoi complet des données au serveur maître. Symptôme classique : les graphes sont mis à jour, mais sans données dedans.

Dans ce cas, il faut aller voir les fichiers de log de chaque noeud, dans /var/log/munin/munin-node.log et/ou le fichier de log de la mise à jour du maître, dans /var/log/munin/munin-update.log

J’aurais préféré l’affichage d’une erreur explicite dans les pages web générées, ou une alerte par email. Et j’aurais aussi préféré que ça ne bloque que les données du plugin concerné…

Limiter l’overhead sur les serveurs

Sur un serveur “classique”, l’overhead n’est pas très important. Mais sur mes petites machines peu puissantes, il n’est pas négligeable.

Aux premiers essais, la machine maître n’avait pas le temps de terminer la collecte/génération des 3 machines avant la collecte suivante (toutes les 5 minutes par défaut). Il a donc fallu faire du paramétrage plus fin :

Réduire le nombre de plugins

Munin active par défaut tous les plugins qu’il peut. En pratique, ils n’ont pas forcément tous une utilité.

Dans mon cas, il y avait énormément de métriques sur les bases MySQL et PostgreSQL, alors que je me peux me contenter de quelques-unes.

En les supprimant, la charge CPU a été réduite de moitié environ, ainsi que la durée de collecte.

Avant/après sur une Sheevaplug :

munin-cpu-day-sheevaplug-avant-apres-tri-plugins

Et sur un Olinuxino A20 :

munin-cpu-day-solinuxino-a20-avant-apres-tri-plugins

Caractéristiques de la machine pour le serveur maître

J’avais mis le maître sur une Sheevaplug, qui était vraiment trop juste en termes de puissance CPU. Avec un Olinuxino A20, ça passe déjà beaucoup mieux.

Il faut aussi faire attention à placer les répertoires /var/lib/munin et /var/cache/munin sur un filesystem pas trop “sensible” : il va y avoir de fréquentes mises à jour dessus, ce qui peut occasionner une usure plus rapide (dans le cas de mémoire flash ou SSD) et/ou augmenter le temps de latence en lecture/écriture pour les autres applications.

En laissant ces fichiers sur une carte SD, Munin me signalait souvent que la latence en écriture dépassait 4 secondes (son seuil d’alerte par défaut).

Ma solution a été de les placer sur un périphérique dédié (une clé USB), et de paramétrer munin pour être plus tolérant sur la latence en écriture de ce périphérique, en ajoutant la ligne ci-dessous dans /etc/munin/munin.conf, pour le nœud concerné :

diskstats_latency.sdb.avgwrwait.warning 0:10

Cf http://alexcline.net/2012/10/18/configuring-the-diskstats-plugin-in-munin/

Bien sûr, une clé USB n’est pas un stockage fiable du tout. Mais peu importe : l’objectif n’est pas de sécuriser les données de Munin, mais de sécuriser les autres services de la machine.

Générer les graphiques à la demande

Plutôt que de générer les graphiques après chaque collecte, il est possible de configurer Munin pour qu’ils ne soient générés qu’à la consultation.

Cela économise beaucoup de CPU sur la machine maître (mais ralentit aussi beaucoup la consultation des graphiques).

Pour cela, il suffit de créer un fichier /etc/munin/munin-conf.d/graph.conf avec le contenu suivant (cf http://doc.ubuntu-fr.org/munin) :

graph_strategy cgi
cgiurl /munin-cgi
cgiurl_graph /munin-cgi/munin-cgi-graph

Réduire la fréquence de collecte

Pour mon besoin, une collecte toutes les 5 minutes est bien plus que nécessaire. Une période de 30 minutes entre chaque collecte me suffirait.

Hélas, après pas mal d’essais, je n’ai pas réussi :-(

Sur le papier, ça devrait pourtant être possible, en modifiant de manière cohérente :

On trouve plusieurs articles sur le web qui expliquent comment augmenter la fréquence de collecte (toutes les 1 minutes), mais aucun pour la réduire.

En m’appuyant sur les mêmes principes, j’ai soit des graphiques qui ne se mettent plus à jour (sans aucun message d’erreur dans les logs), soit des graphiques hachés de ce type :

munin-cpu-day-cron-10-minutes

Pour l’instant, je reste donc sur une collecte toutes les 5 minutes.

Si quelqu’un arrive à faire des collectes moins fréquentes en gardant des graphiques propres, je suis preneur.

2015-02-09

Migration de bases de données mysql entre deux serveurs debian

J’ai récemment du migrer des bases de données mysql entre deux serveurs debian auto-hébergés. Ayant fait cet type de migration il y a quelques mois et n’ayant pas noté les commandes, j’ai du reconstituer les commandes de mémoire, du coup, voici une documentation (pour moi principalement, mais ça peut servir à d’autres).

Utilisez backupninja pour backupper régulièrement ses bases de données. Cela permet d’avoir des dumps pour faire la migration.

 apt-get install backupninja
 cp /usr/share/doc/backupninja/examples/example.mysql /etc/backup.d/
 chmod go-rwx /etc/backup.d/example.mysql
 backupninja -n

Profitez-en pour utiliser mariadb qui est moins pire que mysql (à défaut de migrer vers postgresql ce qui est parfois plus coûteux).

Migrer les grants (utilisateurs et droits de ces utilisateurs)

 apt-get install percona-tools
 pt-show-grants | grep -v root | grep -v debian > grants.sql
 ssh new_server
 rsync original_server:~/grants.sql .
 cat grants.sql | mysql

Il est parfois utile d’ajouter ses credentials dans ~/.my.cnf :

 [client]
 user = root
 password = secret-password

Migrer les données

 rsync --exclude "mysql.sql.gz" --exclude="information_schema.sql.gz" --exclude="performance_schema.sql.gz" -avz original_server:/var/backups/mysql/sqldump/*.sql.gz .
 for i in *.sql.gz; do echo mysqladmin create ${i%.sql.gz}; done
 for i in *.sql.gz; do zcat $i | mysql ${i%.sql.gz} ; done

Voilà.

2015-01-28

Debloquer les 4 ports LAN sur la B-Box 2

Belgacom fournit un box appellée B-Box (à ne pas confondre avec la Bouygues Bbox en France).

Elle contient 2 ports LAN et 2 ports TV. Mais il s’agit de ports ethernet dans les 2 cas. Voyons voir comment utiliser les ports TV comme ports LAN pour brancher plus d’ordinateurs sur la box !

Allez dans l’interface d’admin ( http://192.168.1.1 ) -> Advanced settings -> Route -> Routing. Puis tout en bas de la page, vous verrez ceci :

RoutingDécochez les ports TV et Cliquez sur le bouton Apply. Voila !

J'aime(2)Ferme-la !(0)

2015-01-27

Votre blog avec de vrais morceaux de SSL !

CAcert-logo-colour-1000

Avoir un vrai certificat signé et approuvé par une autorité de certification SSL, c’est un peu le Graal pour le geek !

Mais voilà, ça coûte souvent (très) cher, pas toujours évident à mettre en place …

Voici donc une méthode simple pour avoir vos propres certificats (oui oui, au pluriel !) @ home et cela gratuitement (c’est la crise ma brave dame !).

I) Inscription sur cacert.org

Commencez par vous inscrire sur https://www.cacert.org/ (certains me diront, qu’il y a startssl qui propose aussi des certificats, mais c’est un vrai parcours du combattant pour s’y inscrire …)
Vous aurez un formulaire à remplir de ce type, attention toutes les infos doivent être vraies ! (car si vous souhaitez aller plus loin, il faudra fournir des pièces d’identités officielles)

Capture d'écran - 27012015 - 13:22:48

 

II) L’interface d’administration

Une fois inscrit, et que vous avez validé les mails …
Vous avez accès au menu suivant :

Capture d'écran - 27012015 - 13:28:13

Vous pouvez vous dès à présent générer un certificat client puis l’installer dans votre navigateur, pour vous connecter plus tard sur cacert.org (ce que je vous recommande et ce qui est même obligatoire si vous souhaitez passer des tests, devenir accréditeur …)

C’est sur ce menu que vous allez générer vos différents certificats, rajouter des domaines, modifier des options …

Mais aussi, pouvoir demander à être accréditer, c’est important, car de base, vous avez 0 points, avec ce nombre bien maigre, vous allez tout de même pouvoir générer vos certifs, mais ils ne seront valident que 6 mois !!

Un poil fatiguant, je vous l’accorde !

Une fois que vous aurez été validé physiquement et à l’aide d’au moins deux pièces d’identités, vous allez obtenir des points.
le premier pallier (la liste complète est ici : https://wiki.cacert.org/FAQ/Privileges ) est à 50 points et vous permets d’avoir des certificats valident 24 mois.

Vous trouverez la liste des accréditeurs proches de chez vous à partir du menu, il y en a un peu partout en France, et il y également des sessions de signature dédiées à ça plusieurs fois par an.

 

 

 

III) Créer son premier certificat

M’enfin revenons à notre mouton, pour le créer (le certificat hein !), il faut commencer par rajouter un domaine dans le menu « Domaines », une fois validé (avec une simple vérification par mail), vous aurez une liste ce ce type :

Capture d'écran - 27012015 - 13:44:17

L’étape suivant se passe sur votre serveur :

On installe le paquet pour générer les clés et les demandes :

apt-get install openssl

Puis on génère une clé (le fichier key) :

openssl genrsa -out server.key 2048

Et enfin une demande de signature (le csr)

openssl req -new -key server.key -out server.csr

Attention à bien répondre aux questions !

retournez sur cacert.org, et ajouter un certificat serveur grâce au menu du même nom (ils ont bien fait les choses !)
puiscollez y votre fichier CSR

Capture d'écran - 27012015 - 13:54:47

Il vous reste à choisir le type de hachage et à valider !
à l’étape suivante, vous aurez votre certificat, que vous aurez à coller sur votre serveur dans le fichier server.crt

nano server.crt

Vous aurez un résumé de ce type :

Capture d'écran - 27012015 - 13:58:27

IV) Modifier votre serveur web

Votre certificat étant créée et validé, vous avez plus qu’à l’utiliser !
voici un exemple sur un serveur web nginx (avec fastcgi) :

nano /etc/nginx/sites-enabled/default-ssl
server {
    root /var/www/;
    listen       443;
    server_name www.sheldon.fr;
    index index.php index.html index.pl;

#ssl
        ssl on;
        ssl_certificate /etc/nginx/ssl/www.sheldon.fr.crt;
        ssl_certificate_key     /etc/nginx/ssl/www.sheldon.fr.key;

location /nginx_status {
    stub_status on;
    access_log off;
    allow 127.0.0.1;
    deny all;
}
    server_name_in_redirect off;
    port_in_redirect off;

    location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico)$ {
        access_log        off;
        expires           30d;
    }

    # rewrite rules
    location / {
        if (!-e $request_filename) {
            rewrite  ^/(.*)$  /index.php?q=$1  last;
        }
    }

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
    }

}

Et si vous souhaitez que votre port 80 redirige automatique sur le port 443, faites la modif suivante :

nano /etc/nginx/sites-enabled/default
server {
    listen       80;
    server_name www.sheldon.fr;
    return 301 https://www.sheldon.fr$request_uri;
}

Après avoir redémarré votre serveur web, et consulté votre magnifique site, voici ce que vous obtiendrez (et sans erreur obscure de votre navigateur !)

Capture d'écran - 27012015 - 14:11:00 Capture d'écran - 27012015 - 14:09:42

Alors, happy ? :)

Il vous reste plus qu’à faire comme moi et rajouter un certificat par service (messagerie, hébergement divers, xmpp …) et sans oublier de vous faire accréditer !!

Mon petit PRA (plan de reprise d’activité) d’auto-hébergement chez CloudWatt, avec OpenStack

J’ai mis en place un petit PRA (https://fr.wikipedia.org/wiki/Plan_de_reprise_d’activité) pour mes serveurs.

C’est rigolo d’appliquer pour l’auto-hébergement les mêmes procédures qu’en entreprise. Les besoins et la mise en œuvre sont finalement assez proches.

Et ce n’est pas juste pour l’exercice : ces petits serveurs (Sheevaplug et Olinuxino A20) sont fragiles. Les filesystems sont sur des cartes SD, l’alimentation non redondée, le matériel non protégé etc. Le risque de panne est donc réel. L’idée est d’avoir un plan de secours en cas de gros problème, pour remettre en ligne le nécessaire le plus vite possible.

Et c’est chez CloudWatt que j’ai décidé de mettre mon instance de secours, en utilisant les APIs OpenStack

cloudwatt   OpenStack

Avant de basculer en PRA

Le PRA est en général un dernier recours.

En cas de panne, il faut d’abord essayer de refaire marcher l’ensemble sur site. Pour ça, on s’appuie sur du classique :

  • sauvegardes régulières (et testées de temps en temps)
  • du matériel de spare (si possible exactement le même : ça peut permettre d’y déplacer directement le filesystem)
  • pouvoir (sans trop transpirer) déplacer des services d’une machine à une autre
  • rendre les services (et serveurs) aussi indépendants les uns des autres que possible : si l’un est indisponible, il faut éviter que ça bloque les autres

Objectifs du PRA dans mon contexte d’auto-hébergement

D’abord identifier les services les plus critiques. Dans mon cas, c’est essentiellement ce blog. J’y rajouterai probablement d’autres services par la suite.

Ensuite définir les objectifs :

Ici, une “perte de données maximale” de 1j me parait largement raisonnable. Le contenu (articles + commentaires) ne bouge pas très souvent donc il y a de grandes chances de ne perdre aucune donnée en restaurant une sauvegarde à J-1.

Quant à la “durée d’interruption maximale”, je ne pourrai pas faire mieux qu’1j, à moins que le problème se produise quand je suis chez moi.

Quel site externe ?

L’idée est de pouvoir basculer rapidement le blog sur un autre serveur en cas de gros problème technique. Mais où ça ?

Pour faire tourner le blog, les besoins sont assez minimalistes, et il y a plein de solutions.

Mes exigences étaient que cela soit gratuit ou très peu cher, et que je puisse facilement faire basculer dessus la résolution DNS.

Assez vite, je me suis tourné vers des clouds avec tarification à l’usage.

En effet, 99 % du temps, je n’ai pas besoin que ma machine de PRA soit en ligne. Je n’en ai besoin que dans 2 cas de figure :

  • quand je veux mettre à jour les données dessus (quelques minutes chaque jour)
  • quand je veux basculer dessus (ce qui n’arrivera que très rarement, je l’espère)

Le reste du temps, il faut éviter de payer pour rien.

Pourquoi CloudWatt ?

CloudWatt a quelques particularités qui m’ont plu :

  • Basé sur OpenStack : je préfère ne pas me lier à un cloud particulier via des APIs propriétaires. Et ce que j’apprendrai sur les APIs OpenStack pourra me servir sur d’autres clouds
  • Apparemment engagé dans le logiciel libre
  • Hébergé en France

cloudwatt

Pour ne pas payer inutilement, il faut re-créer l’instance (la VM) à chaque fois qu’on en a besoin. Évidemment, ça peut se faire programmatiquement via l’API. Et les données peuvent être persistées dans des volumes, images et snapshots (tarifés suivant l’espace disque utilisé)

Coût prévisionnel

Stockage bloc (image, snapshot ou volume) : 3Go => 0.12€HT/mois

Instance tiny (la moins puissante) : quelques minutes par jour pour la mise à jour. 6 minutes/j = 3h/mois => 0.03€HT/mois

Trafic réseau : minimum=1Go => 0.089€HT/mois

Au total : 0.239€HT/mois = un peu moins de 30 centimes TTC/mois => moins de 3€50/an. Ça parait tout à fait raisonnable.

Et, si j’utilise l’instance de PRA (ce qui devrait être très rare, et ne pas durer longtemps), ça coûte un peu moins de 30 centimes TTC par jour. Là aussi, ce n’est franchement pas exorbitant.

De plus, tout ça est gratuit jusqu’au 24 mars 2015, ce qui permet de tester sans frais.

Pourquoi pas un serveur similaire chez un autre auto-hébergé ?

Ce serait une solution radicalement différente : plutôt que de mettre son PRA dans un cloud, le mettre chez un autre auto-hébergé.

Je trouve que cette solution serait assez fun.

Mais c’était l’occasion de jouer avec CloudWatt/OpenStack, donc pas pour cette fois.

Peut-être pour la v2 ? :-)

Implémentation et méthode

Besoin : synchroniser automatiquement les données vers le serveur externe, une fois par jour.

Principe et persistance des données

Comme déjà évoqué, je n’ai pas besoin d’une instance qui tourne 24h/24, mais uniquement quelques minutes par jour (le temps d’y mettre à jour les données).

Mais comment avoir des données persistantes, et ne pas repartir à zéro à chaque fois ?

Au départ, j’avais pensé à mettre tout le filesystem (OS compris) dans un volume persistant. C’est le plus simple à mettre en œuvre mais je suis tombé sur une limitation : impossible de créer un volume persistant (basé sur Debian) de moins de 20 Go. Or je n’ai pas envie de payer pour tout cet espace alors que j’en utiliserai 10 fois moins.

Donc, solution alternative :

  • un snapshot du filesystem pour l’OS et la configuration d’Apache/MySQL : 1.3Go. Je n’aurai besoin de refaire ce snapshot que pour les mises à jour du système ou de la configuration
  • un volume persistant pour les données (avec des liens symboliques qui pointent dessus pour /var/www et  /var/lib/mysql) : 1Go. C’est là-dessus que les données seront mises à jour quotidiennement

Petit inconvénient de cette solution : si on peut attacher un volume au démarrage via l’API, on ne peut pas le faire depuis la console de gestion web. Si on n’a pas d’accès SSH/console à la machine, il faut donc créer l’instance, puis attacher l’IP et le volume, puis la rebooter.

Préparation du serveur distant

sudo apt-get install apache2 libapache2-mod-php5 php5-mysql mysql-server rsync bash-completion
sudo a2enmod rewrite ssl

+ Création du ou des sites Apache2

+ Création du user et de la base de données MySQL

Script de sauvegarde

Création/lancement de la VM

Télécharger le fichier openrc.sh depuis votre compte CloudWatt (qui contient les identifiants), et installer le client Openstack en ligne de commande (j’ai utilisé la version en Python).

OpenStack

La VM peut être lancée par script comme suit :

#!/bin/bash
source openstack-env/bin/activate
source openrc.sh
echo "Création de l'instance"
nova boot --image bb6785de-81de-48c0-8418-f20f48321f4b --flavor 16 instance_pra --block-device id=1fdffab7-1298-4e7b-9261-43bfb67a7605,source=volume,dest=volume
echo "Attente 30s de la préparation de l'instance..."
sleep 30
echo "Affectation de l'IP publique"
nova add-floating-ip instance_pra x.x.x.x
echo "Attente 90s du démarrage d'OpenSSH..."
sleep 90

Synchronisation des données

echo "Synchronisation des données PHP"
rsync -av --delete /var/www/wordpress/ cloud@x.x.x.x:/var/www/wordpress
echo "Export de la base MySQL"
mysqldump -u wordpress --password=xxx wordpress >export_wordpress.sql
echo "Transfert du dump de la base MySQL"
scp export_wordpress.sql cloud@x.x.x.x:/home/cloud
echo "Adaptation des données pour la VM, en SSH"
scp adaptation_donnees_pra.sh cloud@x.x.x.x:/home/cloud
ssh cloud@x.x.x.x 'chmod +x /home/cloud/adaptation_donnees_pra.sh;/home/cloud/adaptation_donnees_pra.sh'

echo "Attente 30s avant suppression de l'instance, par précaution"
sleep 30
echo "Suppression de l'instance"
nova delete instance_pra

Adaptation des données pour la VM

Le fichier adaptation_donnees_pra.sh est exécuté sur le serveur distant :

#!/bin/bash
echo "Import des données MySQL"
mysql -u wordpress --password=xxx -D wordpress < /home/cloud/export_wordpress.sql
# Pratique pour les tests, si l'URL n'est pas la même
#echo "update wp_options set option_value='http://y.y.y.y' where option_name='siteurl' or option_name='home';" | mysql -u root -p -D wordpress
echo "Désactivation de WP SuperCache"
sudo sed -i "/^# BEGIN WPSuperCache/,/^# END WPSuperCache/d" /var/www/wordpress/.htaccess
sudo rm -rf /var/www/wordpress/wp-content/cache/*
sudo rm -rf /var/www/wordpress/wp-content/plugins/wp-super-cache
sudo chown -R www-data:www-data /var/www/wordpress

Et on met tout ça dans un cron pour que ça s’exécute chaque nuit.

Problème de clé SSH regénérée pour chaque instance CloudWatt

En l’état, les scripts ci-dessus échouent à cause d’un problème de clé SSH : à chaque création d’une nouvelle instance chez CloudWatt, la clé SSH est écrasée par une nouvelle. Donc le client SSH plante en disant qu’il ne reconnaît pas la clé correspondant à l’IP.

Première (mauvaise) solution : rajouter des options à ssh/scp/rsync pour qu’ils ignorent le problème

-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=error

Pour rsync, cela consiste à rajouter l’option :

-e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -o LogLevel=error"

(le LogLevel est nécessaire pour qu’il n’y ait pas de “Warning : Permanently added ‘x.x.x.x’ to the list of known hosts” dans la sortie d’erreur, qui génère en envoi de mail quand c’est lancé en cron)

Ca fonctionne bien, mais ouvre une belle faille de sécurité.

Meilleure solution : donner des clés SSH fixes à la création de l’instance en Customization Script / User Data

Avec OpenStack, il est possible de passer ce qu’ils appellent un “Customization Script” (autrement appelé “User Data”) à la création d’une instance.  Entre autres choses, cela permet de lui dire quelles clés SSH utiliser (au lieu qu’il les génère à la création).

Dans la VM, c’est exécuté au premier démarrage via le package cloud-init (au moins sur Debian et Ubuntu, je ne sais pas pour les autres OS)

A partir des exemples de http://cloudinit.readthedocs.org/en/latest/topics/examples.html, j’ai pu créer un fichier cloud-config.txt qui ressemble à ça (les clés SSH sont des exemples) :

#cloud-config

# Send pre-generated ssh private keys to the server
# If these are present, they will be written to /etc/ssh and
# new random keys will not be generated
ssh_keys:
  rsa_private: |
    -----BEGIN RSA PRIVATE KEY-----
    MIIBxwIBAAJhAKD0YSHy73nUgysO13XsJmd4fHiFyQ+00R7VVu2iV9Qcon2LZS/x
    1cydPZ4pQpfjEha6WxZ6o8ci/Ea/w0n+0HGPwaxlEG2Z9inNtj3pgFrYcRztfECb
    1j6HCibZbAzYtwIBIwJgO8h72WjcmvcpZ8OvHSvTwAguO2TkR6mPgHsgSaKy6GJo
    PUJnaZRWuba/HX0KGyhz19nPzLpzG5f0fYahlMJAyc13FV7K6kMBPXTRR6FxgHEg
    L0MPC7cdqAwOVNcPY6A7AjEA1bNaIjOzFN2sfZX0j7OMhQuc4zP7r80zaGc5oy6W
    p58hRAncFKEvnEq2CeL3vtuZAjEAwNBHpbNsBYTRPCHM7rZuG/iBtwp8Rxhc9I5w
    ixvzMgi+HpGLWzUIBS+P/XhekIjPAjA285rVmEP+DR255Ls65QbgYhJmTzIXQ2T9
    luLvcmFBC6l35Uc4gTgg4ALsmXLn71MCMGMpSWspEvuGInayTCL+vEjmNBT+FAdO
    W7D4zCpI43jRS9U06JVOeSc9CDk2lwiA3wIwCTB/6uc8Cq85D9YqpM10FuHjKpnP
    REPPOyrAspdeOAV+6VKRavstea7+2DZmSUgE
    -----END RSA PRIVATE KEY-----

  rsa_public: ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAGEAoPRhIfLvedSDKw7XdewmZ3h8eIXJD7TRHtVW7aJX1ByifYtlL/HVzJ09nilCl+MSFrpbFnqjxyL8Rr/DSf7QcY/BrGUQbZn2Kc22PemAWthxHO18QJvWPocKJtlsDNi3 smoser@localhost

  dsa_private: |
    -----BEGIN DSA PRIVATE KEY-----
    MIIBuwIBAAKBgQDP2HLu7pTExL89USyM0264RCyWX/CMLmukxX0Jdbm29ax8FBJT
    pLrO8TIXVY5rPAJm1dTHnpuyJhOvU9G7M8tPUABtzSJh4GVSHlwaCfycwcpLv9TX
    DgWIpSj+6EiHCyaRlB1/CBp9RiaB+10QcFbm+lapuET+/Au6vSDp9IRtlQIVAIMR
    8KucvUYbOEI+yv+5LW9u3z/BAoGBAI0q6JP+JvJmwZFaeCMMVxXUbqiSko/P1lsa
    LNNBHZ5/8MOUIm8rB2FC6ziidfueJpqTMqeQmSAlEBCwnwreUnGfRrKoJpyPNENY
    d15MG6N5J+z81sEcHFeprryZ+D3Ge9VjPq3Tf3NhKKwCDQ0240aPezbnjPeFm4mH
    bYxxcZ9GAoGAXmLIFSQgiAPu459rCKxT46tHJtM0QfnNiEnQLbFluefZ/yiI4DI3
    8UzTCOXLhUA7ybmZha+D/csj15Y9/BNFuO7unzVhikCQV9DTeXX46pG4s1o23JKC
    /QaYWNMZ7kTRv+wWow9MhGiVdML4ZN4XnifuO5krqAybngIy66PMEoQCFEIsKKWv
    99iziAH0KBMVbxy03Trz
    -----END DSA PRIVATE KEY-----

  dsa_public: ssh-dss AAAAB3NzaC1kc3MAAACBAM/Ycu7ulMTEvz1RLIzTbrhELJZf8Iwua6TFfQl1ubb1rHwUElOkus7xMhdVjms8AmbV1Meem7ImE69T0bszy09QAG3NImHgZVIeXBoJ/JzByku/1NcOBYilKP7oSIcLJpGUHX8IGn1GJoH7XRBwVub6Vqm4RP78C7q9IOn0hG2VAAAAFQCDEfCrnL1GGzhCPsr/uS1vbt8/wQAAAIEAjSrok/4m8mbBkVp4IwxXFdRuqJKSj8/WWxos00Ednn/ww5QibysHYULrOKJ1+54mmpMyp5CZICUQELCfCt5ScZ9GsqgmnI80Q1h3Xkwbo3kn7PzWwRwcV6muvJn4PcZ71WM+rdN/c2EorAINDTbjRo97NueM94WbiYdtjHFxn0YAAACAXmLIFSQgiAPu459rCKxT46tHJtM0QfnNiEnQLbFluefZ/yiI4DI38UzTCOXLhUA7ybmZha+D/csj15Y9/BNFuO7unzVhikCQV9DTeXX46pG4s1o23JKC/QaYWNMZ7kTRv+wWow9MhGiVdML4ZN4XnifuO5krqAybngIy66PMEoQ= smoser@localhost

Il suffit ensuite, lors de la création de l’instance avec nova boot, de rajouter l’option :

--user-data cloud-config.txt

Cf http://docs.openstack.org/user-guide/content/inserting_userdata.html

Baptême par le feu et enseignements

Le 1er janvier 2015, coupure d’accès Internet chez mon FAI (défaillance du modem). Pas de bol. J’ai dû me lancer dans le PRA à marche forcée.

C’était à peu près prêt, sauf que la mise à jour des données n’était pas encore automatisée. J’ai donc dû mettre à jour les données à la main, mais en-dehors de ça, ça s’est bien déroulé.

Quels enseignements de ce premier test ?

  • Il faut prévoir comment faire la bascule en n’étant pas chez soi. D’où nécessité d’avoir accès aux identifiants/clés pour tout faire (en l’occurrence se connecter à CloudWatt et Gandi + si possible une possibilité de se logger sur la machine : clé SSH ou user/mot de passe). Mais attention à les conserver de manière sécurisée…
  • Si on bascule en PRA, il faut ensuite penser à bloquer la mise à jour quotidienne des données (sinon cela écraserait les données modifiées dans la journée)
  • Prévoir la procédure de bascule retour (fin du PRA). En l’occurrence, il s’agit simplement de re-transférer le site PHP et la base MySQL dans l’autre sens, et refaire la bascule DNS.

Contraintes

Une fois la procédure mise en place, la mise à jour se fait tous les jours, et tout est prêt pour un éventuel PRA.

Seules contraintes qui restent :

  • Tester de temps en temps une bascule, ne serait-ce que pour vérifier que les données sont à jour, que la procédure fonctionne toujours etc
  • Tenir à jour la configuration d’Apache sur l’instance de PRA, quand elle change sur sur le serveur principal

2015-01-26

Eviter les piratages « bêtes »

Le Monde raconte de quelle façon il s’est fait « piraté » son compte Twitter.

C’est intéressant comme dé-mystification de l’image du pirate. On y voit que les attaquants :

  • cherchent à provoquer l’erreur humaine en envoyant des faux mails (n’importe qui peut choisir le nom et l’adresse de l’émetteur des mails qu’il envoie) qui contiennent un lien vers une page web imitant l’interface d’administration des sites qu’elle connaît (LeMonde, Facebook, Gmail, etc…) dans le but de lui soutirer son mot de passe. Et ça marche !
  • volent le compte en parvenant à répondre à la fameuse « question personnelle » qui permet de récupérer son compte ou son mot de passe sur la majorité des services en ligne comme Gmail, Facebook ou Twitter.

Il n’y a donc point d’exploit informatique ici, juste une méconnaissance des usagers vis à vis des bonnes pratiques:

  • Ayez un ordinateur non compromis (pas de virus, pas de cheval de Troie). Ceux qui ont compris ça utilisent uniquement des logiciels de confiance (pas de crack qui vient de n’importe où, pas de logiciel gratuits à publicités qui viennent t’espionner). Le mieux est d’utiliser uniquement des logiciels libres compilés par une tierce personne de confiance. Ça diminue encore les risques.
  • Vérifier toujours l’adresse de la page web sur laquelle vous êtes quand vous rentrez un mot de passe. C’est la seule garantie que vous envoyez le mot de passe au bon site. Ne vous fiez pas à la charte graphique. Vérifiez également que le cadenas SSL est présent.
  • Hébergez vos services vous même, comme ca pas besoin de « question personnelle » pour récupérer votre compte puisque vous avez accès à la machine pour modifier le mot de passe si besoin :-)
    • ou activez la double authentification (il faut une confirmation depuis votre smartphone pour changer le mot de passe du compte) et donnez une « question vraiment très personnelle » pour récupérer votre compte que ni un recherche Google ni votre plus proche ami, mère ou copain ne pourrait trouver. Sinon cette question devient une porte d’entrée plutôt qu’une sécurité.
J'aime(10)Ferme-la !(1)

2015-01-24

Sécuriser ses services avec les Jails FreeBSD et Packet Filter #2

Pour ceux qui auraient séchés la partie 1 :

Nous étions partis sur une architecture de cette forme, avec en fin de première partie 1, des petites jails en marche, chacune faisant tourner un service de votre choix ou rien, les services ne sont donnés qu'a titre d'exemple.



Dans mon exemple je n'utilise pas d’accès SSH direct sur mes jails, je me connecte toujours sur la machine hôte (j'ai fait le choix de ne pas me connecter à mes jails directement vers SSH) il va donc être important d'effectuer un petit lifting d'OpenSSH sur la machine hôte.

Menuiserie de la porte d'entrée :

Un petit rappel rapide qui ne fait pas de mal, une excellent méthode pour éviter de se faire emmerder par le bruteforce des scripts kiddies, changer le port d'écoute ssh par quelque chose d'assez haut : exemple le code postale de votre commune (ne fonctionne pas si vous êtes en région parisienne évidemment), laissez sur le port 22 va faire surchauffer votre /var/auth.log placer le port d'écoute sur 23235 (par exemple) va faire tendre le nombre de tentatives de connexions indésirables vers 0.

Un autre réflexe à prendre et de bannir l’accès ssh à root, avoir une politique de mot de passes très forte, et d'imposer une identification par clés sur des utilisateurs appartenant à un groupe autorisé à se connecter.

J'étais parti dans l'idée de mettre toute une explication de config mais quelqu'un d'autre le fait très bien ici.

Nous voilà avec une configuration un peu plus acceptable ... et c'est pris d'un réflexe casi pavlovien que vous vous précipitez sur un "pkg install fail2ban" pour empêcher toutes tentative de bruteforce sur votre socket SSH.

Oublie tout ça, maintenant c'est la vraie vie:

Et oui avec packet Filter, Fail2ban est inutile, en tout cas dans le cadre de la protection du bruteforce SSH (il peut toutefois rester utile pour faire d'autres choses). Je vous l'ai dit, on utilise un vrai Firewall qui sait tout faire, pas besoin de déjà commencer à ajouter une verrue ;).

Failban rend plein de bon et loyaux service en ... analysant les logs, c'est le problème il analyse les logs et ne travaille pas au niveau de la pile réseau ce qui dans le cadre de performances réseaux est tout bonnement à proscrire.

Une fois avoir activé notre firewall dans notre fichier /etc/rc.conf en ajoutant pf_enable="YES" à la fin.

Une règle de filtrage de ce genre dans notre firewall devrait convenir.
Je la prends volontaire en exemple car il s'agit sans doute d'une des plus "complexe" utilisant macro et options, que vous aurez à déclarer dans votre pf.conf :

# Block SSH bruteforce
pass in on $ext_if proto tcp from any to $ext_if port 22 \ flags S/SA keep state \ ( max-src-conn-rate 5/30, max-src-conn 5 \ overload <blacklist> flush global )


Ce qui signifie grossièrement de :
Passer les paquets TCP entrant sur l'interface $ext_if qui arrivent de n'importe ou any à destination du port 22.

Les handshakes TCP complets sont limitées à 5 en même temps max-src-conn 5, et pas plus de 5 tentatives toutes les 30 secondes. max-src-conn-rate 5/30.

Si une de ses limite est dépassée l'IP sera alors ajoutée dans une <'table'> overload <'bruteforce'> et toutes les connexions existantes seront supprimées flush global.

Oui comme son nom ne l'indique pas Packet Filter sait aussi manipuler des tables, ces dernières contenant des listes d'IP, de plages IP, v4 ou v6.

Le contenu de cette table peut directement être traiter/tester dans toutes nos règles.

# Et plus loin : Block des bruteforceur ssh.
block drop in on $ext_if from <blacklist>
#On peut utiliser également une whitelist
pass in on $ext_if from <whitelist>


La même mécanique est évidemment applicable à tous les ports.

Si vraiment vous trouvez ça trop fatiguant et souhaitez définitivement ajouter une verrue... vous pouvez toutefois utiliser un outil un façon "Fail2ban" likee pour SSH pf-sshguard qui s’intègre nativement à Packet Filter.

Celui-ci travaillant au niveau réseau en créant des tables Packet Filter et non pas sur une analyse de log.

Voilà petite mise en bouche "pratique", qui ne manquera pas de vous faire mettre tout de suite en route le téléchargement de FreeBSD.

En revanche attendez un peu avant de formater votre Ubuntu server ... continuez au moins la lecture.

Je t'avais prévenu PF c'est du fat ma gueule :

Le fichier de configuration est le bien nommé /etc/pf.conf, c'est dans ce dernier que vous configurerez vos règles de firewalling.
Un peu à la manière d'IPtable, ce dernier possède une syntaxe particulière et vos règles doivent être déclarées dans un certain ordre.

L'organisation du fichier représente également l'ordre dans lequel les paquets sont traités.

#- MACRO 
Declaration des "variables"
#- TABLES Déclaration des tables
#- GLOBAL OPTIONS scrubing paquets / gestion log
#- TRAFFIC NORMALIZATION Normalisation paquets
#- QUEUEING RULES et Prioritization Règles QoS / Gestion du traffic (je n'en fais pas encore)
#- TRANSLATION RULES (NAT) Translation d'adresses / Redirections
#- FILTER RULES Regles de filtrage
pass in log all keep state pass out log all keep state


Chaque partie est optionnelle, vous pouvez vous passer de TABLES ou de TRAFIC NORMALISATION.

En revanche il n'est pas possible de déclarer Les règles de filtering avant celle du NAT, ou une MACRO après une règle quelconque.

Je table sur une victoire Macro :

Quelque chose qui m'est apparu naturel, en découvrant Packet Filter est la présence des "variables", même des "listes", ou des "tables".
Tous les informaticiens sont accoutumés au concept de la variabilisation de valeurs.
Pourtant ... je n'avais jamais fait attention mais on ne peut pas créer de variables dans IPtables ... en découvrant l'usage dans Packet Filter on constate vraiment à quel point c'est dommage, ce concept est pratique et intuitif.

# --- Macro Variables and Tables ---
#
ext_if = "re0" int_if = "lo2" lan_network = $int_if:network
# --- Ip de vos JAILS --- JAIL_WEB="10.8.8.8" JAIL_SQL="10.8.8.9" JAIL_DNS="10.8.8.7"
# !!! Modifier en fonction de votre addresse !!! # Machine Hôte, faisant tourner les jails myself="192.168.1.15"
# --- IP d ou vous comptez vous connecter (ssh ou autre) admin="{ 192.168.0.0/24, 192.16.16.16, 2001:470:903f::/48 }"
# --- Vos ports sshport="25300" webports= "{ http, https }"
# --- Vos Tables table <blacklist> table <asia> persist file "/etc/pf.asia"


Jusque là je pense que tout le monde à bien compris, tout est clair pas besoin d'explication, notez comment on peut définir nos variables, nos plages d'IP en v4 ou v6, la façon dont il est possible de les déclarer, par leur numéro ou leur nom des services.
Les tables peuvent quant à elles chargée en mémoire et "flushée" lors du reload de la configuration du firewall ou d'un reboot de la machine.

Mais on peut aussi en déclarer en dur, les données seront chargées depuis un fichier, ou en leur appliquant l'option "const"

Oui, oui j'ai collé une bonne partie des IP de l'asie dans une table en chargeant le tout depuis un fichier ... Oui je suis un bourrin.
Avec IPtable ce n'est pas possible de faire ça, il faut utiliser une autre verrue encore une .. IPSet ou quelque chose du genre.

Extrait du contenu de /etc/pf.asia :

# Vietnam (VN)
1.52.112.0/20
14.160.0.0/11
27.64.0.0/12
42.112.0.0/13
58.186.0.0/15
112.78.0.0/20
112.197.0.0/16
112.213.80.0/20
113.22.0.0/16
113.23.0.0/17
113.160.0.0/11
115.72.0.0/13
115.84.176.0/22
116.96.0.0/12
117.0.0.0/13


Chaussures de ville exigées :

Une fois toutes nos macros/variables de déclarés, déclarons la politique globale à respecter sur le traitements des paquets.
# --- Global options / Normalisation ---
set block-policy drop set loginterface re0 set skip on lo scrub in all

  • set bloc-policy drop
Définit la politique par défaut d'un paquet refusé, le rejette t-on salement sans prévenir (drop). Ou préviens t'on l’émetteur avec une trappe ICMP que son paquet a été refusé.

  • loginterface re0
L'interface dont PF va s'occuper de loguer et analyser en l’occurrence notre interface physique.

  • skip on lo
Ne pas s'occuper de l'interface de loopback.

  • scrub in all
Assure une certaine hygiène réseau en rassemblant toutes les trames fragmentées, et rejetant les packets se présentant avec une mauvaise entête TCP. Permet de se protéger entre autre contre certains type d'attaques.

3eme porte à droite :

Il est temps maintenant de mettre en place nos règles de redirection et NAT; si l'on faisait de la QoS et du Queue de protocole il aurait fallut les déclarer juste avant or à ce jour je n'en fais toujours pas.

Cela fera une bonne occasion d'écrire un article à ce sujet le jour ou je m'y intéresserai :-)

Sauf exception, les packets matchant les règles de redirections ne sont pas exempts de filtrage.
Un paquet redirigé vers ma jail http par une régle de forwarding subira le traitement des règles de filtering avant de sortir de la carte réseau.

Avec PF tout est très clair ... pas comme avec vous savez qui ...

Les étapes de NAT et ou Redirections s'appellent donc avec le mot clé : "nat" ou "rdr"

# --- NAT and Redirect ---
#-------------------------

# Celle ligne assure le NAT des jails sur l'interface externe
# Tout ce qui arrive depuis $lan_network (soit le réseau virtuel) vers n'importe où
# Sortira avec l'IP réelle de la machine ($ext_if).
nat on $ext_if from $lan_network to any -> ($ext_if)

#S'assure qu'aucune IP indésirable ne sera forwardée vers mes JAILS HTTP - Puissant ! rdr on $ext_if inet proto tcp from { !<asia> !<bruteforce> } to $myself port { http, https } -> $JAIL_WEB # Exemple DNS notez l option pass rdr pass on $ext_if inet proto { tcp udp } from 192.168.0.0/24 to $myself port 53 -> $JAIL_DNS


La, on commence à réellement tatter de la véritable puissance du bourrier.

La première ligne est assez claire, elle fait du NAT sur l'interface externe de tout les packets arrivant $lan_network (Macro que l'on a déclarée plus haut).

La seconde ligne vient de mettre à mal IPtable une nouvelle fois.
Il est possible d'effectuer en quelque sorte du filtrage pendant le NAT/RDR.

Le comparateur { !<'asia'> !<'bruteforce'> } correspond à toutes les IP qui ne se trouvent PAS "!" dans les tables <'asia'> ET <'bruteforce'>, ces tables pouvrant être testé/manipulé par vos règles de filtrages.
Il aurait été aussi possible de fonctionner à l'inverse en autorisant par uniquement les IP se trouvant par exemple dans la table <'whitelist'> auquel inutile d'utiliser la négation "!".

Il existe plusieurs comparateurs :
  •  != (not equal)
  • < (less than)
  • > (greater than)
  • <= (less than or equal)
  • >= (greater than or equal)
  • >< (range)
  • (inverse range)
  •  : (inclusive range)

Je vous laisse imaginer les combinaisons de filtrages possible avec ces comparateurs, que cela soit sur les ports, sur les IP, tables, Interfaces réseaux ....

Un méchant h4ck3rz ayant voulu vous la faire à l'envers sur votre connexion SSH, sera non seulement blacklisté à la connexion, mais également sur votre service HTTP, alors c'est pas de la bonne ça ?

Pour la dernière ligne je redirige uniquement les IP de mon réseau local personnel, vers mon service DNS : l'option supplémentaire pass signifie que le paquet est redirigé directement vers $JAIL_DNS sans passer par les règles de filtrage déclarées plus loin, c'est une sorte de "goto-end" après la ligne.

You should not pass !

Maintenant que vous commencer à comprendre, la différence de potentiel entre les jouets et les outils professionnels ... tapons dans les règles de filtering des packets.

Pour rappels tous les packets sont soumises à toutes règles dans un ordre strict, comme définit plus haut, sauf ordre contraire.

Nous l'avons vu au chapitre précédent l'argument "pass" dans le cadre d'une redirection permet de court-circuiter les rêgles de filtering.
Dans les rêgles de filtering c'est l'argument "quick" qui aura cet effet.

Il est également possible d'utiliser les "comparateurs" vu dans la partie redirection/filtering.

Rien de bien sorcier encore une fois, la lecture des règles est bien claire.

La double règle de protection SSH fait doublons, elle est là pour détailler les possibilités de procéder :

# --- Rules Filtering ---
# -----------------------
# Par défaut tout est bloque en entree
# Sans parametre in/out c'est in qui est pris par defaut
# Attention toutefois avec la regle log all sur block ... (volumétrie)
block log all # A vous de voir pour la sortie. # block out log all # Antispoofing si vous machine a une patte sur le Web empêche les classes IP privée de se présenter.
# antispoof log quick # Block avec l option Quick les paquets matchant cette regles ne seront pas evalués plus loin block in quick log on $ext_if proto tcp from { <blacklist> <asia> } to any # Ici on s'occupe du bruteforce sur SSH comme vue au début pass in on $ext_if proto tcp from any to $ext_if port $sshport \ flags S/SA keep state \ ( max-src-conn-rate 5/30, max-src-conn 5 \ overload <blacklist> flush global ) # Autoriser la redirection plus haut vers http/https option quick pass in quick on $ext_if proto tcp to $JAIL_WEB port { http, https } keep state
# Autoriser uniquement des IP locales vers la jail DNS pass in on $ext_if proto { tcp, udp } <style>from 192.168.0.0/24 to $JAIL_DNS port 53 keep state

# Empeche les requetes sortante distantes sur le 53 ma Jail DNS-cache utilise DNSCrypt block out quick log on $ext_if proto { tcp udp } from any to any port 53
# Autoriser la connexion à SSH uniquement aux IP définies dans $admin pass in quick on $ext_if inet proto tcp from $admin to $myself port $sshport keep state
# Open bar sur la sortie pass out quick on $ext_if modulate state


La syntaxe de lecture est relativement similaire à celles des règles de redirection.

On retrouve en plus notre option "quick" qui permet de sortir tout de suite des règles si le packet "match" la condition. Cette condition permet d'apporter de nombreuses possibilités de filtering très intéressantes.

L'argument "keep state" en fin de règle permet de définir le comportement de PF vis à vis de l'état de la connexion une fois cette dernière établie, ce sont des options de tunning réseaux avancées dont il n'est pas nécessaire de connaitre toutes les valeurs possibles pour commencer."keep state" est l'option par défaut des règles.


Dat toolbox :

Outre /etc/pf.conf : qu'il faudra bien évidemment inclure dans votre sauvegarde machine, l'autre élément important pour "driver" Packet Filter est la commande pfctl qui vous donnera pleins d'infos et de moyen de driver bien utiles.

Quelques chose de vraiment cool avec FreeBSD c'est qu'il y a une grosse documentation, maintenue et béton, c'est souvent elle d'ailleurs qui cause le mieux :



Avec notamment :



Ou encore :



Quelques exemples pour ne pas salement vous lâcher la documentation en guise d'explication ;

Charge le fichier pf.conf
# pfctl -f /etc/pf.conf 

Analyse le fichier mais ne le charge pas (Très Pratique)
# pfctl -nf /etc/pf.conf

Montre les règles en court.
# pfctl -sr

Affiche l'état des tables.
# pfctl -ss

Affiche les compteurs les stats des filtres.
# pfctl -si

Affiche TOUT ce qui est possible de voir comme info.
# pfctl -sa

Charge le fichier .new attends 30 secondes ; puis recharge le fichier original (Pour éviter de se retrouver à la porte de chez soi !)
pfctl -vf /etc/pf.conf.new ; sleep 30; pfctl -f /etc/pf.conf

Affiche les Tables
# pfctl -s Tables

Afficher les entrées de la table table-name
# pfctl -T show -t table-name

Affiche les compteurs de "table-name"
# pfctl -T show -vt table-name  

Ajoute une 'ip-address' dans la table 'table-name'
# pfctl -T add -t table-name ip-address

Supprime 'Ip-address' de la table 'table-name'
# pfctl -T delete -t table-name ip-address 

Supprime les règles NAT :
# pfctl -F nat

Supprime les règles de queues :
# pfctl -F queue

Supprime les règles de filtrage :
# pfctl -F rules

Supprime TOUTES les règles/stat/contenu des tables.
# pfctl -F all



pfctl permet aussi d'ajouter/supprimer des régles à chaud, sans recharger la configuration, très sympathique dans un script en mode batch pour ouvrir un port sur demande par exemple.

# Insert une nouvelle règle au début des règles actuelles.
# (echo "block all"; pfctl -sr) | pfctl -f 

Insert une nouvelle règle à la fin des règles actuelles
# (pfctl -sr; echo "pass quick on lo0") | pfctl -f -


Je vous recommende également un packet également tiers très pratique : "pftop" (cela ne s'invente pas), qui vous donnera en temps réel à la manière d'un "top" les connexions sur votre firewall.



Pratique tout ceci n'est-ce pas ?

L'oeil bienveillant de Moscou :

Évidemment Packet Filter vous permet de jouer les gentils agents du KGB infiltrés dans les flux réseaux sur tout ce qui rentre et sort du firewall.

Une options présente dans les règles de Packet filter que je n'ai pas trop abordé jusqu'a maintenant et que vous n'avez pas manqué de remarquer évidemment est l'option "log" de nos règles.

Ces dernières ne seront réellement effectives que si j'ai au préalable déclarée une interface réseau virtuelle dédie à cette tâche de surveillance flicage.

Comme d'habitude avec FreeBSD pour tout ce qui attrait à la configuration du système et au démarrage des services cela se déclare dans "/etc/rc.conf" (oui encore lui), où vous rajouterez :

#Packet Filter (firewalling)
pf_enable="YES"
# log PF ?
pflog_enable="YES"


Cela aura pour effet de vous ajouter une interface virtuelle pflog qu'il est possible d'analyser en temps réel, de plus tout sera tracé dans un fichier /var/log/pflog. Ce dernier subira une rotation des logs automatique par newsyslog , l'outil de rotation des logs native de FreeBSD.

Petite mise en garde toutefois avec le mot clé "log", allez y tranquillement, dans l'usage de celui-ci dans vos déclarations. De préférence n'utiliser celui-ci que sur des règles "clés", ex surveillance d'un port de service. Ou alors bien surveiller sa volumétrie notamment /var/log.
En cas de tentatives de hack du genre SYN_FLOOD qui viendraient chatouiller les ports de vos services, cela pourrait vous causez de mauvaises surprises sur les volumétries.

D'une manière générale il est évidemment conseillé de monitorer ses différentes volumétries ;)

# file /var/log/pflog
/var/log/pflog: tcpdump capture file (little-endian) - version 2.4 (OpenBSD PFLOG, capture length 116)

La log est au format binaire, il n'est pas possible de l'éditer avec des éditeurs textes comme vi ou cat uniquement avec tcpdump ou des outils de capture de tram équivalent.

L'avantage de ce format est qu'il est possible d'utiliser toutes les options de tcpdump est un outil d'analyse de niveau chirurgical des flux réseau.
Ce dernier fournissant des informations très fournis sur les flux ainsi que de très nombreuses options d'analyses et filtres sur la log. Tcpdump mériterait de nombreux chapitres à lui tout seul, son usage sort du scope de cet article mais rapidement :

# - Afficher les connexions sur les port 80
# tcpdump -n -e -ttt -r /var/log/pflog port 80

# - Possibilité de preciser en fonction d'une IP et d'un port.
# tcpdump -n -e -ttt -r /var/log/pflog port 80 and host 192.168.1.3 

# Ou même agir directement sur l'interface virtuel pflog
tcpdump -n -e -ttt -i pflog0 host 192.168.4.2


En plus des options "natives" à tcpdump, Packet Filter propose des options "bonus" à ce dernier pour encore améliorer la synergie entre les deux outils comme :

Famille IPv4
  • ip
Famille IPv6.
  • ip6
Paquet passé par l'interface "int"
  • on int
Le numéro de la règle qui a matché le packet :
  • rulenum num
L'action effectuée sur le paquet "block ou pass"
  • action "type"
La raison pour laquelle l'action a été réalisée sur ce paquet
  • reason "type"
Packet entrant
  • inbound
Packet sortant
  • outbound

Ce qui en substance peut se traduire par des choses comme :

tcpdump -n -e -ttt -i pflog0 inbound and action block and on re0


Affiche en temps réel la liste des packets entrant qui sont bloqués sur l'interface re0.

Avec ce genre d'artillerie, plus d'excuses pour ne pas savoir ce qui se trame sur votre porte d'entrée.

Formatting Ubuntu Server ... (Y/n) : ?

Nous avons fait le tour de ce qui me semble être une bonne approche à l'isolement des services avec les jails et PF.

J'espère être resté assez clair dans l'ensemble et je ne pense pas avoir zapé trop de choses - hormis les Queues et la QoS mais ça ou pourra y revenir -

Evidemment Packet Filter propose d'autres options de tunning que je n'ai pas abordés ici, encore une fois, c'est la documentation qui en parle le mieux, tout est dessus, mais cette dernière n'en reste pas moins sobre et courte, je vous conseille fortement d'y mettre le nez.

Je sais que vous êtes chaud bouillant pour remplacer votre Ubuntu Server par FreeBSD mais tout de même je vous conseille élégamment de maquetter dans une VM pour commencer (l'ensemble tourne niquel sous VirtualBox) pour vous faire un peu la main, une fois votre conf au résultat plus ou moins attendu il sera super simple d'exporter les jails de votre maquettes vers votre production , le fichier /etc/pf.conf avec.

Attention toutefois la version Packet Filter FreeBSD est une version un peu en retard de sa soeur sous OpenBSD, et ne bénéficie pas de tout les mots clés par exemple comme "grep".

La prochaine fois on ira sans doute voir comment s'occuper un peu d'une politique de backup et restauration sérieuse et pas trop fatigante.

Ou bien peut-être abordera t-on une mise en place des jails plus "harmonieuse/réfléchit" entre ses services, découpage Mysql/Php/Nginx dans des jails différentes avec un Nginx-proxy-cache en frontal ... j'sais pas trop on verra bien ... p'tête que je parlerai photo après tout aussi y a pas de raisons, ou de la météo ou du cours de l'euro tient aussi c'est pas mal ça le cours de l'euro ...

A +
Pentakonix.
Généré le 2015-05-25 22:25 UTC avec Planet Venus