To content | To menu | To search


Monday 12 January 2015

C'est en forgeant qu'on fait des trucs

C'est resté plutôt discret jusqu'à maintenant, mais j'ai mis en place une petite forge et j'y ai stocké la plupart de mes scripts, au moins comme ça ils seront versionnés.

On pourra me faire remarquer que l'accès git anonyme ne fonctionne pas, j'y travaille (ou pas)

On pourra aussi me faire remarquer que le certificat dans le lien ci-dessus n'est pas valide, si ça vous gène vous pouvez toujours installer le CA qui va bien, ou utiliser votre doigt pour enlever le "s" dans l'url.

Billets connexes

Tuesday 6 January 2015

perl, c'est vraiment du caca de chameau.

Je devais mettre à jour git à cause de la faille rigolote d'il y a quelques semaines, mais utilisant un OS moderne et sensible à la casse (FreeBSD), je n'étais pas pressé.

J'ai fini par le faire, en utilisant pkg, le gestionnaire de paquets binaires. Dans la pile de dépendance figurait la mise à jour de perl de la version 5.16 vers la 5.18, pétant six sondes de monitoring au passage, car les modules qu'elles utilisaient n'avaient pas été mis à jour.

Ça fait plaisir de voir que les mises à jour binaires se passent aussi mal qu'en utilisant CPAN.
 

Tiens, ça me rappelle la fois où entre deux versions "mineures", ils ont changé des nom de fonctions. Quels déconneurs ces mongers.

Friday 2 January 2015

Alors oui mais bon

Comme l'auront sans doute remarqué les deux-trois bots qui passent ici, il y a visiblement un bug avec le theme "Fallseason", qui n'affiche que le premier billet de la première page, mais pas les billets suivants...

...mais en même temps j'ai la super-flemme de chercher d'où ça vient, et puis je suis super occupé avec les bonnes-résolutions-de-début-d'année-que-je-tiendrais-jamais, alors s'il vous plaît, je vous en prie.

J'ai donc choisi la solution la plus simple: j'ai changé le thème par défaut :)

Billets connexes

Tuesday 30 December 2014

2014 je ne sais plus

Wednesday 8 October 2014

Le double effet DNSSEC

Il y a un mois j'ai mis en place DNSSEC pour sécuriser mes serveurs de noms. Tout c'est bien passé, j'ai même fait un petit script pour signer mes zones après chaque mise à jour.

Sauf que j'avais zappé un truc: l'expiration des clés. Chaque enregistrement reste valable...30 jours. Au bout de cette période les clés sont invalidées (ce qui brise la chaîne), les résolveurs cessent de faire confiance aux serveurs de noms. Les domaines disparaissent donc du réseau...

C'est ce qui est m'est donc arrivé hier soir, et a persisté sans doute un peu toute la journée. Avec l'ensemble des sites aux fraises, et sans doute pas mal de retard de mails.

Du coup je pense que je vais remettre l’expérience DNSSEC à plus tard.

Edit 11/10: DNSSEC is back, avec cette fois des dates d'expiration beaucoup plus lointaines, et surtout du monitoring.

Saturday 20 September 2014

Fuel is pumping...Tengine, now.

J'aime beaucoup nginx. Malheureusement, il possède quelques défauts horripilants, voir pénalisants dans un cadre professionnel, comme sa conception monolithique (recompilation à chaque ajout de module...), ou le manque de support syslog (à moins de tenter la version instable ou de prendre une licence qui coûte un bras et demi).

Heureusement, les p'tits gars de Taobao (groupe Alibaba) ont forké le projet il y a quelques années et ont corrigé les manques cités ci-dessus, tout en assurant une compatibilité totale avec nginx; cela à donné Tengine.

La compatibilité est tellement totale que l'exécutable s'appelle pareil, rien à changer dans la conf si ce n'est d'ajouter une section dso {} contenant les modules à charger. 

Hormis l'upload que je n'ai pas testé, les perfs sont à peu près identiques pour les deux softs. Quand à la stabilité...l'avenir en jugera !

Billets connexes

Sunday 17 August 2014

installation de Debian wheezy sur un Dlink DNS-320

J'utilise avec grand bonheur une debian chrootée sur mon NAS. Jusqu'à maintenant j’étais bloqué sur la version squeeze, à cause du noyau fourni (2.6.22), incompatible avec la version d'udev utilisée par la nouvelle distribution.

Jusqu'à maintenant, car dlink propose depuis tout récemment une mise à jour de son firmware incluant un noyau 2.6.31 ouvrant la voie à la modernité.

Parmi les grandes nouveautés de ce firmware, une connectivité ipv6 native...désactivée par défaut (!)

Il faut donc l'activer manuellement:

# sysctl net.ipv6.conf.egiga0.disable_ipv6=0

Maintenant le double effet kiss-kool de l'ipv6: n'étant plus protégée par le NAT, l'interface d'admin se retrouve à poil sur le net, car je n'ai pas de firewall devant le NAS (il est relié au reste du réseau via la freebox).

Pour éviter ça, l'astuce consiste à faire squatter les ports ouverts par le lighttpd natif par un autre serveur web, à modifier les ports utilisés, à désactiver le support ivp6 (qui lui, est activé par défaut...), et enfin à rendre le fichier immutable pour qu'il ne soit pas écrasé régulièrement par le NAS:

# sed -i s/80/8888/g /mnt/root/etc/lighttpd/lighttpd.conf
# chattr +i /mnt/root/etc/lighttpd/lighttpd.conf

Ensuite il ne reste plus qu'à lancer un signal (kill) à lighttpd pour qu'il s’arrête. Le NAS le relancera automatiquement, avec les paramètres définis dans /mnt/root/etc/lighttpd/lighttpd.conf. Magique.

Ne pas oublier, évidemment, d'ajouter les commandes ci-dessus au fichier boot/linuxrc pour que les modifications soient effectives après redémarrage.

Quand à la mise à jour vers wheezy proprement dite, pas grand chose de particulier: aptitude semble à éviter sur le coup (calcul de dépendances pendant des plombes), préférer apt-get qui lui lancera la mise à jour de suite:

# sed -i s/squeeze/wheezy/g /etc/apt/sources.list
# apt-get upgrade
# apt-get dist-upgrade

Dernier truc pas glop, le nouveau noyau m’empêche de faire fonctionner le module tun pré-compilé pour le noyau 2.6.22, et un module compilé par mes soins provoque un kernel panic au démarrage d'openvpn. À suivre, donc.

Billets connexes

Saturday 2 August 2014

et j'ai screené, screené-é...

J'ai pris l'habitude de travailler sur mes serveurs en lançant un screen sur une machine, puis en ouvrant différentes fenêtres pour chaque session ssh sur les jails de la machine, ce qui me permet de naviguer aisément d'une jail à l'autre. Problème, il faut tout refaire après un reboot.

La solution consiste donc à scripter: on crée une nouvelle session détachée (appelée ici default), on la renomme avec le nom de la machine, puis on crée de nouvelles fenêtres à l'intérieur (commande screen), en les renommant à chaque fois avec le nom de la VM visée. Enfin, on s'attache à la session créée sur la première fenêtre:

#!/usr/local/bin/zsh

window=0
session="default"

if screen -list | grep -q "$session"
then
   echo "Error: session \"$session\" already exists; please kill it first."
   echo "type \"screen -X -S $session quit\" to do so."
   exit 1
fi


screen -d -m -S $session
screen -S $session -p $window -X exec printf "\033k%s\033\\" `hostname -s`

for server in server1 server2 server3
do
   let window++
   screen -S $session -X screen ssh $server
   screen -S $session -p $window -X exec printf "\033k%s\033\\" $server
done

screen -r $session -p 0

On notera la syntaxe toujours limpide des commandes "à échappement" pour renommer une fenêtre, trouvées sur cette page.

Thursday 31 July 2014

proso-dis-moi-tout !

J'ai mis en place un serveur Jabber, Prosody. Pour ceux qui comme moi veulent se la jouer hipsters et ont un accès IPv6, cela peut poser quelques problèmes, comme évoqué dans ce thread (une obscure histoire de résolution DNS, où Prosody demande une adresse IPv6 et si il n'y en a pas, considère qu'il n'y a pas d'adresse...du tout).

Seul hic, la solution proposée (indiquer manuellement les adresse d'écoutes) ne fonctionne pas...

La seule solution pas trop chiante (pour pas avoir à régler le problème manuellement en telnet à chaque redémarrage) est d'ajouter les lignes suivantes au script d'init de prosody:

( echo ">hosts['domain1.tld'].modules.s2s.route_to_new_session.s2sout.try_connect.has_ipv4=true" ; \
  echo ">hosts['domain2.tld'].modules.s2s.route_to_new_session.s2sout.try_connect.has_ipv4=true" ; \
sleep 1 ) | telnet localhost 5582

Bien entendu il faut que mod_admin_telnet soit activé.

Il est possible que se problème soit lié à ma configuration, car elle est proche du thread cité plus haut (jail freebsd avec un alias sur lo1).

Si vous avez plus simple/élégant (j'avoue que la solution ci-dessus est plutôt crade), je suis preneur.

Billets connexes

Sunday 13 April 2014

Inside my SSL I wait and heartbleed

BlNJfcnCYAADPM4.jpg

Je suppose que comme moi vous n'avez pas pu échapper au vent de panique qui a soufflé sur l'ensemble du web à propos de la faille "heartbleed". Du coup j'ai fait quelques tests qui, si ils m'ont rassuré sur le fait que la Tourmentine n'était pas vulnérable, m'ont interpellé au niveau sécurité, encore aux normes de 2006: clé de 1024 bits, signature MD5 (!), SSLv2 (!!), TLS 1.0 Max... Bref, il était temps de rafraîchir tout ça, histoire de ne pas rendre la vie trop facile aux grandes oreilles de la NSA.

Les services sécurisés de la Tourmentine sont donc protégés depuis hier par un tout nouveau certificat; au lieu d'un truc auto-signé tout sale, le certificat en question est maintenant signé par ma propre autorité de certification, que vous pouvez télécharger ici si vous ne voulez pas avoir d'alerte de sécurité.

Cela ne concerne pour l'instant que les adresses en "https://", mais les services mail devraient suivre sous peu. En attendant, vous pouvez obtenir un minimum de confidentialité sur toutes les adresses gérées par ce serveur, en ajoutant le fameux "https://" au début de celles-ci.

- page 15 of 31 -