Deblan blog

Simon Vieille

IT director at Zenitude Groupe, symfony expert and debian addict

Bilan de l'année 2015

Cette nouvelle année est l'occasion d'établir un petit bilan des projets sur lesquels j'ai pu travailler. Ça n'a pas été l'année la plus productive mais j'ai tout de même apporté ma pierre à l'édifice.

Le premier projet en date est pdns-console, sous licence BSD, qui permet de gérer son serveur PowerDNS en ligne de commande. PowerDNS est un DNS qui s'appuie sur une base de données plutôt que des fichiers. Le petit plus de pdns-console est sa capacité à gérer des versions de zones à la manière de Gandi.

Également sous licence BSD, j'ai mis en ligne t411-console qui offre un outil en ligne de commande pour accéder au tracker t411. Il permet d'effectuer des recherches, d'accéder aux fichiers torrents et même de lancer leur téléchargement via transmission.

Cette fois sous GPLv3, Gist est le dernier projet de la portée. C'est une réécriture totale du WALL que j'héberge depuis des années. C'est un Pastbin like qui s'appuie sur GIT et qui permet de coloriser et partager du code source.

Au delà ses projets persos, j'ai réalisé quelques pull-requests vers 3 projets très différents. J'ai corrigé un morceau de documentation pour NativeScript. NativeScript est un ensemble d'outils pour réaliser des applications mobiles natives écrites en Javascript. J'ai aussi proposé une nouvelle fonctionnalité pour idct-sftp-client, une bibliothèque pour jouer avec SSH2 et SFTP en PHP. Enfin, j'ai un participé au projet La Brique Internet en écrivant du code pour l'un de ses composants, la php-piratebox.

Il n'y a plus qu'à faire mieux cette année :)

Challenge Accepted!


t411-console : plugin Oh My Zsh

Un court article pour publier un plugin qui permet d'auto-compléter les commandes de t411-console dans ZSH via Oh My Zsh.

Il faut à présent l'activer en modifiant la liste des plugins dans votre .zshrc : plugins=(... t411)

Enjoy :)


[TIPS] Postfix - Blacklister des emails

Si vous hébergez vos emails, l'arrivée massives de SPAM sera est très vite une réalité.

J'utilise plusieurs outils pour filtrer la majorité des mails indésirables :

  • système de greylist
  • SpamAssassin
  • Test SPF

Malgré tout ce n'est pas suffisant et j'ai décidé de blacklister manuellement une série d'emails, domaines et même un tld. Postfix permet de gérer ça très facilement. Il faut éditer /etc/postfix/main.cf et ajouter ces lignes :

smtpd_sender_restrictions =
    reject_unknown_sender_domain
    check_sender_access hash:/etc/postfix/sender_access regexp:/etc/postfix/sender_access_regexp

Il s'agit maintenant d'alimenter /etc/postfix/sender_access et /etc/postfix/sender_access_regexp. Voici un contenu type pour les 2 fichiers :

# /etc/postfix/sender_access
waukyne.com REJECT
welcome.aexp.com REJECT
womenstrapparfum.com REJECT
yourluxuryguide.com REJECT
zichoster.com REJECT
boyduj.com REJECT
asseight.com REJECT
mail184.wdc02.mcdlv.net REJECT

# /etc/postfix/sender_access_regexp
/\.biz$/ REJECT

Quand vous modifiez l'un des fichiers, il est nécessaire d'utiliser postmap :

# postmap /etc/postfix/sender_access
# service postfix reload

Il est maintenant rapide et simple de blacklister efficacement des expéditeurs.

Si des gens sont intéressés par mes listes, voici mes 2 configurations actuelles :


Service d'hébergement web

Je suis membre du Collectif des Hébergeurs Alternatifs,Transparents, Ouverts, Neutres et Solidaires : Chatons.org. Ce collectif rassemble des structures souhaitant éviter la collecte et la centralisation des données personnelles au sein de silos numériques du type de ceux proposés par les GAFAM (Google, Apple, Facebook, Amazon, Microsoft).

Ainsi, je propose de partager mon serveur auto-hébergé depuis une dizaine d'années.

Offre :

Elle est assez similaire à ce que vous pourriez trouver plus ou moins gratuitement :

  • Un serveur web configuré aux petits oignons
  • Frontend NGINX avec cache des assets (proxy sur demande)
  • Backend Apache2
  • PHP 7.3 (FPM), autres langages sur demande
  • MySQL 5.5, PostgreSQL* 9.4
  • Un espace de stockage fonction de l'espace disque disponible
  • Système de backup

Accès au serveur :

  • Accès SSH avec shell ZSH par défaut, sans restriction
  • SFTP

Les plus :

Infrastructure :

  • Derrière une ligne VDSL2 chez Free (80Mb/s descendant, 20Mb/s montant)
  • Core i5, 16Go de RAM ECC, système Debian GNU/Linux 9
  • Système et bases de données sur SSD
  • Data sur HDisk
  • Aucun panel : je réalise l'ensemble des configurations

À qui est destinée l'offre ?

Tout le monde peut bénéficier de cette offre. Cependant, je privilégie les projets dont l'objectif est de promouvoir le logiciel libre, par quelque moyen que ce soit, les personnes avec des revenus ne permettant pas l'accès à l'hébergement facile et enfin les étudiants. Pour faire une demande, contactez moi via ce formulaire. Prenez le temps d'expliquer votre projet :)

Les termes étoilés indiquent que ce sont des services non délivrés par défaut. J'analyse le coût et accepte ou pas la demande.

Conditions générales d'utilisation

Les CGU doivent être lues et acceptées pour bénéficier d'un ou plusieurs des services proposés. Cet engagement sera fera par e-mail.


Sauvegarde, panne, reprise de service

Si vous me suiviez depuis un moment, vous savez sans doute que je suis hébergé chez moi. J'ai en effet deux machines dans mon appartement qui me servent de serveurs pour mes sites web, mes mails, de l'IRC, GIT, etc. Bref, tout ce qui peut être hébergé dans mon appartement le sera.

J'ai cependant essuyé une panne matérielle qui m'a séparé de mon principal serveur. Une simple panne de disque qui a rendu indisponible ces différents services pendant quelques heures. Pour autant, je n'ai perdu (presque) aucune donnée et en dehors du temps qu'il m'a fallu pour reconfigurer la machine de réplication, tout est reparti dans l'ordre relativement rapidement.

J'en profite donc pour vous donner des pistes qui pourraient vous aider dans votre infrastructure. La question du jour est donc simple : comment mettre en place des outils de sauvegarde suffisamment performants pour rétablir des services assez rapidement ?

J'ai donc deux machines : celle qui offre tous les services (Hinata) et celle qui fait office de serveur réplication (Haruhi). Je n'ai pas encore l'envie de faire de la haute disponibilité (et dans un appartement, c'est peu probable que ça arrive…).

Sur Hinata était connecté un disque dur qui hébergeait de la sauvegarde versionnée. En effet, j'utilise l'excellent rsnapshot qui s'appuie sur Rsync et construit des sauvegardes sur des périodes données. J'ai 3 copies journalières, une copie quotidienne conservée pendant 7 jours, une copie par semaine conservée pour 1 mois et une copie mensuelle conservée sur une année…ce qui fait près de 25 versions ! Mes sites web y étaient sauvegardés, ainsi que mes dump SQL générés par wetddump (disponible sur mon dépot debian). J'y plaçait également des sauvegardes des répertoires /etc et /home. Mais ce n'est pas suffisant. Pour peu comme ce disque soit HS et qu'Hinata tombe avec, plus aucune donnée n'aurait été disponible. J'avais donc une synchronisation quotidienne des services sur Haruhi et une copie de sauvegarde des fichiers de configuration. J'en profitais également pour générer un fichier contenant la liste des paquets installés sur Hinata et je m'assurait que les utilisateurs et les groupes étaient toujours les mêmes des 2 cotés.

Après un peu plus d'un an de bons et loyaux services, Hinata est tombé et je devais tout refaire fonctionner sur Haruhi. J'ai donc pu installé les paquets qui manquaient en très peu de temps. Je me suis attardé à synchroniser les fichiers de configuration pour avoir le même comportement que sur Hinata et via la sauvegarde la plus récent du disque, je me suis assuré que mes services étaient bien à jour.

Au final, je me suis rendu compte que je n'ai pas sauvegardé 2 programmes compilés manuellement et qui se trouvaient de /usr/local. Je prendrai le temps de les réinstaller plus tard car ils ne sont pas critiques pour moi.

je suis satisfait de tout ça car ça s'est finalement bien passé et sans casse ! Voila pour la petite expérience…