A quand un délit de non sécurisation de site web pour l’Etat français ?

Assez régulièrement, je me balade sur le net à la recherche de choses rigolotes, ce qu’on appelle communément des boulettes d’admin sur les site web de l’Etat… Ministère, armée, préfectures … sportdenatureil y en a pour tous les goûts. J’observe ce genre de choses depuis 7 ou 8 ans, et plus le temps passe, plus on voit des choses hallucinantes… comme celle ci… une boulette made in Coldfusion, le tout hosté sur du Windows, l’admin à l’air … pour un peu on penserait à un Honeypot.
Comprenons nous, je ne vais pas ici m’amuser à divulguer des urls sensibles, toutes accessibles depuis une recherche dans Google, celle ci étant l’une des plus “montrables”. Mais à l’heure où on nous parle de défaut de sécurisation de ligne Internet pour les particuliers, je commence à m’agacer sérieusement de voir que l’argent public part dans des solutions propriétaires que les admins ou les prestataires externes ne savent même pas configurer correctement !
… et un jour, des hackers chinois ….

Plone 3.2.2 : l’installation avec Unified Installer

Ce billet est plus un aide mémoire pour moi même qu’autre chose, il vise à expliquer ce que fait l’Unified Installer de Plone et dans un second temps, d’aborder des problématiques de migrations d’instances non basées sur buildout vers des instances “buildoutisées”. Je dois dire que j’ai eu un peu de mal à me défaire des installations depuis les sources, à la mimine, j’aimais bien ça. Avec les nouvelles versions de Plone, ce n’est même plus possible, il est proposé sous forme d'”unified installer” qui compile tout bien comme il faut sans se prendre la tête, finit les galères en mode débug à tracké la librairie oubliée. L’installation et donc vos environnement de production s’affranchissent au plus possible du système pour proposer une sorte d’environnement virtualisé pour votre travail.
Ca part d’une bonne intention et les avantages de ce système sont évidents, soit, mais des fois, quand on a des instances Plone 3.xx pas forcément migrables en 3.2, c’est un peu lourd de trouver un source de produit installable simplement, en le décompressant dans le répertoire /Products de notre Plone.

On commence par récupérer notre installer qui fait le café :

$ wget http://launchpad.net/plone/3.2/3.2.2/+download/Plone-3.2.2-UnifiedInstaller.tgz

On le décompresse

$ tar -xvzf Plone-3.2.2-UnifiedInstaller.tgz

Pour notre exemple , on va faire un installation en mode non root (pas pour un environnement de production multi instances)
Je nomme dans cette exemple mon instance z35000, c’est le port sur lequel je vais la faire écouter.

$ cd Plone-3.2.2-UnifiedInstaller
$ ./install.sh standalone --instance=z35000

Si tout s’est passé correctement vous devez avoir un truc qui ressemble à ceci :

#####################################################################
######################  Installation Complete  ######################

Plone successfully installed at /home/bluetouff/Plone
See /home/bluetouff/Plone/z35000/README.txt
for startup instructions
(...)

Use the account information below to log into the Zope Management Interface
The account has full 'Manager' privileges.

Username: admin
Password: votrepassword

Voici ce que l’on trouve dans notre répertoire d’installation Plone en plus de notre instance:

~/Plone$ ls
buildout-cache  Python-2.4  z35000  Zope-2.10.7-final-py2.4

Et surtout voic ce que nous avons dasn notre instance :
buildout.cfg  fake-eggs  products    src  versions.cfg
bin                develop-eggs  parts      README.txt  var

Et ouai, un Plone “Buildout Ready” ! On va jeter un oeil sur le fichier buildout.cfg
$ emacs buildout.cfg

C’est dans ce fichier que lon configure notre port d’écoute du Zope, dans notre exemple on fait ecouter sur le 35000, on remplace donc la ligne :

http-address = 8080

par

http-address = 35000

On sauvegarde ce petit monde, mais je vous invite à lire ce fichier attentivement, c’est ici que l’on déclare les produits que l’on souhaite installer avant que buildout ne s’occupe du reste.

Une fois sorti, on lance une petite mise à jour de notre buildout qui ira chercher lui même les extensions qu’on lui demande.
On lance donc tout simplement un :

$ bin/buildout -n

Une fois les opérations achevées, on lance notre instance :

$ cd bin/
$ ./instance start

Il est recommandé au premier lancement de lancer l’instance en debug pour voir si tout va bien :

$ ./instance fg

Votre instance est maintenant disponible depuis votre navigateur sur :

http://vous:35000 (remplacez cette valeur au besoin par l’ip de votre machine de travail et le port d’écoute que vous lui avez affecté dans le buildout.cfg, ou 8080 pour celui par défaut).

Pilot Systems organise le Plone World 2009 Day à La Cantine

wpd-2009Pilot Systems organise le Plone World Day 2009 à la Cantine le 22 avril prochain. L’occasion pour nous de voir ce qui se fait sur la planète Plone et des très (trop) nombreuses nouveautés de ces derniers mois. Et oui, Plone change beaucoup en ce moment et cette journée mondiale est pour les professionnels et amateurs éclairés qui utilisent Plone, l’occasion de rencontrer un public pour exposer les orientations, les projets, les innovations de ce système de gestion de contenu professionnel. Toonux participera bien évidemment à cette rencontre aux côtés de Pilot Systems et NPAI et de toutes personnes souhaitant se joindre à nous pour (re)découvrir ce CMS, qui reste à ce jour avec Drupal l’un des rares CMS à usage professionnel.

Au programme cette année : utilisation de Plone en environnement virtualisé avec Xen, Amazon, VMWare, KVM ainsi que Cloud Computing …

L’inscription est vivement recommandée

Installation de KDE 4 sur Debian Lenny

J’ai voulu tester le nouveau KDE4, il me semblait qu’il était passé en version par défaut dans Lenny, mais ce n’est pas encore le cas, un apt-get install kde vous installera un 3.5. Si vous souhaitez migrer vers KDE4, il faudra le faire un peu plus manuellement, rien là de bien sorcier encore une fois.

On ouvre donc son sources.list et on ajoute le dépot de KDE4 pour Lenny :
$ sudo emacs /etc/apt/sources.list

On y ajoute la ligne suivante :
deb http://kde4.debian.net/ lenny main

On update
$ apt-get update

Et enfin on lance l’install de KDE4
$ sudo apt-get install kde4 kde-l10n-fr

Installation du driver Nvidia sur Debian Lenny

L’installation des pilotes graphique Nvidia au moment où je me suis penché dessus posait quelques problèmes puisque les dépôts stables ne proposaient pas d’image kernel Nvidia valide rien de bien grave, j’ai simplement utilisé l’image proposé en sid.

On commence donc par éditer le sourcelist
$ sudo emacs /etc/apt/sources.list

On y ajoute les 3 lignes suivantes temporairement
deb ftp://ftp.us.debian.org/debian/ sid main contrib non-free
deb ftp://ftp.us.debian.org/debian/ testing main contrib non-free
deb ftp://ftp.us.debian.org/debian/ stable main contrib non-free

On lance un petit update
$ apt-get update

On passe en root et on installe le nécessaire
$ su
# apt-get install nvidia-kernel-source module-assistant nvidia-settings nvidia-xconf
ig

On construit le driver proprement
# m-a prepare && m-a a-i nvidia
# grep -q ^nvidia /etc/modules || echo nvidia >> /etc/modules
# apt-get install nvidia-glx
# rmmod nvidia

# modprobe nvidia

On édite le xorg.conf pour indiquer qu’on veut utiliser le nouveau driver
# emacs /etc/X11/xorg.conf

et on indique à la section device la ligne suivante :
Driver "nvidia"

Vous pouvez maintenant redémarer au prochain lancement du gdm vous devriez loader le nouveau driver Nvidia

Enfin, pensez à virer les dépots de sid et contrib que nous avions ajouter en rééditant le sourcelist
$ sudo emacs /etc/apt/sources.list

Et en supprimant ces 3 lignes :

deb ftp://ftp.us.debian.org/debian/ sid main contrib non-free
deb ftp://ftp.us.debian.org/debian/ testing main contrib non-free
deb ftp://ftp.us.debian.org/debian/ stable main contrib non-free

On lance encore un update
$ apt-get update

Et voilà c’est finit.

Installation iwlwifi-3945 et iwlwifi-4965 sous debian lenny

Voici une procédure simple et rapide pour faire fonctionner votre carte wifi Intel sur une Debian Lenny

On commence par verifier son matériel :
$ lspci
06:00.0 Network controller: Intel Corporation PRO/Wireless 4965 AG or AGN [Kedron] Network Connection (rev 61

Puis son kernel :
$ uname -a
Linux blackice 2.6.26-1-686 #1 SMP Sat Jan 10 18:29:31 UTC 2009 i686 GNU/Linux

On installe les sources et les header correspondant à notre version de kernel (à adapter en fonction de la version de kernel que vous retourne le uname -a
$ sudo apt-get install linux-source-2.6.26 linux-headers-2.6.22-1-686

On édite le sourcelist pour ajouter des dépôts non-free
$ sudo emacs /etc/apt/sources.list

On ajoute à la suite des dépôts déjà présents les deux suivants :
deb http://ftp.de.debian.org/debian lenny main non-free
deb-src http://ftp.de.debian.org/debian lenny main non-free

On recherche le package contenant le firmware iwlwifi :
$ apt-cache search iwlwifi
firmware-iwlwifi - Binary firmware for Intel Wireless 3945 and 4965

Puis on l’installe
$ sudo apt-get install firmware-iwlwifi

Et enfin, on active la carte wifi
$ sudo ifconfig wlan0 up

Zope, Plone, zc.Buildout … installation d’eggs à la sauce Python

python_logo_without_textsvgzc.Buidout est un outil qui est sensé nous faciliter les déploiements, en créant un environnement virtuel, Buildout se charge de vous compiler aux petits oignons toutes des dépendances de l’egg que vous cherchez à installer. Finit les installation et décompressions de tra.gz dans le répertoire Product de votre Plone, voici un mini résumé de la procédure pour installer vos produits :

  • On commence par éditer le buildout.cfg à la racine du buildout, dans la partie “eggs =”
  • On ajoute le nomp de l’egg du produit à ajouter
  • on lance un ./bin/buildout

Voici un exemple avec PloneKeywordManager qui nous donne :

[email protected]:/home/zope/hw.buildout$ sudo -u zope ./bin/buildout
Develop: '/home/zope/hw.buildout/src/sd.common'
Develop: '/home/zope/hw.buildout/src/sd.rendering'
Develop: '/home/zope/hw.buildout/src/sd.contents'
Develop: '/home/zope/hw.buildout/src/sd.imaging'
Develop: '/home/zope/hw.buildout/src/sd.app'
Develop: '/home/zope/hw.buildout/src/hw.skin'
Develop: '/home/zope/hw.buildout/src/five.grok'
Develop: '/home/zope/hw.buildout/src/grokcore.viewlet'
Develop: '/home/zope/hw.buildout/src/vaporisation'
Download error: (104, 'Connection reset by peer') -- Some packages may not be found!
Uninstalling zopepy.
Uninstalling instance.
Updating plone.
Updating linguaplone.
Updating zope2.
Updating fake eggs
Updating productdistros.
Installing instance.
Getting distribution for 'Products.PloneKeywordManager'.
Got Products.PloneKeywordManager 1.6b2.
Generated script '/home/zope/hw.buildout/bin/instance'.
Installing zopepy.
Generated interpreter '/home/zope/hw.buildout/bin/zopepy'.

Il ne nous reste qu’à redémarrer l’instance :

[email protected]:/home/zope/hw.buildout$ sudo -u zope ./bin/instance restart

La doc incontournable se trouve ici.

Des applications de P2P sécurisées et anonymes sont déjà disponibles pour contourner l’HADOPI

Comme expliqué à mainte reprises, le Ministère de la Culture s’appuie sur un postulat de départ complètement stupide : une ip = un coupable

Seul problème : une IP ne peut attester de l’identité d’un téléchargeur. Pirate bay menace carrément d’inonder ses trackers bittorent d’adresse ip aléatoires de manière à fausser complètement le mécanisme de riposte graduée. Par ce biais les mails seraient systématiquement envoyés à de parfait innocents pour les fait qu’on leur reproche. Et tout le problème est bien là, les sociétés privées mandatées par les ayants droit que sont Advestigo, CopeerRight et consors ne peuvent qu’observer ce qui est observable.

Nous allons donc en toute logique assister à une migration massive des utilisateurs de réseau p2p classiques vers des applications préservant l’anonymat et introduisant la cryptographie lourde. Dans cette course à l’armement, les internautes ont une bonne longueur d’avance, d’une part avec les application de p2p déjà disponibles, mais aussi et surtout avec d’autres protocoles d’échanges de fichiers qui vont de la pièce joite email, à DCC, en passant par les newsgroups et les réseaux wifi maillés urbains. Voici 6 exemples d’applications déjà disponibles :

ANts P2P : Ants masque les ip et crypte la communication des échanges, il s’agit d’un projet open source hosté sur Sourceforge. Voir le site officiel

MUTE : MUTE dit s’inspirer du fonctionnement des colonies de fourmis pour “créer une intelligence collective”. Il n’utilise pas de liens directs pour les échanges, de cette manière, il contourne le plus simplement du monde le dispositif de l’HADOPI. MUTE est aussi Open Source. Voir le site officiel

Freenet : Freenet est un réseau informatique anonyme et décentralisé construit sur l’Internet. Il vise à permettre une liberté d’expression et d’information totale fondée sur la sécurité de l’anonymat, et permet donc à chacun de lire comme de publier du contenu. Il offre la plupart des services actuels d’Internet (email, téléchargement, web, etc.). Freenet a été créé suite à une inquiétude croissante à propos des libertés sur internet. ( source Wikipedia ) – Voir le site officiel

GNUnet : GNUnet est une infrastructure de réseau pair à pair sécurisé qui n’utilise aucun service centralisé ou de confiance (…) L’anonymat est obtenu par le fait que les messages envoyés par un pair ne peuvent pas être distingués des messages routés par ce même pair. Tous les pairs agissent en tant que routeurs et utilisent des connexions chiffrées avec une utilisation stable de la bande passante pour communiquer entre eux. GNUNet est, avec Freenet, surement le framework le plus prometteur. Comme son nom l’indique il est aussi open source. Voir le site officiel

WASTE : Encore un système client / serveur de p2p entièrement sécurisé et anonymisé, reposant sur une architecture distribuée, chaque noeud route le trafic, les liens sont encrypté grâce à Blowfish et les sessions sont authentifiées par une clef publique RSA. Il est open source et le projet est également hosté sur Sourceforge.

Zultrax P2P : Zultrax utilise le réseau GNUtella, la liste des features autour de la sécurité et de l’anonymat semble convaincante et suffit sans aucun problème à contourner les dispositifs de l’HADOPI, aucune information récoltée sur le réseau sécurisé de Zultrax, ZEPP, ne peut être exploitable.. Voir le site officiel

Une bonne alimentation pour votre ordinateur peut régler des problèmes de wifi

Il y a des jours où on se passerait bien de geeker, c’est ce qu’on se dit quand une alimentation crame. Déjà parce qu’une alimentation ça n’a rien de palpitant comme pièce et qu’en plus c’est souvent ce qu’il y a de plus fragile et donc que l’on se retrouve à changer le plus souvent.
Il y a 6 mois de ça, j’avais besoin d’un desktop digne de ce nom, j’ai opté pour un Packard Bell équipé d’un quadcore Q6600 et d’une bonne carte graphique, une nvidia je sais pas quoi … J’ai ensuite ajouté à cette configuration pas mal de choses : carte tuner, 2 cartes wifi, 3 disques durs externes, 2 disques durs internes, plus toute une ribanbelle de périphériques (imprimante, clavier souris sans fil, hub, iPhone … ça commence vraiment à être le bin’s ici).
Depuis le branchement d’une carte wifi Senao 600mW, mon ordinateur a commencé à avoir un comportement bizarre, en wifi particulièrement où j’observais des variations de débit assez incompréhensibles.

De retour de Rotterdam pour le Plone World Day, après trois petits jours d’absence, j’allume mon ordinateur et là paff … ce bruit que je ne connais que trop bien : et une alim une ! Une “ridicule” 450w (un minimum de nos jours pour faire tourner une configuration un peu musclée)… on va charger un peu la mule. Direction Montgallet, et là je tombe sur ce qui me semble un bon rapport qualité prix (je cherchais à partir de 850w) : une OCZ Elite X Stream 1000w.

Montage rapide malgré l’impressionnante quantité de connectiques (vive le SLI)… reboot … finit le problèmes de sautes de débit en wifi et surtout …une incroyable portée de la carte wifi (à peu prêt 30% de réseaux supplémentaires détectés … bluffant).

Moralité, pour du wifi Long Range : ne pas hésiter à envoyer la gouache 😉

Fonera 2200 : flashage avec le firmware RO.B.IN d’OpenMesh

La Fonera est un petit boîtieropenmesh fantastique, si vous n’en êtes pas encore convaincu mais que le concept vous intéresse, je vous invite très vivement à visionner cette présentation de ce petit boîtier par Lefinnois. Aujourd’hui, on va s’intéresser au mesh, ou comment donner à vos Foneras le pouvoir de répéter un signal pour acheminer un peu de bande passante dans une zone morte, une problématique très classique en wifi.

Peut être êtes vous curieux de voir comment fonctionne le mesh, ce, sans trop vous prendre la tête et surtout, avec du matériel peu onéreux. Si vous avez des problèmes de couverture dans votre maison ou votre appartement d’une pièce à l’autre, le mesh, dont la fonction première est de répéter le signal initial issu de la source de connexion peut s’avérer une excellente solution pour acheminer du débit et de la réception là où c’est pas toujours évident.

OpenMesh propose avec son firmware une interface de gestion sur son site web (un peu comme Meraki). OpenMesh est un projet de wifi communautaire complètement open source. Il propose, avec des points d’accès à bas coût (moins de 50 dollars l’unité), de déployer des réseaux maillés importants en offrant une interface de monitoring cartographiée (API Google Map) et un portail captif personnalisable. Redoutable d’efficacité, le firmware d’Open Mesh repose sur les travaux d’Antonio Anselmi RO.B.IN (Routing Batman Inside) et vous l’avez deviné … B.A.T.M.A.N. (better approach to mobile ad-hoc networking. Avec Open-Mesh, déployer son réseau est assez ludique et consiste à placer des points d’accès sur une carte en renseignant leurs adresses MAC.

Voici une sortie console de toutes les étapes du flashage que nous allons ensuite expliquer

[email protected]:~$ cd Bureau/foneraflash/
[email protected]:~/Bureau/foneraflash$ wget http://www.open-mesh.com/flashing/openwrt-atheros-vmlinux.lzma
–10:16:58– http://www.open-mesh.com/flashing/openwrt-atheros-vmlinux.lzma
=> `openwrt-atheros-vmlinux.lzma’
Résolution de www.open-mesh.com… 66.206.86.150
Connexion vers www.open-mesh.com|66.206.86.150|:80… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Longueur: 786 432 (768K) [text/plain]
100%[====================================>] 786 432 223.13K/s ETA 00:00
10:17:02 (222.45 KB/s) - « openwrt-atheros-vmlinux.lzma » sauvegardé [786432/786432]
[email protected]:~/Bureau/foneraflash$ wget http://www.open-mesh.com/flashing/openwrt-atheros-root.jffs2-64k
–10:17:08– http://www.open-mesh.com/flashing/openwrt-atheros-root.jffs2-64k
=> `openwrt-atheros-root.jffs2-64k’
Résolution de www.open-mesh.com… 66.206.86.150
Connexion vers www.open-mesh.com|66.206.86.150|:80… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Longueur: 3 407 872 (3.2M) [text/plain]
100%[====================================>] 3 407 872 287.66K/s ETA 00:00
10:17:21 (260.13 KB/s) - « openwrt-atheros-root.jffs2-64k » sauvegardé [3407872/3407872]
[email protected]:~/Bureau/foneraflash$ wget http://www.open-mesh.com/flashing/easyflash
–10:17:29– http://www.open-mesh.com/flashing/easyflash
=> `easyflash’
Résolution de www.open-mesh.com… 66.206.86.150
Connexion vers www.open-mesh.com|66.206.86.150|:80… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Longueur: 22 620 (22K) [text/plain]
100%[====================================>] 22 620 57.48K/s
10:17:30 (57.26 KB/s) - « easyflash » sauvegardé [22620/22620]
[email protected]:~/Bureau/foneraflash$ wget http://www.open-mesh.com/flashing/flash
–10:17:34– http://www.open-mesh.com/flashing/flash
=> `flash’
Résolution de www.open-mesh.com… 66.206.86.150
Connexion vers www.open-mesh.com|66.206.86.150|:80… connecté.
requête HTTP transmise, en attente de la réponse… 200 OK
Longueur: 83 [text/plain]
100%[====================================>] 83 –.–K/s
10:17:35 (7.11 MB/s) - « flash » sauvegardé [83/83]
[email protected]:~/Bureau/foneraflash$ chmod +x easyflash
[email protected]:~/Bureau/foneraflash$ chmod +x flash
[email protected]:~/Bureau/foneraflash$ ./flash
[sudo] password for bluetouff:
Reading rootfs file openwrt-atheros-root.jffs2-64k with 3407872 bytes…
Reading kernel file openwrt-atheros-vmlinux.lzma with 786432 bytes…
rootfs(0×006e0000) + kernel(0×000c0000) + nvram(0×00000000) sums up to 0×007a0000 bytes
Peer MAC: 00:18:84:80:xx:xx
Peer IP : 192.168.1.1
Your MAC: 00:ba:be:ca:ff:ee
Your IP : 192.168.1.0
Setting IP address…
Loading rootfs…
Sending rootfs, 6656 blocks…
Initializing partitions…
Rootfs partition size now 0×006f0000
Flashing rootfs…
Loading kernel…
Sending kernel, 1536 blocks…
Flashing kernel…
Setting boot_script_data…
Done. Restarting device…
[email protected]:~/Bureau/foneraflash$

Voilà, désolé pour le pavé, nous allons maintenant voir la procédure en détail :

  • On commence par s’assurer qu’on dispose du bon matériel, à savoir des Fonera 1, modèle 2200 (vous trouverez ce numéro sur le stickers argenté au dos de la Fonera). Attention, les 2100 ne fonctionneront pas. Comme FON ne peut savoir à l’avance s’ils vont vous livrer une Fonera 2200 ou une 2100 quand vous commandez une Fonera 1, il est ingénieux de se rabattre sur les Acctons distribués par OpenMesh, ils sont très similaires aux Foneras, tout blancs, ils ont même une certaines classe (le plastique blanc fait moins toc en vrai que sur le photos, c’est limitte apple style 🙂
  • On crée un dossier que l’on appelle pour notre exemple “foneraflash”

$ mkdir foneraflash

  • On rentre dans ce dossier et on y télécharge le nécessaire pour flasher notre point d’accès

$ wget http://www.open-mesh.com/flashing/openwrt-atheros-vmlinux.lzma
$ wget http://www.open-mesh.com/flashing/openwrt-atheros-root.jffs2
$ wget http://www.open-mesh.com/flashing/easyflash
$ wget http://www.open-mesh.com/flashing/flash

  • On rend nos deux scripts exécutables :

$ chmod +x easyflash
$ chmod +x flash

  • Raccordez tout de suite en ethernet votre ordinateur à la fonera (pas via un swich), mais ne la mettez pas sous tension tout de suite !
  • On lance maintenant le script

$./flash

  • Une fois seulement cette commande tapée, mettez votre Fonera sous tension et observez votre terminal. Cette étape prend environ 20 minutes et si tout se passe correctement vous obtiendrez ceci :

Reading rootfs file openwrt-atheros-root.jffs2-64k with 3407872 bytes…
Reading kernel file openwrt-atheros-vmlinux.lzma with 786432 bytes…
rootfs(0×006e0000) + kernel(0×000c0000) + nvram(0×00000000) sums up to 0×007a0000 bytes
Peer MAC: 00:18:84:80:xx:xx
Peer IP : 192.168.1.1
Your MAC: 00:ba:be:ca:ff:ee
Your IP : 192.168.1.0
Setting IP address…
Loading rootfs…
Sending rootfs, 6656 blocks…
Initializing partitions…
Rootfs partition size now 0×006f0000
Flashing rootfs…
Loading kernel…
Sending kernel, 1536 blocks…
Flashing kernel…
Setting boot_script_data…
Done. Restarting device…
[email protected]:~/Bureau/foneraflash$

Attention, pour flasher vos autres boîtiers, veuillez répéter cette procédure intégralement.

Voir la documentation originale (US)