Le but de cet article est de présenter un rapide tutoriel d'installation de Seeks, un moteur de recherche dont le but est de regrouper les utilisateurs ayant des requêtes similaires, mais qui permet également de classer les résultats provenant de divers moteurs de recherche.
Avant toute chose, n'oubliez pas que des nœuds de test ont été mis en place, notamment à cette adresse. Cela vous permettra de tester le moteur de recherche avant de l'installer chez vous.
Seeks étant encore jeune et en développement, il vous faudra le compiler. Tout d'abord, installer les outils nécessaires :
marty@babar:~$ sudo apt-get install autoconf automake libtool libcurl4-gnutls-dev libpcre3-dev
Télécharger la dernière version stable de seeks sur Sourceforge. Décompressez l'archive et lancez la génération des fichiers de configuration et du Makefile :
marty@babar:seeks$ ./autogen.sh
On croise les doigts, on lance le script de configuration et on compile :
marty@babar:seeks$ ./configure && make
Si tout s'est bien passé, ça devrait se finir avec :
make[3]: quittant le répertoire « /home/marty/seeks/src » make[2]: quittant le répertoire « /home/marty/seeks/src » make[2]: entrant dans le répertoire « /home/marty/seeks » make[2]: quittant le répertoire « /home/marty/seeks » make[1]: quittant le répertoire « /home/marty/seeks »
On lance le proxy pour vérifier qu'il fonctionne :
marty@babar:seeks$ cd src marty@babar:src$ ./seeks Mar 13 23:30:54.535 b76d66d0 Info: listen_loop(): seeks proxy configuration successfully loaded Mar 13 23:30:54.535 b76d66d0 Info: Reloading configuration file 'lsh/lsh-config' Mar 13 23:30:54.535 b76d66d0 Info: listen_loop(): lsh configuration successfully loaded Mar 13 23:30:54.536 b76d66d0 Info: listen_loop(): attempt to find plugins... Mar 13 23:30:54.540 b76d66d0 Info: loaded plugin websearch-hp Mar 13 23:30:54.540 b76d66d0 Info: Reloading configuration file '/home/marty/seeks/src/plugins/websearch/websearch-config' Mar 13 23:30:54.541 b76d66d0 Info: Registering plugin websearch, and 7 CGI dispatchers Mar 13 23:30:54.541 b76d66d0 Info: registering CGI dispatcher websearch-hp Mar 13 23:30:54.541 b76d66d0 Info: registering CGI dispatcher seeks_hp_search.css Mar 13 23:30:54.541 b76d66d0 Info: registering CGI dispatcher seeks_search.css Mar 13 23:30:54.541 b76d66d0 Info: registering CGI dispatcher search Mar 13 23:30:54.541 b76d66d0 Info: registering CGI dispatcher search_cache Mar 13 23:30:54.541 b76d66d0 Info: registering CGI dispatcher search_similarity Mar 13 23:30:54.541 b76d66d0 Info: registering CGI dispatcher search_clusterize Mar 13 23:30:54.541 b76d66d0 Info: Listening on port 8118 on IP address 127.0.0.1
Seeks va donc tourner comme un proxy (il est basé sur Privoxy), et on l'interrogera via le port 8118. La configuration du proxy se fait via le fichier « config » (dans le répertoire src).
Tout d'abord, il faut régler Firefox pour qu'il passe par le proxy :
Configuration de Firefox
On peut ensuite accéder à Seeks de différentes façons :
Ce dernier comportement est assez ennuyeux, car Seeks intercepte toutes les recherches et les effectue lui-même. Du coup, impossible d'effectuer une simple recherche sur Google ! Pour éviter cela, éditez le fichier src/plugins/websearch/patterns/qi_patterns, et commentez (# en début de ligne) les moteurs de recherche dont les requêtes ne seront pas interceptées. Pour ma part, aucune requête ne doit être interceptée :
#.google.*/search? #.google.*/custom? #.bing.*/search? #.cuil.com/search?
Relancez Seeks pour que les paramètres soient pris en compte.
La seconde partie consiste en l'installation d'un serveur web, qui permettra de mettre en place une page web qui interrogera le proxy et gèrera les recherches. Il existe plusieurs scripts qui peuvent être utilisés. Le plus simple est d'utiliser le script PHP, avec le serveur web lighttpd. On installe tout le nécessaire :
marty@babar:~$ sudo apt-get install lighttpd php5-cgi php5-curl
On active le module fastcgi, et on relance :
marty@babar:~$ sudo lighty-enable-mod fastcgi marty@babar:~$ sudo /etc/init.d/lighttpd force-reload
Il reste à copier le script PHP (clic droit → Enregistrer la cible du lien sous...) dans le dossier /var/www/seeks :
marty@babar:~$ wget http://15minutesoffame.be/nico/blog2/data/documents/search.php marty@babar:~$ sudo mkdir /var/www/seeks && sudo mv search.php /var/www/seeks
On lance le proxy, et on accède à la page de recherche à l'adresse http://localhost/seeks/search.php/websearch-hp (remplacez localhost par votre nom de domaine quand vous y accédez de l'extérieur).
Pour éviter le log des recherches :
marty@babar:src$ ./seeks 2> /dev/null
Le proxy est encore instable, pour le relancer automatiquement lorsqu'il plante on le lance dans une boucle infinie :
marty@babar:src$ while true; ./seeks; done
La configuration du moteur de recherche se fait via le fichier src/plugins/websearch/websearch-config. On peut par exemple modifier la liste des moteurs de recherche interrogés, et activer le « content analysis » :
enable-content-analysis 1
Pensez également à configurer votre firewall pour autoriser les connexions entrantes sur le port 80 si vous voulez qu'on puisse accéder à votre serveur web.
![]()
Billet original de Marty.
Votez pour cet article sur le Planet Libre.
Depuis une dizaine d'années, Google étend ses tentacules dans tous les domaines de l'informatique. Tout a commencé avec un moteur de recherche, puis les services se sont multipliés : hébergement de vidéos, d'images, e-mail, cartographie du monde, actualités, édition de documents en ligne, chat, réseau social, navigateur et maintenant systèmes d'exploitation (Android pour smartphones et bientôt Chrome OS). Si des alternatives viables existent pour tous ces domaines, le moteur de recherche reste, de loin, le plus utilisé. Fautes d'alternatives ? Pas sûr...
Avant de commencer, une question s'impose : pourquoi se passer de Google si il fonctionne très bien ? Tout est question de monopole et de contrôle de l'information. A l'heure actuelle, 85 % des recherches se fait via Google. Il ne faut pas chercher loin avant d'entrevoir les dérives que cela peut entraîner : si Google supprime une page de ses résultats, celle-ci disparaît aux yeux de 85 % de la population. Ceci constitue un contrôle potentiel de l'information suffisamment dangereux pour remettre en cause le monopole du géant de Mountain View.
En concurrence directe avec Google, plusieurs essayent de se faire un nom sur le marché.
Tout d'abord, Yahoo, qui essaie tant bien que mal d'empiéter sur les plates-bandes de Google. Yahoo propose un package assez complet : moteur de recherche assez performant, e-mail, actualités, hébergement d'images... Le concurrent direct, mais avec un gros point faible : Yahoo ne propose rien de bien original face au géant.
Récemment, Microsoft a laissé tombé son MSN search totalement ignoré de tous par Bing, étroitement lié aux services déjà existants comme Hotmail. Là encore, rien de nouveau sous le soleil qui mérite l'attention...
Parmi les autres concurrents, Exalead a, pendant un temps, attiré l'attention de par ses innovations technologiques, mais le succès n'a jamais été au rendez-vous.
Le seul intérêt de ces moteurs est de présenter leurs résultats dans un ordre différent de celui de Google, ce qui est déjà un avantage.
Basés sur les moteurs de recherche cités ci-dessus, ces moteurs ont pour but d'aider des associations grâce aux bénéfices générés par la publicité. Hooseek, Doona, Veosearch ou encore Ecosia permettent de sélectionner des associations qui recevront une certaine somme à chacune de vos utilisations.
A noter, un gros point noir : il est souvent nécessaire de créer un compte de manière à « choisir les associations qui seront rétribuées ». Il faut être conscient que cela signifie la création d'un profil utilisateur qui en dira long sur vos centres d'intérêt.
La politique de traitement des données utilisateurs de Google a déjà été pointée du doigt : grâce à l'utilisation de cookies ou d'un compte iGoogle, le géant peut dresser un profil de chaque utilisateur et, entre autres, proposer de la publicité ciblée.
C'est dans un esprit totalement opposé que des moteurs respectueux de la vie privée sont apparus. Tout d'abord, Ixquick, qui non seulement propose une version sécurisée de son moteur de recherche (https), mais ne conserve aucuns adresse IP (ce qui est certifié par de jolis logos dont je n'ai aucune idée de la validité réelle). Ixquick agit également comme un méta-moteur : il consulte plusieurs moteurs de recherche et compile les résultats.
Ensuite, Yauba, qui dans le même esprit ne conserve aucune trace des utilisateurs. Yauba possède également un avantage intéressant, celui de compiler les résultats de recherche par source : sites web, blogs, actualités, vidéos. Finalement, il intègre un proxy qui permet de visiter anonymement les résultats de recherche.
Notez qu'au niveau anonymat, le fait d'avoir une adresse IP dynamique et d'effacer les cookies à chaque session (sélectionner « Conserver les cookies jusqu'à la fermeture de Firefox », dans l'onglet « Vie privée » de Firefox) permet déjà un anonymat relatif, ou du moins évite de créer un profil utilisateur dans n'importe quel moteur de recherche. A moins de faire des recherches sur des sujets pas très nets, c'est souvent largement suffisant.
Pour aller plus loin dans la décentralisation des recherches, il existes des moteurs de recherche fonctionnant sur le principe du P2P. Ceci permet d'échapper à toute forme de filtrage éventuel.
YaCy (sous licence GPL) est un moteur de recherche fonctionnant sur ce principe : chaque personne installe son client, et la recherche va se faire en interrogeant les autres clients connectés. Il dispose également de son propre « web crawler », c'est-à-dire qu'il peut indexer des liens à partir d'un page de référence. Je dois avouer que je n'ai pas été vraiment convaincu... Il semble que la recherche ne tienne pas compte de la langue, et du coup on se retrouve avec des résultats plutôt inexploitables. Je m'y suis peut-être mal pris, remarquez...
À mi-chemin entre le moteur P2P est le méta-moteur, Seeks est un moteur de recherche libre (AGPL) dont le but est de garder en cache les recherches d'un groupe de personne ayant les mêmes centres d'intérêt. En pratique, on l'installe sur un serveur, et à chaque requête Seeks va (i) chercher dans son cache les éventuelles recherches similaires et (ii) rapatrier les résultats des grands moteurs de recherche (Google, Yahoo, Bing et Cuil). Il dispose également d'une option de « clustering », qui est censée regrouper les résultats selon leur contenu (et ainsi les classer selon les homonymies). Le projet est encore un peu jeune et pas exempt de bugs, mais je dois avouer que je suis fan. A terme, Seeks permettra aux utilisateurs de classer les résultats, et les noeuds Seeks pourront communiquer pour partager leur index.
Des nœuds publics ont été mis en place, notamment sur le site principal ainsi qu'un autre accessible en connexion sécurisée. Pour ajouter Seeks dans la barre de recherche Firefox, copiez ce fichier dans le dossier ~/.mozilla/firefox/xxxxxxxx.default/searchplugins (créez searchplugins si nécessaire). Il n'est, pour le moment, pas possible de faire une recherche d'images via Seeks.
Dans le prochain article, nous verrons comment installer son propre nœud Seeks.
![]()
Billet original de Marty.
Votez pour cet article sur le Planet Libre.
Après des mois et des mois sans nouvel article, j'ai décidé de me remettre à mon blog. Je profite de l'occasion pour mettre à jour ma version de Wordpress, et là, c'est le drame : la mise-à-jour foire, et impossible de me connecter en administrateur (erreur dans la base de données). Je cherche alors un moteur de blog alternatif, et je tombe sur PluXml.
PluXml est un moteur de blog assez récent et peu connu, en comparaison des monstres que sont Wordpress et Dotclear. Sous licence GPL, ses principaux atouts sont sa taille réduite (quelques centaines de ko), sa légèreté et sa rapidité. Ce qui a également fait pencher la balance, c'est sa gestion tout en XML (d'où le nom), que ce soient les fichiers de configuration ou les articles. Il suffit donc de faire un copie du répertoire d'installation en cas de backup, et on ne se casse pas la nénette avec une base de données. PluXml gère évidemment les commentaires, les thèmes et les plugins, mais ne dispose pas encore d'un gestionnaire de plugins automatisé.
Au rayon des inconvénients, on pourra lui reprocher un manque dans le choix des plugins, un éditeur de texte un peu simpliste et une galerie d'image un peu juste également. Cependant, PluXml reste un choix parfait pour quiconque veut un blog simple et sans chichis, rapide et efficace.
![]()
Billet original de Marty.
Votez pour cet article sur le Planet Libre.
Depuis quelques mois, les solutions de VPN payant type Ipredator ont fleuri sur la toile. Ces solutions d'anonymat, séduisantes au premier abord, possèdent un gros point noir : qui se cache réellement derrière ces VPN ? N'y a-t-il pas un risque que ces « bienfaiteurs de l'Internet libre » ne revendent un jour toutes les données collectées ? Comme on n'est jamais mieux servi que par soi-même, nous allons voir comment monter son propre serveur VPN grâce à OpenVPN. Par ailleurs, ce VPN pourra aussi vous servir à passer les éventuelles restrictions mises en place sur votre lieu de travail, ou sécuriser votre connexion lorsque vous devez vous connecter sur des réseaux publics peu sécurisés.
Avant toute chose, vous devez avoir accès à un serveur, si possible avec une bande passante suffisante. En effet, ce serveur va servir de relai entre vous et la cible distante : la bande passante en upload du serveur deviendra votre bande passante en download maximale. Dès lors, mieux vaut se tourner vers un service professionnel, offrant souvent une bande passante allant jusqu'à 100 Mb/s (environ 12 Mo/s). Cherchez donc du côté des VPS (Virtual Private server) : vous aurez toutes les possibilités d'un serveur dédié, mais à prix (et performances) réduit. Un serveur OpenVPN est très léger, donc 128 Mo de RAM devraient être suffisants. En France, Gandi, OVH ou LWS ont des offres intéressantes à moins de 15 € par mois. Partagée entre 2 ou 3 personnes de confiance, cette solution est rapidement plus avantageuse qu'une solution type Ipredator. Attention tout de même car beaucoup de VPS promettent une bande passante de 100 Mbits/s, mais en pratique ce n'est pas le cas. La bande passante n'est pas partagée de manière équitable entre les différentes machines virtuelles, et résultat les performances laissent à désirer (j'ai déjà eu le cas avec du 100 Mbits/s qui en pratique approchait péniblement le 100 kbits/s...). Cherchez donc des solutions où la bande passante est moindre, mais assurée (comme Gandi le propose).
Avant de mettre en place votre VPN, pensez à sécuriser votre serveur. Une machine avec IP fixe accessible 24h/24 sera irrémédiablement la cible d'attaques.
Installez tout d'abord OpenVPN, bien souvent disponible dans les dépôts de base de votre distribution :
marty@server:# apt-get install openvpn
OpenVPN peut fonctionner avec plusieurs types d'authentification. Nous utiliserons l'authentification par clés et certificats, plus sûre que le classique login/mot de passe. Pour générer les clés et certificats nécessaires, des scripts ont été créés et se situent, sous Ubuntu 9.04, dans le dossier /usr/share/doc/openvpn/examples/easy-rsa/2.0. Commençons par copier tout ceci dans un répertoire de travail (tout le processus doit s'effectuer en tant que root) :
marty@server:# cd /etc/openvpn marty@server:# cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0 /etc/openvpn marty@server:# mv 2.0/ easy-rsa/ marty@server:# cd easy-rsa/
Modifiez tout d'abord les variables du fichiers vars :
export KEY_COUNTRY="US" export KEY_PROVINCE="CA" export KEY_CITY="SanFrancisco" export KEY_ORG="Fort-Funston" export KEY_EMAIL="me@myhost.mydomain"
Initialisez-le via la commande :
marty@server:# . ./vars
(vous devez bien écrire point/espace/point, ce n'est pas une erreur).
On efface les éventuelles clés présentes :
marty@server:# ./clean-all
On crée le certificat et la clé de l'Autorité de Certification (CA) :
marty@server:# ./build-ca
Les fichiers ca.crt et ca.key sont alors créés dans le dossier keys, et les variables précédentes devront être confirmées. Ces fichiers sont les fichiers centraux de la sécurité de votre serveur OpenVPN. La clé vous servira à signer les clés du (des) serveur(s) ainsi que des différents clients, et le certificat servira de « carte d'identité » à laquelle serveur(s) et clients se réfèreront.
On crée le certificat et la clé pour le serveur :
marty@server:# ./build-key-server server
Laissez toutes les options par défaut (y compris la demande de mot de passe), et répondez « yes » à la question de la signature :
Certificate is to be certified until Sep 5 14:02:19 2019 GMT (3650 days) Sign the certificate? [y/n]:y 1 out of 1 certificate requests certified, commit? [y/n]y
Le certificat du serveur sera alors signé avec la clé de l'Autorité de Certification. Les fichiers server.crt et server.key seront créés.
On crée le certificat et la clé pour le client :
marty@server:# ./build-key client1
De la même manière que pour le serveur, on laisse toutes les options par défaut et on accepte la signature par avec la clé de la CA. Les fichiers client1.crt et client1.key seront créés. Il est recommandé de créer une paire certificat/clé par client, de manière à pouvoir les révoquer par la suite si nécessaire (au cas où le client les perdrait).
Pour que notre serveur fonctionne, nous auront également besoin des paramètres de Diffie-Hellman :
marty@server:# ./build-dh
Le fichier dh1024.pem est créé. J'avoue, je n'ai pas compris à quoi cela servait précisément dans le cas de OpenVPN...
Finalement, nous augmentons encore la sécurité de notre serveur grâce à tls-auth :
marty@server:# openvpn --genkey --secret keys/ta.key
Le fichier ta.key est créé.
Au terme dela génération de ces diverses clés et certificats, nous obtenons les fichiers suivants :
En vert, les fichiers qui ne sont pas secrets, en rouge les fichiers secrets. Attention toute particulière au fichier ca.key qui sert à signer tous les certificats. Il permet d'autoriser ou non un client, et il est donc fondamental qu'il soit gardé secret !
En pratique, les fichiers nécessaires sont :
Notez bien que le fichier ca.key n'est nécessaire ni sur le serveur, ni chez aucun client ! Gardez-le en lieu sûr ;-)
Toute la configuration s'effectue dans un fichier quelconque, ci-après server.conf. Voilà un exemple typique :
#Configuration serveur
mode server # c'est le fichier de configuration du serveur
proto tcp # protocole TCP
port 443 # port 443 (https)
dev tun # mode routé
#Clefs
ca keys/ca.crt
cert keys/server.crt
key keys/server.key
dh keys/dh1024.pem
tls-auth keys/ta.key 0 # 0 pour le serveur
cipher AES-256-CBC # algorithme de chiffrement
#Configuration VPN
#client-to-client # permet la connexion entre clients
server 10.8.0.0 255.255.255.0 # adresse IP attribuées sur le VPN
push "redirect-gateway def1 bypass-dhcp" # redirection du flux de données
push "dhcp-option DNS 208.67.222.222" # utilisation de DNS alternatifs
push "dhcp-option DNS 208.67.220.220"
keepalive 10 120 # ping toutes les 10 secondes,
# considéré comme down après 120 secondes sans réponses
#Divers
user nobody # on passe de l'utilisateur root à nobody
group nogroup # nogroup est typique d'Ubuntu, groupe nobody pour les autres
chroot /etc/openvpn/ovpn_jail # chroot de openvpn
persist-key # n'accède plus à certaines options,
persist-tun # car réduction des privilèges utilisateur
comp-lzo # compression des données
#Log
verb 3 # verbosité du log (1-9, 4 recommandé)
mute 20 # ne répète pas plus de 20 fois un message
status openvpn-status.log # fichier de statut
log-append /var/log/openvpn.log # fichier de log
Tout d'abord, le port utilisé (443) a été choisi parce qu'il n'est jamais bloqué (port https). Vous pouvez utiliser un autre port plus aléatoire si vous ne devez pas contourner de blocages quelconques.
Le mode routé (dev tun) est préféré au mode bridgé pour sa plus grande simplicité de configuration. Si vous avez une utilisation « basique » du VPN, ne vous préoccupez pas de ça.
De nombreux algorithmes de chiffrement sont disponibles. Nous choisissons ici le chiffrement AES 256 bits, qui est assez élevé. Si votre serveur rame, tentez de passer à du 128 bits.
client-to-client permet à deux clients de se connecter l'un à l'autre, par exemple via un serveur NFS. Dans notre cas, cette ligne est commentée.
server 10.8.0.0 255.255.255.0 définit le range d'adresses IP locales qui seront attribuées. Le serveur prendra l'adresse 10.8.0.1, et les clients 10.8.0.2, 10.8.0.3, 10.8.0.4... Attention : cette adresse ne doit rentrer en conflit avec aucune autre. Évitez donc d'utiliser les habituelles 192.168.x.x ou 10.108.x.x.
La ligne contenant « redirect-getaway » spécifie que tout le flux doit être redirigé vers le VPN. Attention à cette ligne qui peut différer d'une version à l'autre. Il semble que sous CentOS, il ne faille pas mettre les mots clés « def1 bypass-dhcp », alors que sous Ubuntu 9.04 cela est obligatoire.
Par la suite, la sécurité est améliorée en diminuant les privilèges du programme (« user nobody », « group nogroup ») et en effectuant un chroot (le dossier spécifié doit être créé). De cette manière, une éventuelle faille d'OpenVPN ne pourra être exploitée qu'en tant qu'utilisateur restreint, dans un environnement restreint.
Vous pouvez faire un premier test, en commentant la ligne « log-append » pour que le log s'affiche directement dans le terminal. Pour cela, on lance (en root, dans le dossier où se trouvent le fichier server.conf ainsi que le répertoire keys) :
marty@server:# openvpn server.conf OpenVPN 2.1_rc11 i486-pc-linux-gnu [SSL] [LZO2] [EPOLL] [PKCS11] built on Mar 9 2009 Diffie-Hellman initialized with 1024 bit key /usr/bin/openssl-vulnkey -q -b 1024 -mControl Channel Authentication: using 'keys/ta.key' as a OpenVPN static key file Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication TLS-Auth MTU parms [ L:1560 D:168 EF:68 EB:0 ET:0 EL:0 ] ROUTE default_gateway=XXX.XXX.XXX.XXX TUN/TAP device tun0 opened TUN/TAP TX queue length set to 100 /sbin/ifconfig tun0 10.8.0.1 pointopoint 10.8.0.2 mtu 1500 /sbin/route add -net 10.8.0.0 netmask 255.255.255.0 gw 10.8.0.2 Data Channel MTU parms [ L:1560 D:1450 EF:60 EB:135 ET:0 EL:0 AF:3/1 ] chroot to '/etc/openvpn/ovpn_jail' and cd to '/' succeeded GID set to nogroup UID set to nobody Listening for incoming TCP connection on [undef]:443 Socket Buffers: R=[87380->131072] S=[16384->131072] TCPv4_SERVER link local (bound): [undef]:443 TCPv4_SERVER link remote: [undef] MULTI: multi_init called, r=256 v=256 IFCONFIG POOL: base=10.8.0.4 size=62 MULTI: TCP INIT maxclients=1024 maxevents=1028 Initialization Sequence Complete
La première ligne en gras indique que l'interface tun0 a bien été créée (c'est le réseau virtuel), et les 3 autres que le chroot ainsi que le changement de propriétaire ont bien fonctionné. Dans un autre terminal, le ifconfig donne :
eth0 Link encap:Ethernet HWaddr 00:16:3e:51:5f:e9 inet addr:XXX.XXX.XXX.XXX Bcast:XXX.XXX.XXX.255 Mask:255.255.252.0 inet6 addr: fe80::216:3eff:fe51:5fe9/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:162377096 errors:0 dropped:0 overruns:0 frame:0 TX packets:153812357 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:4278174076 (4.2 GB) TX bytes:2956197161 (2.9 GB) lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:127075 errors:0 dropped:0 overruns:0 frame:0 TX packets:127075 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:77312107 (77.3 MB) TX bytes:77312107 (77.3 MB) tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 inet addr:10.8.0.1 P-t-P:10.8.0.2 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:100 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
L'adresse IP du serveur sur le réseau virtuel (tun0) est bien 10.8.0.1.
En l'état, votre serveur ne fonctionnera pas. Pourquoi ? Parce que le firewall n'a pas été configuré bien sûr ;-)
Avant toute chose, on s'assure que le forwarding est activé en tapant dans un terminal (en root) :
marty@server:# echo 1 > /proc/sys/net/ipv4/ip_forward
Comme dans la section précédente, nous utiliserons Webmin pour configurer le firewall.
Dans la section Packet filtering, on ajoute les règles :
Incoming packets (INPUT) Accept If protocol is TCP and destination port is 443 Accept If input interface is tun0 Forwarded packets (FORWARD) Accept If input interface is tun0 Accept If output interface is tun0
Et dans la section Network address translation :
Packets after routing (POSTROUTING) Masquerade If source is 10.8.0.0/24 and output interface is eth0
Adaptez évidemment en fonction du protocole, port et adresse IP choisis.
Avec Iptables, cela donne :
iptables -A INPUT --dport 443 -p tcp iptables -A INPUT -i eth0 iptables -A FORWARD -i tun0 -j ACCEPT iptables -A FORWARD -o tun0 -j ACCEPT iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE
Ces règles sont peut-être un peu trop permissives, il est surement possible de les améliorer.
Configurer un client est très simple, car cela repose sur la création dun fichier client.conf, à la manière du server.conf. Voilà le fichier client.conf associé au server.conf précédent :
#Configuration client client # mode client dev tun proto tcp-client remote XXX.XXX.XXX.XXX 443 #Remplacer XXX par l'adresse IP ou le nom d'hôte resolv-retry infinite nobind persist-key persist-tun #Clefs ca keys/ca.crt cert keys/client1.crt key keys/client1.key tls-auth keys/ta.key 1 #1 pour le client cipher AES-256-CBC #Ces 3 lignes sont inutiles si spécifié dans la configuration du serveur #redirect-gateway def1 bypass-dhcp #dhcp-option DNS 208.67.222.222 #dhcp-option DNS 208.67.220.220 comp-lzo verb 3
Il faut bien s'assurer que les options sont identiques entre client et serveur (compression, port, protocole, chiffrement...), car une seule erreur et ça ne fonctionnera pas. Après avoir fourni les clés fichiers nécessaires (voire section précédente) ainsi que le fichier client.conf au client concerné, installé OpenVPN sur la machine cliente, il suffit de lancer dans un terminal (après avoir préalablement lancé OpenVPN sur le serveur):
marty@client:# openvpn client.conf OpenVPN 2.1_rc7 i486-pc-linux-gnu [SSL] [LZO2] [EPOLL] built on May 8 2009 WARNING: No server certificate verification method has been enabled. See http://openvpn.net/howto.html#mitm for more info. /usr/bin/openssl-vulnkey -q -b 1024 -mControl Channel Authentication: using 'keys/ta.key' as a OpenVPN static key file Outgoing Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication Incoming Control Channel Authentication: Using 160 bit message hash 'SHA1' for HMAC authentication LZO compression initialized Control Channel MTU parms [ L:1560 D:168 EF:68 EB:0 ET:0 EL:0 ] Data Channel MTU parms [ L:1560 D:1450 EF:60 EB:135 ET:0 EL:0 AF:3/1 ] Local Options hash (VER=V4): '2f2c6498' Expected Remote Options hash (VER=V4): '9915e4a2' Attempting to establish TCP connection with XXX.XXX.XXX.XXX:443 [nonblock] TCP connection established with XXX.XXX.XXX.XXX:443 Socket Buffers: R=[87380->131072] S=[16384->131072] TCPv4_CLIENT link local: [undef] TCPv4_CLIENT link remote: XXX.XXX.XXX.XXX:443 TLS: Initial packet from XXX.XXX.XXX.XXX:443, sid=4421b77a 4dc14e71 VERIFY OK: depth=1, /C=US/ST=CA/L=SanFrancisco/O=Fort-Funston/CN=Fort-Funston_CA/emailAddress=me@myhost.mydomain VERIFY OK: depth=0, /C=US/ST=CA/L=SanFrancisco/O=Fort-Funston/CN=server/emailAddress=me@myhost.mydomain Data Channel Encrypt: Cipher 'AES-256-CBC' initialized with 256 bit key Data Channel Encrypt: Using 160 bit message hash 'SHA1' for HMAC authentication Data Channel Decrypt: Cipher 'AES-256-CBC' initialized with 256 bit key Data Channel Decrypt: Using 160 bit message hash 'SHA1' for HMAC authentication Control Channel: TLSv1, cipher TLSv1/SSLv3 DHE-RSA-AES256-SHA, 1024 bit RSA [server] Peer Connection Initiated with XXX.XXX.XXX.XXX:443 SENT CONTROL [server]: 'PUSH_REQUEST' (status=1) PUSH: Received control message: 'PUSH_REPLY,redirect-gateway def1 bypass-dhcp,dhcp-option DNS 208.67.222.222,dhcp-option DNS 208.67.220.220,route 10.8.0.1,topology net30,ping 10,ping-restart 120,ifconfig 10.8.0.6 10.8.0.5' OPTIONS IMPORT: timers and/or timeouts modified OPTIONS IMPORT: --ifconfig/up options modified OPTIONS IMPORT: route options modified OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified TUN/TAP device tun0 opened TUN/TAP TX queue length set to 100 ifconfig tun0 10.8.0.6 pointopoint 10.8.0.5 mtu 1500 route add -net XXX.XXX.XXX.XXX netmask 255.255.255.255 gw 192.168.1.1 route add -net 0.0.0.0 netmask 128.0.0.0 gw 10.8.0.5 route add -net 128.0.0.0 netmask 128.0.0.0 gw 10.8.0.5 route add -net 10.8.0.1 netmask 255.255.255.255 gw 10.8.0.5 Initialization Sequence Complete
et ça devrait fonctionner ! Pour vérifier, on tente d'abord un ifconfig qui devrait renvoyer quelque chose de similaire à ce qui s'affiche sur le serveur, et vérifier son adresse IP sur http://checkip.dyndns.com. Vous devriez alors avoir l'adresse IP du serveur. Par ailleurs, vérifiez également que vos DNS ont été changés (allez sur le site http://www.opendns.com/, et si c'est le cas « You're using OpenDNS » devrait être indiqué). Si ce n'est pas le cas, changez-les manuellement dans le fichier /etc/resolv.conf ou via l'applet de configuration réseau.
Côté serveur, on peut lancer OpenVPN grâce à la commande :
marty@server:# nohup openvpn server.conf &
nohup permet de ne pas terminer la commande (en l'occurence, openvpn) lorsqu'on coupera la connexion SSH. Selon la distribution utilisée, il est possible qu'OpenVPN se lance automatiquement au démarrage.
Côté client, il vous faudra installer le paquet network-manager-openvpn pour pouvoir effectuer la configuration depuis l'applet réseau. Avec les versions récentes de ce dernier, il suffit de glisser-déposer le fichier client.conf dans l'onglet VPN pour que la configuration soit automatique. On activera/désactivera alors simplement la connexion via l'applet réseau.
En principe, tout devrait être fonctionnel. Si ce n'est pas le cas, n'hésitez à pas demander de l'aide au support de votre hébergeur, certains nécessitant une configuration supplémentaire pour fonctionner.
Vous pouvez également vérifier le trafic réseau grâce à Wireshark (à lancer en root). Allez dans Capture → Options, puis cliquez sur Start. Dans la colonne Info, vous devriez voir la mention « Encrypted data » de nombreuses fois, et des transferts vers le port https (si vous avez choisi le port 443, évidemment). Si c'est le cas, c'est que ça fonctionne !
![]()
Billet original de Marty.
Votez pour cet article sur le Planet Libre.
Dans cet article, nous aborderons la connexion à distance vers un PC sous GNU/Linux. L'intérêt premier est évidemment l'administration d'une machine à distance, mais cela peut également être utile pour la récupération de fichiers lors de voyages à l'étranger. Outre la mise en place d'un serveur SSH, nous traiterons de la gestion firewall, du routeur éventuel ainsi que de l'adresse IP dynamique.
Le serveur est la machine à laquelle vous voulez vous connecter, et qui retiendra la majorité de notre attention. Cette machine devra être équipée d'une distribution GNU/Linux quelconque. Une installation sous Windows est possible, mais semble être plus du bricolage qu'autre chose.
Par défaut, l'attribution de l'adresse IP sur le réseau local (LAN) se fait par DHCP, et est donc variable. Cela peut poser des problèmes lorsque, par exemple, le routeur devra transférer les données vers votre serveur. La première chose à faire est donc d'attribuer une IP fixe à votre serveur. Pour cela, vous devez connaitre l'adresse IP de votre passerelle ainsi que la gamme d'adresses IP attribuées. Par exemple, chez la passerelle est 192.168.1.1 et les IP sont attribuées entre 192.168.1.2 et 192.168.1.254. La configuration à appliquer dans votre système devra ressembler à ça :
Configuration en IP fixe
Cette fenêtre varie d'une distribution à l'autre, mais elle est souvent accessible via un clic sur l'applet de connexion réseau. Vous devrez peut-être aussi indiquez les serveurs DNS (permettant de faire le lien entre une adresse IP et le nom de domaine) ; indiquez ceux d'OpenDNS, à savoir 208.67.222.222 et 208.67.220.220.
Installons tout d'abord le serveur SSH, à savoir OpenSSH. Sous debian/Ubuntu :
marty@serveur:~$ sudo apt-get install openssh-server
À ce stade, le serveur est déjà opérationnel, mais allons tout d'abord faire un tour dans les options de configuration du fichier /etc/sshd.conf. La majorité des options par défaut sont bonnes, mais nous allons en modifier quelques unes. Tout d'abord le port d'écoute, par défaut 22, peut être modifié :
Port 12345
Changer le port par défaut permet de réduire les tentatives de connexion par des robots. Évidemment, une personne physique effectuant un scan de port complet pourra facilement trouver les ports ouverts. Ensuite, s'assurer que la connexion en root est impossible :
PermitRootLogin no
Root est le seul utilisateur commun à toutes les distributions (excepté Ubuntu, pour lequel il est désactivé par défaut et remplacé par sudo). Par conséquent, interdire la connexion à root obligera un attaquant éventuel à trouver un nom d'utilisateur existant. Et finalement, désactiver l'authentification par mot de passe :
PasswordAuthentication no UsePAM no
Comment allons-nous nous connecter au serveur ? Et bien en utilisant ce que nous avons appris précédemment, à savoir une paire de clés ! De manière similaire à ce que nous faisions avec GnuPG, nous génèrerons une paire de clé sur chaque client, et nous fournirons la clé publique au serveur. De cette façon, seuls les clients ayant une clé enregistrée sur le serveur pourront s'y connecter. Notez que dans un premier temps, vous devrez avoir un accès physique au serveur pour copier la clé publique. Si ce n'est pas le cas, laissez les paramètres précédents sur « yes » le temps d'enregistrer votre clé.
Quand ces modifications ont été appliquées, relancez le démon ssh :
marty@serveur:~$ sudo /etc/init.d/ssh restart
Si vous êtes derrière un routeur, et que votre serveur doit être accessible depuis d'extérieur de votre LAN, vous devez transférer le port choisi vers votre serveur. Concernant le firewall, si vous savez comment configurer le votre, ouvrez simplement le port que vous avez attribué, sous le protocole TCP. Si ce n'est pas le cas ou que vous voulez découvrir Webmin, lisez donc la suite ;-)
Tout bon serveur qui se respecte se doit d'avoir un firewall bien configuré. Sous GNU/Linux, le firewall intégré au système est Netfilter. Il existe plusieurs possibilités pour le configurer :
Si Firestarter reste la solution la plus simple, c'est aussi la moins « propre » vu ses possibilités limitées et sa configuration basique. Iptables requiert quant à lui un peu d'expérience pour être manipulé correctement. Reste alors Webmin, assez simple d'accès tout en proposant des possibilités de configuration poussées. C'est celui-ci que nous allons utiliser. Notez que les firewalls graphiques n'enregistrent pas leur configuration directement dans Netfilter : ils ont besoin d'être lancés pour que les règles soient appliquées. En outre, si deux firewalls fonctionnent en même temps, ce sont les règles du dernier ayant été lancé qui seront appliquées. Veillez donc à n'avoir qu'un firewall bien configuré sur votre machine pour éviter les embrouilles ;-)
Procurez-vous tout d'abord Webmin, celui-ci étant disponible pour de nombreuses distributions. Après installation, rendez vous sur la page https://localhost:10000/ via votre navigateur web. L'utilisateur est root, et votre mot de passe est votre mot de passe root. Pour les utilisateurs d'Ubuntu, veuillez vous référer à cette page pour activer le compte root. Rendez à la page Networking → Linux Firewall.
Dans la partie Incoming packets (INPUT), voici les 5 règles de base à appliquer :
Accept If state of connection is ESTABLISHED,RELATED Accept If source is 127.0.0.1 and input interface is lo Accept If protocol is ICMP Log packet Always Drop Always
La règle « Log packet » va, comme son nom l'indique, établir un log des paquets qui seront rejetés dans /var/log/messages. Pour les retrouver facilement, je conseille d'ajouter dans la case « Additional parameters » (lors de la création de la règle) l'instruction :
--log-prefix "[IPTABLES DROP]: "
Dans la partie Forwarded packets (FORWARD), on refuse tout :
Drop Always
Je laisse la partie Outgoing packets (OUTPUT) vide, ce qui signifie que toutes les connexions sortantes sont autorisées. Vous devriez trouver assez facilement comment créer ces règle, ce n'est pas bien compliqué. Veillez tout de même à sélectionner « Equals » au lieu de « Ignored » pour les cases modifiées. L'ordre des règle est très important : elles seront appliquées de haut en bas. Il faut donc toujours que la règle « Drop Always » soit la dernière !
Pour SSH, la règle à appliquer dans Incoming packets (INPUT) est :
Accept If protocol is TCP and destination port is 12345
Nous parlons bien de port de destination. En effet, comme ce sont les paquets entrant, leur destination est bien notre serveur. 12345 est évidemment à remplacer par le port que vous avez choisi. Cliquez finalement sur « Apply Configuration », et choisissez « Yes » pour « Activate on boot ».
Une attaque par « force brute » est une attaque tout ce qu'il y a de plus basique. Elle consiste à essayer toutes les combinaisons possibles de lettres/chiffres jusqu'à trouver le bon mot de passe. Elle est souvent combinée à une attaque par dictionnaire pour améliorer la vitesse de cassage. On comprend facilement que l'efficacité de ce type d'attaque dépend de la solidité du mot de passe choisi : « banane76″ risque d'être découvert beaucoup plus rapidement que « a0D€8È}~v£2%ï2″.
Pour se prémunir d'une telle attaque sur son serveur SSH, les précautions précédentes (pas de connexion en root, changement du port pour limiter les attaques par des robots) permettent déjà de limiter les risques. Si la connexion par mot de passe est désactivée, ces attaques seront totalement inefficaces. Cependant, on peut vouloir laisser cette possibilité active pour une raison ou une autre. Fail2ban va nous aider à nous protéger contre les attaquants éventuels (et n'ayez crainte, vous devrez y faire face très rapidement). Le principe est simple : bannir les adresses IP qui ont effectué trop de tentatives infructueuses de connexion, via une règle dans le firewall.
Tout d'abord, installer fail2ban :
marty@serveur:~$ sudo apt-get install fail2ban
Ouvrez ensuite le fichier /etc/fail2ban/jail.conf, et cherchez les parties suivantes :
[DEFAULT] ignoreip = 127.0.0.1 bantime = 900 findtime = 600 maxretry = 3 [ssh] enabled = true port = ssh filter = sshd logpath = /var/log/auth.log maxretry = 6
La partie [DEFAULT] contient les options par défaut, alors que la partie [ssh] les options propres à SSH (sans déconner !). Passons-les en revue :
Dans mon cas, si le serveur reçoit 6 connexions infructueuses (maxretry) en moins de 10 minutes (findtime), l'adresse IP sera bannie 15 minutes (bantime). Dans le cas de SSH, un mot de passe est demandé 3 fois à chaque connexion, ce qui fait au maximum 72 essais par heure et par adresse IP.
Après configuration, relancez fail2ban :
marty@serveur:~$ sudo fail2ban-client reload
Vous pouvez également vérifier s'il fonctionne correctement :
marty@serveur:~$ sudo /etc/init.d/fail2ban status
Voilà, avec ça vous devriez être tranquille.
Si votre FAI vous attribue une adresse IP dynamique (adresse IP de votre ordinateur sur Internet, pas sur le réseau local !), vous aurez besoin d'un service comme DynDNS. Celui-ci vous permettra d'associer à votre serveur un nom de domaine, et ce gratuitement. L'adresse IP sera mise à jour grâce au logiciel ddclient que nous installerons plus tard.
Vous devez tout d'abord vous créer un compte sur le site de DynDNS. Allez ensuite sur la page « Host Services », et cliquez sur « Add New Hostname ». Choisissez un nom de domaine, sélectionnez « Host with IP address » et indiquez votre adresse IP. Pour mettre à jour l'IP, trois possibilités :
Installez ddclient :
marty@serveur:~$ sudo apt-get install ddclient
La configuration du fichier /etc/ddclient.conf devrait ressembler à ceci :
## ddclient configuration file daemon=300 # check every 300 seconds syslog=yes # log update msgs to syslog pid=/var/run/ddclient.pid # record PID in file. ssl=yes ## Detect IP with our CheckIP server use=web, web=checkip.dyndns.com/, web-skip='IP Address' ## Default options protocol=dyndns2 ## DynDNS username and password here server=members.dyndns.org login=YYYYYYYY password='XXXXXXXX' ## Dynamic DNS hosts blablabla.tatata.com
Indiquez votre login, mot de passe (entre guillemets simples) ainsi que le(s) nom(s) de domaine. J'ai choisi de faire la mise à jour toutes les 5 minutes.
Côté client, la configuration est très simple. Après installation du paquet openssh-client, connectez-vous grâce à la commande :
marty@client:~$ ssh -p 12345 login@blablabla.tatata.com
où login est votre login sur le serveur et 12345 à remplacer par le port choisi. Notez que si vous vous connectez depuis votre réseau local, il y a de fortes chances pour que l'utilisation du nom de domaine ne fonctionne pas. Il faudra plutôt utiliser l'adresse IP fixe du serveur. Si vous avez laissé le port par défaut (22), l'option -p est inutile.
Rappelez-vous : nous devions utiliser la connexion par clé publique/privée ! Dans le cas où la connexion via mot de passe est désactivée, cette commande ne fonctionnera pas. Générons la paire de clé :
marty@client:~$ ssh-keygen -t dsa
Laissez les options par défaut, et indiquez une phrase de passe. Ensuite, vous devrez copier le contenu du fichier ~/.ssh/id_dsa.pub dans le fichier /home/login/.ssh/authorized_keys de votre serveur. Si la connexion par mot de passe n'est pas désactivée, vous pouvez utiliser la ligne :
marty@client:~$ ssh login@blablabla.tatata.com "echo $(cat ~/.ssh/id_dsa.pub) >> .ssh/authorized_keys"
(sur une seule ligne) Grâce à la même commande que précédemment, connectez-vous sur votre serveur. Votre phrase de passe vous sera demandée à la place de votre mot de passe, et si cela fonctionne, vous pouvez désactiver l'autorisation par mot de passe si ce n'est déjà fait (soyez tout de même sûr de pouvoir accéder physiquement au serveur au cas où votre clé privée serait perdue).
Taper sa phrase de passe, c'est chiant... Oui, je sais. Nous allons donc utiliser ssh-agent pour nous faciliter la vie. Dans un terminal, tapez :
marty@client:~$ ssh-add
et entrez votre phrase de passe. Connectez vous sur votre serveur et là, magie, votre phrase de passe ne vous est plus demandée ! C'est là un énorme avantage d'utiliser l'authentification par clé publique/privée plutôt que par mot de passe. Il suffit d'entrer sa phrase de passe en début de session, et on est tranquille toute la journée ;-) Il est possible de fournir la même clé publique sur plusieurs serveurs SSH : une fois la passphrase enregistrée, les connexions se font sans mot de passe. Qui plus est, on n'a pas à retenir un mot de passe différent pour chaque serveur.
Il est possible de transférer des fichiers via SSH grâce à la commande scp. Pour envoyer un fichier sur le serveur :
marty@client:~$ scp -P 12345 fichier marty@serveur:/dossier/serveur
Pour récupérer un fichier du serveur :
marty@client:~$ scp -P 12345 marty@serveur:/dossier/fichier /dossier/client
Attention, c'est bien un P majuscule !
Le logiciel gftp permet de faire graphiquement la même chose que scp. Il se présente sous la forme de deux fenêtres, une pour le client et une pour le serveur.
Gftp
Faites attention de sélectionner le bon type de fichier (ASCII -- fichier texte simple -- ou Binaire -- le reste) dans le menu « FTP ».
Le noyau de Mac OS X étant un dérivé de BSD, les lignes de commandes devraient être identiques. Sous Windows, allez voir du côté de PuTTY pour la ligne de commande et WinSCP comme équivalent de gftp.
![]()
Billet original de Marty.
Votez pour cet article sur le Planet Libre.
Il est temps à présent de s'attaquer à la partie la plus sensible du sujet : comment partager des données anonymement. Nous verrons ici qu'il est tout à fait possible d'être anonyme grâce à la décentralisation et au chiffrement des données. Les réseaux existants (Bittorrent, eDonkey2000, etc.) n'ayant pas été prévu dans cette optique, il nous faudra en utiliser de nouveaux. Le point fort de certains logiciels présentés est de combiner un réseau existant avec un réseau décentralisé, de sorte que les nouveaux réseaux mis en place ne pêchent pas par leur manque de choix.
Je vous rappelle qu'il est interdit d'utiliser ces logiciels à des fins illégales (piratage, contrefaçon ou toute autre activité étant considérée hors-la-loi par les lois en vigueur dans votre pays de résidence). Vous pouvez toutefois les utiliser pour toutes autres utilisations privées, ou pour télécharger des données libres.
Il faut être un minimum honnête avec les créateurs qu'on apprécie. Si vous aimez un disque, un film ou un jeux, achetez-le, allez aux concerts ou au cinéma. Internet permet un accès à une culture gigantesque, et la moindre des choses est d'encourager ceux qui vous font plaisir. Outre l'honnêteté, ayez à l'esprit que c'est vous seul qui êtes responsable si un artiste arrête de produire car il ne gagne plus assez.
Mis en place en 2002, le protocole de peer-to-peer (P2P) Bittorrent a connu un succès fulgurant, notamment pour les raisons suivantes :
De nombreuses distributions Linux ont alors pu être distribuées de cette façon. Le protocole étant ouvert, de nombreux logiciels clients sont apparus, les plus célèbre étant µTorrent, Azureus (Vuze) ou Deluge. Une première avancée fut l'arrivée du chiffrement des données : impossible alors pour le FAI de détecter que les données transitant étaient de l'échange de fichier. Restait un problème majeur : la centralisation des adresses IP des utilisateurs sur les trackers. Il suffit de se connecter à ce tracker pour connaître toutes les personnes partageant ce fichier. Qui plus est, de nombreux sites (notamment les trackers privés) gardent des logs assez complets, permettant de déterminer qui a partagé quoi (voir par exemple l'affaire de SnowTiger).
Récemment, OpenBittorrent (ainsi que PublicBT ou encore Torrage), un tracker Bittorrent ouvert à tous, a été lancé. L'idée est tellement simple qu'on se demande pourquoi elle n'a pas été appliquée avant. Habituellement, lorsque vous recherchez un fichier, vous devez naviguer sur le site du tracker (The Pirate Bay, Demonoid, SnowTiger...), voire sur un méta-moteur (Btjunkie, Mininova...). L'inconvénient est que le serveur qui gère les connexions Bittorrent est lié au serveur de recherche de fichiers. Si le serveur de recherche de fichiers tombe sous le coup de la justice, il entraine celui qui gère les connexions et les torrents sont perdus. OpenBittorrent est un tracker public, et ne détient aucune information sur les fichiers dont il se fait le relai. Chacun peut, lorsqu'il crée son torrent, ajouter le tracker OpenBittorrent et utiliser sa bande passante pour les connexions. Juridiquement parlant, il est très difficile de condamner ce tracker car :
La partie la plus sensible vis-à-vis de la loi, c'est-à-dire l'indexation des fichiers, est donc dissociée de tout serveur gérant les connexions. Si un moteur de recherche de fichiers torrent doit fermer, cela n'aura aucun impact sur la santé du réseau car d'autres moteurs de recherches existent. En théorie, OpenBittorrent serait donc intouchable juridiquement... De plus, le service d'indexation des fichiers n'a aucune information sur les données que vous avez partagées. Un « miroir » de OpenBittorrent a été mis en place, il s'agit de PublicBT.
Plus fort que Openbittorrent, BitTorrent Hydra est un tracker ouvert qui utilise le réseau Tor pour faire transiter les requêtes. Grâce à l'anonymat fournit par Tor, il est impossible de savoir où se situe ce tracker. Attention, cela fournit un anonymat au tracker, pas aux utilisateurs.
Notons aussi l'existence de proxys spécialisés dans le trafic Bittorrent, comme superchargemytorrent. Moyennant quelques euros, le serveur servira de passerelle pour vos téléchargements, chiffrant par la même occasion l'entièreté du flux. Il suffit de configurer le proxy dans les paramètres de votre client Bittorrent.
Lancé récemment, OneSwarm est un logiciel libre basé sur Azureus. Entièrement compatible avec le réseau Bittorrent, il utilise également son propre réseau totalement chiffré et décentralisé. Un fichier téléchargé sur le réseau Bittorrent classique sera automatiquement mis en partage sur le réseau de OneSwarm, de sorte qu'il soit disponible sans passer par le tracker. A l'instar de I2P ou Freenet, chaque utilisateur joue également le rôle de passerelles entre les autres utilisateurs. Il est donc impossible de savoir d'où viennent réellement les données, où elles vont et ce qu'elles sont réellement (car chiffrées de bout-en-bout). L'intérêt majeur de OneSwarm est de pouvoir pratiquer le friend-to-friend (F2F) : on ne se connecte alors qu'à des personnes de confiance, ce qui rend l'utilisateur invisible sur le réseau hors de son cercle d'ami.
OneSwarm est encore un peu jeune et n'est pas exempt de bugs. Cependant, il est activement développé ce qui augure de très bonnes choses pour la suite
Note du 10 mars 2010 : depuis la rédaction de cet article, le logiciel a fortement évolué. Référez-vous au site officiel pour plus de détails.
OneSwarm est open-source et disponible pour Windows, Linux et Mac OS (Java est requis). Après installation (une simple décompression du fichier compressé sous Linux), lancez l'exécutable et vous verrez apparaître l'interface dans votre navigateur Web. A ce sujet, il semble que ça ne fonctionne pas trop avec Internet Explorer, à vérifier. En l'état, il n'est possible que d'utiliser le réseau Bittorrent classique. Vous pourrez ajouter des fichiers .torrent comme vous le faisiez avec d'autres logiciels.
Pour utiliser le réseau chiffré anonyme, il vous faudra ajouter des amis dans votre liste. Si vous n'avez pas d'amis, cliquez sur Add Friend et choisissez l'option « Subscribe to a friend feed from a community server ». Configurez comme sur la figure ci-dessous, et des amis vous seront ajoutés automatiquement. Cette liste sera régulièrement mise-à-jour, et vous pourrez à tout moment ajouter d'autres serveurs. Vous noterez que lors de l'ajout d'amis, l'option « Limited » est cochée par défaut. En fait, un ami ajouté avec cette option ne pourra pas voir votre liste de fichiers. C'est donc fondamental pour la sécurité d'enlever ce statut limité aux personnes de confiance uniquement.
OneSwarm - Ajout d'amis
OneSwarm - Configuration d'un community server
Vous pouvez également ajouter ajouter un ami manuellement, grâce à l'option « Add friends manually using public keys ». OneSwarm fonctionne sur le principe de chiffrement asymétrique. Vous échangez votre clé publique avec celle de votre ami, et le tour est joué.
OneSwarm - Ajout manuel d'amis
Il est tout de même conseillé d'avoir quelques amis pouvant accéder à vos données, de manière à ce que vos fichiers puissent également être partagés. OneSwarm gère également les groupes d'amis via « More actions → Manage visibility ». Vous pourrez alors partager certains fichiers avec un groupe en particulier uniquement.
Après avoir ajouté des amis, il vous suffit de faire une recherche dans le champ dédié. Le choix est encore un peu maigre, mais les dernières nouveautés arrivent assez vite compte tenu de l'utilisation parallèle du réseau Bittorrent.
Apparu en 2000, le réseau eDonkey2000 (sur lequel se base eMule) est un réseau encore largement utilisé pour le partage de fichiers. Son succès est dû principalement au grand choix de fichiers disponibles. En effet, contrairement au réseau Bittorrent centré sur le partage d'un nombre limité de fichiers, le réseau eDonkey2000 permet :
Le plus célèbre des logiciels supportant le protocole eDonkey2000, eMule, propose deux réseaux pouvant fonctionner de manière indépendante ou en parallèle. Tout d'abord le réseau eDonkey2000 classique, pour lequel des serveurs permettent de mettre en relation les utilisateurs et centraliser la liste des fichiers partagés par toutes les personnes connectées. Ensuite le réseau Kademlia, où les serveurs sont inutiles car les utilisateurs font également office de « mini-serveurs » pour mettre en relation les utilisateurs connus.
eMule étant un logiciel libre, de nombreux MOD sont apparus (versions d'eMule modifiées apportant certaines options). Parmi eux, aMule a été porté sous Linux, puis a servi d'inspiration pour iMule. iMule utilise un troisième réseau pour partager les fichiers : le réseau I2P. Tout comme pour Kademlia, les utilisateurs servent de relai pour mettre en relation les utilisateurs, mais ils servent également de relai pour faire transiter les données d'une personne à l'autre (comme OneSwarm). Cependant, il semble qu'il ne soit pas possible (pour le moment) d'utiliser iMule comme un client eMule classique, en parallèle de son utilisation sur le réseau I2P.
Je n'ai, à ce jour, pas encore testé iMule (il vous faut une distribution récente ou Windows, ce que je n'ai pas). Le site du créateur est assez lent, et il n'est pas rare qu'il soit injoignable. Parcourez le forum de I2P, vous y trouverez surement un sujet parlant de la dernière version en date et des liens pour la télécharger.
Apparus récemment, les sites de partage de fichiers volumineux ont rapidement été détournés pour le partage illégal de fichiers. En effet, contre quelques euros par mois, ces sites proposent une vitesse de téléchargement inégalable en P2P, tout en assurant l'anonymat des utilisateurs. Cependant, il persiste plusieurs inconvénients :
Pour celui qui en a les moyens, RapidShare et ses équivalents sont très pratiques une fois que les boards intéressantes ont été trouvées. Malheureusement, ceci implique de laisser de nombreuses traces de son passage, et rien ne dit qu'à l'avenir les utilisateurs ne soient pas inquiétés. N'oublions pas qu'aucun de ces services n'est hébergé dans un pays laxiste en matière de piratage (RapidShare est basé en Allemagne, MegaUpload aux USA...), donc un minimum de collaboration des forces de police pourrait faire mal.
Usenet est l'ancêtre de nos forums, et est apparu en 1979, soit bien avant le World Wide Web. Il est articulé autour du principe de « groupes de discussions » (ou newsgroups) : un groupe de discussion est un groupe rassemblant les articles d'un sujet précis, ces articles étant stockés sur des serveurs communicant ensemble. S'il est possible de déposer des articles sur ces serveurs, ils est également possible d'y déposer des fichiers. Moins populaire que les logiciels de P2P, cette méthode est toujours utilisée par quelques irréductibles qui apprécient les vitesses de téléchargement élevées et l'anonymat relatif.
Cependant, qui dit serveur centralisant les fichiers, dit service payant. Pour avoir accès à ces newsgroups, il faudra s'abonner chez un fournisseur proposant plusieurs offres dont le prix varie en fonction du volume de transfert alloué. Notons que certains FAI, comme Free, proposent un service de newsgroup inclus dans l'abonnement.
Après avoir pris un abonnement chez un fournisseur (par exemple Giganews), vous devrez choisir parmi les nombreux newsreader. Choisissez-en un qui gère facilement les fichiers, car ce n'est pas le cas de tous (rappelons qu'à la base, Usenet est fait pour l'échange d'articles, pas le téléchargement de fichiers). Parmi ceux qui reviennent souvent, GrabIt sous Windows et Pan sous Linux. La configuration du logiciel varie de l'un à l'autre, mais reste assez facile : vous aurez besoin de l'adresse du serveur du fournisseur, du port, de votre nom d'utilisateur et mot de passe. Ensuite, partez à la recherche des fichiers NZB (ce sont les fichiers rassemblant les informations qui permettent de télécharger les différentes parties du fichier désiré) sur les moteurs de recherches comme Binsearch, Newzleech ou MegaNZB. Une fois sauvé, ouvrez le NZB avec votre logiciel, et le tour est joué.
Déjà présenté dans un précédent article, l'utilisation d'un VPN vous permettra de masquer votre adresse IP, que ce soit lors de l'utilisation du P2P ou du direct download, tout en conservant une vitesse de téléchargement correcte. Outre le fait qu'il faille faire confiance aux propriétaires de ce VPN concernant les données et logs conservés, le paiement de ce service entrainera irrémédiablement des traces de votre passage.
En marge des réseaux de P2P les plus connus que sont Bittorrent et eDonkey2000, de nombreux réseaux parallèles ont vu le jour. Historiquement pionnier dans le domaine, GNUnet est un logiciel de P2P conçu pour résister à la censure : chiffrement bout-à-bout, décentralisation des données, utilisateurs servant de relais pour brouiller les pistes, friend-to-friend, etc. Toutes ces recettes ont été reprises dans OneSwarm, ou dans d'autres logiciels comme Ants P2P ou MUTE.
Malgré la grande qualité des idées fondamentales de ces projets, ces réseaux pêchent par le manque de choix, et par un développement nettement moins actif que OneSwarm. La dernière version de Ants P2P date de 2007, celle de MUTE de 2008, et aucun développement ne semble être prévu. Le développement de GNUnet est plus actif, mais mon dernier essai s'est soldé par un échec car le logicel ne semblait pas très stable.
Et si nous pouvions combiner les avantages du P2P (décentralisation, recherche aisée, choix) avec ceux du téléchargement direct (rapidité et anonymat) ? Séduisant n'est-ce pas ? C'est ce que proposent des proxys Bittorrent comme Furk, Torrent Relay ou même ImageShack (ce dernier nécessite une inscription pour voir apparaitre l'option). Le proxy se charge de télécharger le fichier à votre place, et quand cela est fait il ne vous reste plus qu'à le récupérer comme un téléchargement classique. Les connexions sont évidemment sécurisées, les taux de téléchargement très bons et vous évitez les éventuels filtrage par votre FAI. Notons que Furk garde sur ses serveurs les fichiers déjà téléchargés par d'autres utilisateurs, et vous y donne accès gratuitement (avec des restrictions sur la vitesse, cependant). Tout cela est bien évidemment payant, avec les risques que cela comporte.
Je ne suis cependant sceptique quant à la légalité de la chose... Si les sites habituels de DDL comme RapidShare peuvent avoir un fond de commerce tout à fait légal, ces sites ne sont là principalement que pour faciliter le téléchargement d'œuvre protégées. Ce n'est d'ailleurs pas pour rien qu'il sont situés au Canada ou aux Pays-Bas, pays plus laxistes en la matière. J'ai donc de gros doutes sur leur pérennité.
Impossible de donner une réponse précise, car comme nous l'avons vu chaque méthode a ses avantages et ses inconvénients. Tentons de faire un petit récapitulatif...
Les avantages du peer-to-peer :
Les inconvénients du peer-to-peer :
Les avantages du direct download :
Les inconvénients du direct download :
Pour le moment, les solutions payantes semblent les plus sures d'un point de vue juridique : ne partageant rien vous-même, vous risquez moins que si vous mettez à disposition des données. Cependant, ces solutions sont aussi les plus jeunes, contrairement aux utilisateurs des réseaux P2P qui ont déjà subi plusieurs attaques des ayants-droits (voir par exemple le jugement de cette américaine). Rien ne dit que la facilité avec laquelle vos téléchargements peuvent être listés ne se retournera pas contre vous un jour ou l'autre...
![]()
Billet original de Marty.
Votez pour cet article sur le Planet Libre.
Dans cette quatrième partie consacrée à la sécurité et l'anonymat sur Internet, nous étudierons les possibilités existantes pour la navigation sur la toile. Avant toute chose, précisons tout de même qu'être anonyme à 100 % est tout simplement impossible. Théoriquement il est toujours possible de remonter jusqu'à vous, mais en pratique il est possible de rendre les choses très difficiles.
Le HTTPS n'est rien d'autre que le protocole HTTP classique (celui utilisé pour la navigation web) auquel on a ajouté une méthode de chiffrement TLS. En d'autres termes, il s'agit de la navigation web où les transfert sont chiffrés entre le client (vous) et le serveur. En pratique, cela fonctionne en 3 étapes :
Si tout s'est bien passé, le client et le serveur peuvent communiquer de manière chiffrée grâce à la clé qui a été échangée. Si un « pirate » venait à intercepter les données, il ne pourrait rien en faire. C'est la méthode utilisée sur la majorité des sites de vente en ligne ou des banques. On reconnait l'utilisation du HTTPS à :
Le HTTPS est sensiblement plus lent que le HTTP vu l'opération supplémentaire de chiffrement. Il n'assure en rien l'anonymat, mais permet de communiquer des informations à un serveur en toute sécurité.
Un proxy est une passerelle entre vous et le site web que vous désirez visiter. Au lieu d'envoyer directement les demandes au serveur, vous passerez par le proxy qui se chargera de les communiquer au site final. Certains proxys permettent l'utilisation du protocole HTTPS. Les avantages sont les suivants :
Il y a cependant quelques inconvénients à l'utilisation de proxys :
Un proxy est donc plus centré sur l'anonymat que sur la sécurité, à moins de connaitre personnellement celui qui l'a mis en place. Il est aussi intéressant de changer régulièrement de proxy, de manière à éviter qu'un proxy ne collecte trop d'informations sur vous.
Connexion avec et sans proxy
Après la théorie, passons à la pratique. Tout d'abord, il faudra trouver un proxy, par exemple sur proxy.org ou encore atproxy.net. Après avoir fait votre choix dans la liste (certains ne fonctionnent pas ou sont très lents), rendez-vous sur la page correspondante (exemple), indiquez l'adresse que vous désirez visiter et validez. Une barre d'options est souvent ajoutée en haut de la page de navigation.
Pour faciliter l'utilisation de proxys, il existe plusieurs modules pour Firefox. Mon préféré est Phzilla, très simple d'utilisation mais dont le développement a récemment été abandonné. FoxyProxy est lui un outil très complet, un peu trop pour moi d'ailleurs vu mon utilisation très ponctuelle de proxys.
Et si au lieu d'utiliser un seul relai, nous en utilisions plusieurs ? C'est le principe de de Tor, qui couplé à Privoxy vous permet d'atteindre un très haut niveau d'anonymat. Tor est composé d'un ensemble connu de relais qui seront utilisés pour atteindre un site désiré. Le chemin suivi à travers les proxys change régulièrement, de sorte qu'il est pratiquement impossible de savoir d'où viennent et où vont les données.
Connexion via Tor
Privoxy est un proxy web permettant un filtrage avancé du contenu, mais il ne nous servira qu'à masquer la requête DNS. En fait, lorsque vous vous connectez à un site web (par exemple www.google.com), vous passez tout d'abord par un serveur DNS qui fera le lien entre l'adresse demandée et son adresse IP (en l'occurence, 208.69.34.231). Ceci a deux avantages :
Lorsqu'on désire utiliser Tor, la première chose qui est faite est de demander au serveur DNS (souvent celui du FAI) quelle est l'adresse IP correspondante. Ceci est un gros trou dans l'anonymat : si le FAI ne voit pas les connexions avec le site sur lequel on veut se connecter, il sait tout de même qu'on a demandé quelle était son adresse IP. Privoxy permet de combler ce trou.
Installation et configuration
Dans le cas où vous utilisez Ubuntu, Tor n'est pas inclu dans la version 9.04 et il faudra ruser pour l'installation. Je vous laisse consulter la page dédiée. Dans le cas d'autres distributions, l'installation de Tor et Privoxy ne devrait poser aucun problème. Après installation, il faudra modifier les fichiers de configuration de Privoxy pour qu'il communique avec Tor. Éditez le fichier /etc/privoxy/config en root et ajoutez la ligne :
forward-socks4a / localhost:9050 .
Pour trouver la ligne adéquate, cherchez la chaîne « forward-socks » dans le fichier. Lancez ensuite les deux services, par exemple sous Ubuntu :
sudo /etc/init.d/tor restart sudo /etc/init.d/privoxy restart
Il ne reste plus qu'à configurer votre navigateur web. Dans le cas de Firefox, allez dans Éditions → Préférences, allez dans la section Avancé, onglet réseau, puis cliquez sur paramètres et configurez comme suit :
Configuration de Firefox
Vous pouvez vérifier que Tor fonctionne bien en visitant le lien http://check.torproject.org/. Il existe également des modules pour Firefox, permettant de switcher facilement sur Tor (comme Torbutton ou FoxyProxy).
Il est possible de monter un serveur Tor chez soi, de manière à renforcer l'anonymat. En effet, impossible alors de savoir si ce qui a transité par votre PC était bien de votre volonté ou un transfert d'un proxy à un autre.
Remarque importante : Tor permet l'anonymat, mais pas la sécurisation des données. En effet, même si les données sont chiffrées entre tous les nœuds du réseau, elles ne le sont pas entre le nœud final et le site auquel on veut accéder. Prudence donc...
A première vue, I2P propose des fonctionnalités similaires à Tor, mais son fonctionnement est quelque peu différent. Tor est composé d'un ensemble de proxys connus (donc centralisé), chacun permettant d'accéder au web. Son but avoué est d'offrir l'anonymat sur la toile. I2P est plutôt centré sur la communication chiffrée d'une extrémité à l'autre entre deux personnes, tout en utilisant plusieurs passerelles. Chaque utilisateur de I2P joue le rôle de passerelle (donc décentralisé), mais à la différence de Tor seules quelques rares passerelles (« outproxy ») offrent un lien vers le web. I2P semble donc plus destiné à une forme de peer-to-peer qu'au surf anonyme, même s'il le permet également.
Installation et configuration
Téléchargez l'installeur graphique sur le site officiel, et exécutez-le. Sous Linux, tapez en ligne de commande :
java -jar i2pinstall_0.7.4.exe
Rien de bien sorcier à ce niveau, il vous suffira de choisir un répertoire d'installation. Après quelques secondes, la page de configuration (http://127.0.0.1:7657/) devrait s'ouvrir dans votre navigateur web. Vous pourrez contrôler l'état de votre passerelle, et éventuellement changer la configuration. Si votre « Reachability » est indiquée comme étant « Firewelled », vous devrez configurez votre routeur pour qu'il transfère le port 8887 (TCP et UDP) vers votre PC. Ce n'est nullement obligatoire, mais cela aide à la santé du réseau.
La configuration de Firefox est identique à celle lorsque Tor est utilisé, sauf que vous devrez indiquer le port 4444 au lieu de 8118.
Remarque : les eepsites sont des sites du réseau I2P, accessibles uniquement à partir de I2P. Leur intérêt est qu'ils ne nécessitent pas l'utilisation de passerelle spécifique accédant au web.
Il existe deux inconvénients majeurs à l'utilisation de proxys :
Un réseau virtuel privé (VPN) permet de se connecter à un réseau externe comme si vous étiez matériellement sur ce réseau. Ceci est souvent utilisé en entreprise pour que les employés puissent accéder à leurs données professionnelles depuis l'extérieur. Les avantages sont une plus grande flexibilité par rapport à un proxy, un cryptage complet des données transitant entre l'utilisateur et le VPN, mais surtout le fait que tous les programmes fonctionnent comme si vous étiez situé sur ce réseau, et ce sans aucune configuration particulière.
En réponse aux lois contre le téléchargement prises récemment en Suède et en France, deux VPN ont été mis en place : Ipredator et Ipodah (encore à l'essai à l'heure où j'écris ces lignes). Le principe est que vous vous connectez à ces réseaux qui serviront de passerelle pour toutes les données transférées, que ce soit du surf classique ou du peer-to-peer. Le principe est donc identique au proxy, si ce n'est que vous ne serez pas limités à l'anonymat sur le web mais aussi lors des échanges P2P (nous y reviendront dans un prochain article). Selon les créateurs, aucune trace ne sera enregistrée, ce qui confère une sécurité parfaite.
En principe, les serveurs mis en places devraient être capables de soutenir une charge importante, et ne réduire que faiblement le taux de transfert des données. Notez que ces services sont payants (environ 5 € par mois). Vous devrez également faire une confiance aveugle aux créateurs de ces services :
De plus, ayez toujours à l'esprit que si ces serveurs sont saisis par la justice et que des traces sont gardées, remonter jusqu'à vous sera très facile même si vous n'étiez pas l'objet d'investigations. Gardez aussi à l'esprit que si ces services sont payants, des traces du paiement persisteront toujours quelque part.
Les solutions précédentes sont des suppléments ajoutés au réseau Internet. Finalement, ce ne sont que des rustines utilisées pour combler les trous de sécurité et d'anonymat du réseau. En parallèle à Internet, il existe des réseau alternatifs, conçus à la base pour être anonyme et sécurisés. Le plus célèbre d'entre eux est Freenet. Les caractéristiques principales du réseau sont :
Notez bien que Freenet ne permet pas d'accéder au web classique : c'est un réseau parallèle. Ces caractéristiques en font un refuge idéal pour les personnes vivant dans des régimes totalitaires, mais malheureusement une vitrine parfaite pour tout ce qui est illégal. Il n'est donc pas rare de tomber sur des « recettes » de poison maison, des sites néo-nazis ou encore de la pédo-pornographie. Il faut donc utiliser ce réseau intelligemment, et résister à la curiosité malsaine. En effet, en consultant ces sites vous favorisez leur développement car chaque utilisateur (qu'il soit l'intéressé ou simple passerelle) stocke un petit morceau du réseau chez lui. Le meilleur moyen de lutter contre la prolifération de ce contenu est de simplement passer son chemin, en espérant que le site sombre lentement mais surement pour disparaître du réseau.
Installation et configuration
Après la mise en garde, passons à l'installation. Suivez les instructions sur le site officiel selon votre OS, et installez Java si ce n'est pas déjà fait. Sous Linux, tapez dans un terminal :
wget http://freenet.googlecode.com/files/new_installer_offline_1222.jar -O new_installer_offline.jar java -jar new_installer_offline.jar
Après la configuration (choisissez « normal » à toutes les propositions), vous pourrez accéder à Freenet via n'importe quel navigateur en allant à l'adresse http://127.0.0.1:8888/. Attention au cache de votre navigateur : si Freenet chiffre toutes les données stockées, votre navigateur ne le fait sûrement pas. Pensez donc à désactiver le cache, voire à utiliser un autre navigateur (dans Firefox, allez dans Édition → Préférences → Vie privée → Décocher « Conserver mon historique »).
A suivre, partie 5 : Anonymat et partage de fichiers.
![]()
Billet original de Marty.
Votez pour cet article sur le Planet Libre.
Dans l'article précédent, nous avons vu comment il était possible de protéger ses données personnelles grâce à TrueCrypt. Nous allons à présent voir comment il est possible de protéger des données à échanger grâce à la cryptographie asymétrique. Un récent article de ®om est très bien mais peut-être trop orienté Ubuntu. Je tenterai donc d'apporter quelques éléments nouveaux.
Avant d'aller plus loin, posons nous la question : pourquoi donc chiffrer un e-mail, vu que votre messagerie dispose d'un mot de passe et que vous n'avez rien à cacher ? Tout comme un courrier classique, un e-mail risque de voyager entre plusieurs intermédiaires (au minimum, les serveurs mails). L'inconvénient est qu'un e-mail classique peut être facilement lu :
Contrairement à une lettre placée dans une enveloppe, le contenu d'un e-mail peut donc être relativement facilement accessible. Il ne faut pas non plus sombrer dans la paranoïa, car dans la vie courante de nombreuses traces sont également semées ça et là. Pensez donc aux diverses cartes de fidélité des grands magasins (Monsieur Auchan sait tout de vous, de vos habitudes alimentaires à votre marque de PQ triple épaisseur préférée), aux inscriptions diverses, abonnements... Sans compter que tous ces fichiers clients s'échangent. Inutile donc de vouloir chiffrer le moindre échange si, en parallèle, vous semez des traces à tout va. Certains sujets mériteraient, par contre, une attention plus particulière. Monsieur Google ou Microsoft vous inspire-t-il suffisamment confiance pour que vous lui racontiez vos problèmes sentimentaux, vos problèmes de santé ou la dernière crasse que votre patron vous a faite ? A vous d'utiliser ces services « gratuits » en connaissance de cause...
Un point n'a cependant pas été abordé, les erreurs humaines (que celui qui n'a jamais envoyé un e-mail par erreur me jette la première bière ;-) ). Dans le domaine industriel, cela pourrait être très problématique : envoyer un rapport confidentiel à un concurrent, fournir des résultats financiers à de mauvaises personnes, une blague de cul bien grasse à la vieille secrétaire acariâtre...
Il n'est donc pas nécessaire d'avoir quelque chose à se reprocher pour utiliser le chiffrement. De toutes façons, vous êtes légalement tenus de fournir votre clé de déchiffrement aux autorités, sinon vous risquez la peine maximale du délit dont on vous accuse.
La cryptographie asymétrique se base sur l'utilisation d'une paire de clé, composée d'une clé publique et d'une clé privée. La clé publique est utilisée pour chiffrer des données, et la clé privée pour les déchiffrer ansi que pour les signer (de manière à en assurer la provenance). Ces deux clés étant mathématiquement liées, à chaque clé publique ne correspond qu'une seule clé privée. Cependant, déduire la clé privée à partir de la clé publique est excessivement long (plusieurs centaines voire milliers d'années), ce qui assure une très bonne sécurité.
Prenons un petit exemple : Bob désire envoyer des données secrètes à Alice et Jack, mais il veut pas qu'Alice ait accès aux informations envoyées à Jack, et inversement. En premier lieu, Bob, Alice et Jack génèrent chacun une paire de clé. Chacun s'échange ensuite ses clés publiques respectives. Pour envoyer un message à Alice, voilà ce qui va se passer :
Supposons que Jack soit une enflure et qu'il parvienne à intercepter le message de Bob. Bien qu'il soit en possession de la clé publique d'Alice, il ne pourra rien en faire car déduire la clé privée d'Alice à partir de sa clé publique est très long. Bob et Alice peuvent donc communiquer sans risques.
Nous utiliserons GnuPG dans le texte qui suit, qui est une implémentation libre et open source d'OpenPGP. Notez que GnuPG utilise une méthode de chiffrement hybride. En fait, le chiffrement asymétrique s'applique à une clé symétrique qui est utilisée pour le chiffrement des données.
Avant tout chose, il sera nécessaire d'installer Seahorse ainsi que gnupg grâce à votre gestionnaire de paquets.
Lancez tout d'abord Seahorse (il est possible qu'il se trouve sous l'appellation « Applications → Accessoires → Mots de passe et clés de chiffrement » sous Gnome). Pour générer une paire de clés, cliquez tout d'abord sur Clé → Créer une nouvelle clé, et choisir « Clé PGP ». Entrer ensuite vos informations personnelles :
Entrer ses informations personnelles
A tout hasard, je décoche « N'expire jamais » et je choisis une clé de 4096 bits (sécurité maximale). Entrez ensuite votre passphrase, qui n'est rien d'autre qu'un long mot de passe. La paire de clé générée apparait dans votre liste de clés :
La clé est créée
L'identifiant de la clé permettra d'identifier votre clé lorsque vous la déposerez sur un serveur de clés (voir plus loin). Dans les propriétés de la clé (Clic droit → Propriétés), vous pourrez changer la passphrase ainsi que la date d'expiration. Sous l'onglet détails, vous trouverez également l'empreinte unique de votre clé (chez moi : 5ED6 EE4A 8514 6203 A01E 688F 28CD 661C C961 9A0F). Cette empreinte vous permettra d'identifier univoquement votre clé. En effet, il est tout à fait possible de générer une clé avec des informations identiques (même utilisateur, adresse e-mail et commentaire).
Les détails d'une clé
Nous constatons que la clé que la clé est en fait composée de deux sous-clés. La clé DSA est utilisée pour signer le message (à l'origine, DSA était destiné uniquement à la signature) et ElGamal est utilisée pour le chiffrement.
Maintenant que nous avons créé notre paire de clé, il va falloir échanger notre clé publique. Pour cela, deux solutions : copier-coller ou sauvegarder la clé publique, ou l'envoyer sur un serveur de clés.
Si on ne désire pas utiliser un serveur de clé, il suffit d'un clic droit sur une clé et de choisir :
Rien de plus simple que de la transmettre à son correspondant (e-mail, IM...).
L'utilisation d'un serveur de clé peut cependant être utile car une clé peut être sujette à modification. Il est possible de modifier la date d'expiration, de révoquer (annuler) la clé ou d'ajouter sa signature à une clé publique. En synchronisant son trousseau de clé avec le serveur, vos correspondant seront mis au courant des éventuelles modifications. Pour cela, il suffit de choisir « Synchroniser et publier des clés » lors du clic droit. Vous pouvez faire un tour du côté des serveurs de clé. Personnellement, je n'ai jamais eu de problème avec le serveur du MIT : hkp://pgp.mit.edu:11371.
Synchronisation d'une clé
Votre correspondant pourra chercher la clé grâce à la fonction de recherche, disponible en cliquant sur Distant → Chercher des clés distantes. La recherche s'effectue sur le nom, l'adresse mail ou le commentaire. Un simple Clic droit → Importer et la clé apparaitra dans l'onglet « Autres clés obtenues ».
Signer une clé publique reçue n'est pas un acte anodin : ceci est censé assurer que vous êtes sûr de la provenance de la clé. Reprenons notre exemple avec Bob, Alice et Jack. Supposons qu'Alice et Jack ne se connaissent pas, et que Bob connaisse tout le monde.
Pour signer une clé d'un correspondant (apparaissant dans l'onglet « Autres clés obtenues »), il suffit de faire un Clic droit → Signer la clé et de choisir quelle clé privée sera utilisée pour la signer (ainsi que le niveau de confiance).
Haaa, enfin une petite application ! Chiffrer un fichier n'est pas possible depuis Seahorse, et en fonction de votre environnement de bureau, cela peut être différent. Pour Gnome, un simple clic droit sur le fichier vous donne accès aux options voulues (voir l'article de ®om). C'est donc extrêmement simple. Si vous voulez une méthode universelle, faites donc un petit tour plus bas dans la section ocncernant la ligne de commande.
GnuPG est disponible sous Windows. Après installation, deux interfaces de gestion des clés sont disponibles : WinPT et GPA. Le principe est identique à Seahorse, donc pas de captures d'écrans :-D
Pour générer une clé dans le cas de GPA, il faut tout d'abord, cliquer sur Edit → Preferences et cocher « Show advanced mode ». Ensuite, il suffit de générer une clé en cliquant sur Keys → New Key. Pour une raison que j'ignore, il n'est pas possible de générer une clé de taille supérieure à 2048 bits.
Dans le cas de WinPT, il vous obligera à créer une clé au premier démarrage, sans pouvoir spécifier d'options. Pour spécifier les options, il suffira de générer une autre clé à partir du menu Key → New → Expert.
Le très intéressant blog de ®om propose une solution pour Evolution, client mail par défaut d'Ubuntu. Penchons-nous sur Thunderbird et FireGPG.
Thunderbird n'intègre pas par défaut le chiffrement PGP, mais il est possible de lui ajouter cette fonctionnalité via Enigmail. Cette extension est sûrement disponible dans les dépôts de votre distribution Linux, mais également sur le site officel des modules de Thunderbird. Outre les fonctions basiques que sont le chiffrement, la signature et le déchiffrement d'un e-mail, Enigmail vous permet de gérer votre liste de contact de façon à ce que la bonne clé soit automatiquement sélectionnée en fonction du destinataire.
Après installation, le menu OpenPGP apparaitra dans la fenêtre principale de Thunderbird. Un rapide coup d'œil dans Gestion de clés et vous trouverez vos clés privées et publiques. En fait, ce gestionnaire vous permet de faire la majorité des opérations classiques (création, suppression, exportation, modification...).
Dans les paramètres des comptes (Édition → Paramètres des comptes), il est possible de configurer l'utilisation par défaut d'Enigmail pour chaque compte e-mail : clé privée, options cochées par défaut...
Gestion des clés à partir d'Enigmail
Paramètres des comptes
Dans les préférences d'Enigmail (OpenPGP → Préférences), cochez Mode expert dans l'onglet Général, et vous aurez accès à une gestion fine des clés via l'onglet Sélection clef. Si vous cliquez sur Mofifier les règles, vous pourrez définir manuellement des règles d'envoi en choisissant les destinataire et la clé à utiliser. Notez qu'Enigmail peut également utiliser les adresses e-mails spécifiées dans les identifiants des clés publiques. Par exemple, si l'adresse azerty@exemple.com est indiquée dans une des clés publiques, Enigmail utilisera automatiquement cette clé lorsqu'un e-mail sera envoyé à azerty@exemple.com.
Paramètres de sélection des clés
Création manuelle de règles
Pour envoyer un mail chiffré et signé, il suffit de cocher les cases adéquates lors de la rédaction. Si le destinataire n'apparait ni dans les règles manuelles, ni dans les clés publiques, il vous sera demandé de choisir une clef. Sinon, les règles définies auparavant seront appliquées.
Rédaction d'un e-mail
FireGPG est une extension intégrant le chiffrement et la signature de messages pour Firefox. Ceci se révèle très utile lors de l'utilisation de divers webmails. Il suffit alors de sélectionner le texte à chiffrer/signer ou déchiffrer, et de choisir l'action désirée dans le menu FireGPG apparaissant lors du clic droit. FireGPG s'intègre avec Gmail, et de manière générale repère les textes chiffrés dans une page web pour y ajouter un bouton de déchiffrement. En outre, un éditeur est disponible, ce qui peut être pratique si des brouillons sont enregistrés à intervalles réguliers (l'extension les désactive par défaut sur GMail).
Dans l'éditeur, tapez votre texte puis choisissez Chiffrer et signer. La clé publique de chiffrement puis la clé privée de signature vous seront demandées. Cette extension est très simple d'utilisation tout en restant très puissante. Elle permet également le chiffrement symétrique d'un message.
Tout comme les e-mails, les conversations utilisant les messageries instantanées (MSN, GTalk, AIM, ICQ, Jabber...) sont susceptibles d'être interceptées. Nous verrons ici comment il est possible d'utiliser les chiffrement PGP pour les chiffrer.
Avant de vouloir chiffrer ses communications, il vaudrait mieux utiliser un logiciel et un protocole sûr, n'est-ce pas ?
Si vous êtes un adepte d'MSN, vous avez surement déjà rencontré une personne vous envoyant des messages automatiquement, signe qu'un virus avait infecté son logiciel. Vous avez peut-être également connu la censure de Microsoft, censée vous protéger des virus mais prouvant que vos messages sont scannés en permanence. Si ce n'est pas le cas, posez-vous tout de même la question de savoir si un protocole aussi fermé que celui d'MSN (donc faisant potentiellement transiter des informations supplémentaires inconnues) est bien approprié pour des discussions sécurisées. Si toutes les informations passent en plus par les serveurs de Microsoft (vive la centralisation :/ ), la réponse est non.
Nettement moins connu, le protocole Jabber est :
De plus, certains logiciels permettent l'utilisation du chiffrement PGP, de manière totalement transparente une fois que les clés publiques ont été échangées. Il suffit de créer un compte sur un serveur quelconque, par exemple celui de l'APINC. Aucune information confidentielle ne vous sera demandée, juste un nom d'utilisateur et un mot de passe.
Choix le plus judicieux pour le protocole Jabber quand on tourne sous Linux, Gajim intègre par défaut la possibilité de chiffrer ses conversations. Après installation (disponible par défaut dans la majorité des distributions Linux) et ajout de contacts, faire un clic droit sur le contact désiré et choisir Gérer le Contact → Assigner une clé OpenPGP pour désigner la clé publique voulue. Le choix de la clé privée se fait dans Édition → Comptes, onglet Informations personnelles.
Pour chiffrer une conversation, aller dans les options avancées (dernier bouton de la fenêtre de conversation), et cochez Activer le chiffrement GPG. Rien de très compliqué dans tout cela, donc pas de screenshots ;-)
Gajim permet également de chiffrer ses communications en se passant de GPG, via l'option « Activer le chiffrement de bout-en-bout ». Cette méthode est propre à Gagim, et ne fonctionne qu'entre 2 clients Gajim. De plus, on perd toute la notion de signature.
Sous Windows, Gajim ne supporte pas le chiffrement, il faut donc se tourner vers Psi.
Psi est le choix le plus judicieux pour les personnes utilisant Windows, car il permet d'utiliser le chiffrement GPG. Il est donc possible d'utiliser le chiffrement entre un client Gajim et un client Psi.
Pidgin est le client par défaut sous Ubuntu, et a l'avantage d'être multi-protocole. Le plugin pidgin-encryption est disponible dans les dépôts de la majorité des distributions, ou sur le site officiel. Après installation, se rendre dans Outils → Plugins et cocher Pidgin-Encryption. Dans la fenêtre de conversation, un petit cadenas apparait en haut à droite pour chiffrer la conversation. L'avantage de l'utilisation de Pidgin est que la génération ainsi que l'échange de clés se fait de manière automatique. Cette automatisation n'est cependant pas idéale pour la sécurité des transmissions (les clés sont mises à jour automatiquement, pas de système de signature...).
S/MIME est une méthode de chiffrement différente de OpenPGP, fonctionnant sur base de certificats, utilisée pour les e-mails. Ces certificats doivent être obtenus auprès d'une autorité de certification, et sont souvent payants (StartSSL en fournit cependant gratuitement). Les inconvénients majeurs sont :
En bref... Mieux vaut utiliser OpenPGP.
La ligne de commande de GnuPG est en principe universelle, donc vous pourrez l'utiliser sur n'importe quel OS. Ce guide ne se veut pas exhaustif, mais donnera juste les exemples les plus utilisés. Pour plus d'informations, la documentation du site d'Ubuntu-fr est très bien faite. Et toujours, bien sûr, le manuel ainsi que la commande man !
La génération de la clé est extrêmement simple : il suffit d'utiliser la commande gpg --gen-key. Des questions identiques vous seront posées :
[wacken@desktop ~]$ gpg --gen-key gpg (GnuPG) 1.4.9; Copyright (C) 2008 Free Software Foundation, Inc. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Sélectionnez le type de clé désiré: (1) DSA et Elgamal (par défaut) (2) DSA (signature seule) (5) RSA (signature seule) Votre choix ? 1 La paire de clés DSA fera 1024 bits. les clés ELG-E peuvent faire entre 1024 et 4096 bits de longueur. Quelle taille de clé désirez-vous ? (2048) 4096 La taille demandée est 4096 bits Spécifiez combien de temps cette clé devrait être valide. 0 = la clé n'expire pas= la clé expire dans n jours w = la clé expire dans n semaines m = la clé expire dans n mois y = la clé expire dans n années La clé est valide pour ? (0) 2y La clé expire le lun. 23 mai 2011 16:45:23 CEST Est-ce correct ? (o/N) o Vous avez besoin d'un nom d'utilisateur pour identifier votre clé; le programme le construit à partir du nom réel, d'un commentaire et d'une adresse e-mail de cette manière: « Heinrich Heine (Der Dichter) » Nom réel: Wacken2 Adresse e-mail: wacken@exemple.com Commentaire: Ceci est un autre exemple Vous avez sélectionné ce nom d'utilisateur: "Wacken2 (Ceci est un exemple) " Changer le (N)om, le (C)ommentaire, l'(E)-mail ou (O)K/(Q)uitter ? o Vous avez besoin d'une phrase de passe pour protéger votre clé secrète.
En gras, les questions qui vous seront posées. Il vous sera également demandé de taper au clavier pour augmenter le caractère aléatoire de clé. Pour voir la liste des clés, un simple gpg --list-key :
[wacken@desktop ~]$ gpg --list-key /home/wacken/.gnupg/pubring.gpg -------------------------------- pub 1024D/C9619A0F 2009-05-23 uid Wacken (Ceci est un exemple)sub 4096g/86261ABE 2009-05-23 pub 1024D/9B06A561 2009-05-23 [expire: 2011-05-23] uid Wacken2 (Ceci est un autre exemple) sub 4096g/44981553 2009-05-23 [expire: 2011-05-23]
Nos deux clés apparaissent comme on pouvait s'y attendre ;-)
Pour exporter une clé publique de Wacken dans le fichier wacken_key.asc :
[wacken@desktop ~]$ gpg --armor --export Wacken > wacken_key.asc
Il est également possible d'utiliser le numéro de la clé, dans notre cas :
[wacken@desktop ~]$ gpg --armor --export C9619A0F > wacken_key.asc
Exporter cette clé sur le serveur du MIT (numéro de la clé indispensable) :
[wacken@desktop ~]$ gpg --keyserver hkp://pgp.mit.edu:11371 --send-key C9619A0F
Pour importer une clé reçue par e-mail :
[wacken@desktop ~]$ gpg --import wacken_key.asc
Pour rechercher une clé (contenant le mot « stallman ») sur un serveur :
[wacken@desktop ~]$ gpg --keyserver hkp://pgp.mit.edu:11371 --search-keys stallman gpg: recherche de « stallman » du serveur hkp pgp.mit.edu (1) Atanu Datta (Stallman rocks)1024 bit DSA key 89F2AFE2, créé: 2008-10-07 (2) Richard Stallman (For Jabber) 1024 bit DSA key A925536A, créé: 2008-07-26 (3) Richard Stallman (Lots of flavour in an old cock) 1024 bit DSA key 358F2FE1, créé: 2007-03-13 (5) James Martin (I heart Stallman) 1024 bit DSA key AFB730F2, créé: 2004-06-22 (6) Tim Stallman 1024 bit DSA key 8EC33185, créé: 2003-06-25 (7) victorm (VMMB) Frodo L. Stallman Víctor Manuel Muñoz Berti Víctor Manuel Muñoz Berti Víctor Manuel Muñoz Berti Víctor Manuel Muñoz Berti Frodo L. Stallman (a.k.a. victorm) Víctor Manuel Muñoz Berti (victorm) 1024 bit DSA key 50483643, créé: 2003-05-02 Entrez le(s) nombre(s), S)uivant, ou Q)uitter >
On entre alors le numéro de la clé voulue pour l'importer.
Finalement, pour supprimer une clé :
gpg --delete-keys
Premièrement, repérer l'identifiant de la clé de chiffrement du correspondant et l'identifiant de la clé de signature de l'expéditeur (si on a plusieurs clés privées) grâce à gpg --list-key :
[wacken@desktop ~]$ gpg --list-key /home/wacken/.gnupg/pubring.gpg -------------------------------- pub 1024D/C9619A0F 2009-05-23 uid Wacken (Ceci est un exemple)sub 4096g/86261ABE 2009-05-23 pub 1024D/9B06A561 2009-05-23 [expire: 2011-05-23] uid Wacken2 (Ceci est un autre exemple) sub 4096g/44981553 2009-05-23 [expire: 2011-05-23] pub 1024D/11F63C51 2002-02-28 uid Jamie Cameron sub 1024g/1B24BE83 2002-02-28
Si nous voulons signer la clé de de Jamie Cameron avec notre clé privée Wacken :
[wacken@desktop ~]$ gpg -u Wacken --edit-key Jamie
gpg (GnuPG) 1.4.9; Copyright (C) 2008 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
pub 1024D/11F63C51 créé: 2002-02-28 expire: jamais utilisation: SCA
confiance: inconnu validité: inconnu
sub 1024g/1B24BE83 créé: 2002-02-28 expire: jamais utilisation: E
[ inconnue] (1). Jamie Cameron
Commande> sign
pub 1024D/11F63C51 créé: 2002-02-28 expire: jamais utilisation: SCA
confiance: inconnu validité: inconnu
Empreinte de la clé principale: 1719 003A CE3E 5A41 E2DE 70DF D97A 3AE9 11F6 3C51
Jamie Cameron
Etes-vous vraiment sûr(e) que vous voulez signer cette clé
avec votre clé « Wacken (Ceci est un exemple) » (C9619A0F)
Signer réellement ? (o/N)o
Dans le cas où vous auriez plusieurs clé avec le même identifiant, vous pouvez utiliser le numéro de la clé. Notre exemple deviendrait alors :
[wacken@desktop ~]$ gpg -u C9619A0F --edit-key 11F63C51
Encore une fois, pas bien compliqué !
Comme précédemment, repérer l'identifiant de la clé de chiffrement du correspondant et l'identifiant de la clé de signature de l'expéditeur (si on a plusieurs clés privées) grâce à gpg --list-key. Pour chiffrer et signer le fichier rapport_secret.pdf :
gpg -r Jamie -u Wacken -e -s rapport_secret.pdf
-e pour chiffrer, -s pour signer. Si -s n'est pas spécifié, -u est inutile. Le fichier rapport_secret.pdf.gpg sera créé. Pour le déchiffrer :
gpg -d rapport_secret.pdf.gpg > rapport_déchiffré.pdf
La passphrase vous sera demandée.
Un jeu d'enfant !
A suivre, partie 4 : Sécuriser et rendre anonyme sa navigation.
![]()
Billet original de Marty.
Votez pour cet article sur le Planet Libre.
Avant de se lancer dans la sécurisation de ses communications Internet, nous allons voir comment protéger au mieux les données présentes sur votre ordinateur, votre disque dur externe ou votre clé USB. La première partie de cet article sera consacrée aux bonnes habitudes à prendre, et la seconde au chiffrement de vos données.
Tout comme il est ridicule d'avoir un coffre-fort blindé quintuple épaisseur à triple serrure et reconnaissance rectale exposé dans son jardin, il est nécessaire de sécuriser un tant soit peu son PC ainsi que son réseau avant de vouloir chiffrer ses données. Quelques conseils simples, pourtant méconnus voire ignorés, permettent déjà d'atteindre un niveau de sécurité non négligeable.
S'il est bien un domaine ou Microsoft ne brille pas, c'est bien la sécurité. En particulier Internet Explorer, son navigateur intégré, s'est souvent révélé être une véritable passoire à virus, chevaux de Troie, spywares et autre cochonneries. Bien que Microsoft maintienne mordicus, à chaque nouvelle version, que son navigateur est le « plus sûr du monde car on a retenu la leçon de la version précédente », force est de constater que les scénarios se suivent et se ressemblent. On pourra sortir toutes études qu'on veut comparant le nombre de failles de sécurités, l'important n'est pas le nombre de failles mais la vitesse de correction de celles-ci. Dans ce domaine, un logiciel open-source est bien souvent nettement supérieur à un logiciel propriétaire. Utiliser, par exemple, Mozilla Firefox est donc une première étape dans la sécurisation de son PC. De plus, celui-ci permet l'utilisation de nombreux plugins qui décuplent ses capacités. Citons, par exemple :
Et j'en passe...
Si l'utilisation des webmails (interface web permettant d'avoir accès à ses mails, comme GMail ou Hotmail) est de plus en plus important, de nombreuses personnes utilisent encore un client mail comme Outlook. Ceux-ci permettent en effet de gérer plusieurs comptes facilement, sans devoir visiter chaque webmail séparément. Là encore, l'utilisation d'un client mail comme Mozilla Thunderbird est un gage de sécurité et de modularité supplémentaire grâce aux nombreux plugins disponibles.
Si, pour une raison ou une autre, vous êtes toujours sous Windows et que vous n'avez pas sauté le pas, vous avez surement installé un antivirus. Mais est-il à jour ? En effet, de nouveaux virus apparaissent chaque jour, et il est nécessaire que la base de données soit à jour. Un antivirus ne vous empêche pas de faire attention sur ce que vous cliquez (pièces jointes dans les mails, sites peu fréquentables, etc.). De manière générale, il faut appliquer la règle suivante : si c'est trop beau, c'est qu'il y a une couille.
Chaque inscription à un site requiert l'utilisation d'un mot de passe. Utilisez des mots de passe d'au minimum 6 caractères, en utilisant des majuscules, des chiffres et des caractères spéciaux (par exemple &@#§^”,;:?.=+%£-ÙÇÉÈÏÎÛÜAÂÄ...). Éviter les mots de passe du genre « pierre1976 » ou « Chris06 », bien trop simples à deviner. N'utilisez pas le même mot de passe pour votre compte MSN et votre compte Paypal, l'idéal étant d'utiliser un mot de passe différent pour chaque site. Impossible de tous les retenir ? En effet, mais rien ne vous empêche de les stocker dans un fichier... chiffré ! Nous y reviendrons par la suite.
Pour des raisons de facilité de configuration, le WiFi des routeurs ou les box sont activés sans clé de connexion, au mieux avec une clé WEP. Ceci est clairement insuffisant, et un voisin mal intentionné pourra sans problème infiltrer votre réseau. Au mieux il se contentera de surfer et de télécharger sur votre compte, au pire il ira fouiller le contenu de vos PC s'ils ne sont pas protégés. Utilisez donc une clé WAP aléatoire de taille maximale (63 caractères). Si vous êtes en manque d'inspiration, des générateurs de clés sont disponibles sur la toile.
Lorsqu'on supprime un fichier, les données ne sont pas réellement supprimées du disque dur. En réalité, l'espace occupé par ces données est indiqué comme libre, mais les données sont toujours présentes. Sous Linux, la commande shred permet de détruire efficacement un fichier :
shred -n 35 -z -u fichier
Ceci aura pour effet de :
Cette méthode est déjà plus efficace ;-)
Il existe principalement 3 possibilités de chiffrement : chiffer un fichier particulier, utiliser un conteneur chiffré et chiffrer une partition complète. TrueCrypt est capable d'effectuer ces deux dernières tâches. TrueCrypt est un programme libre, et est disponible ici. Il est disponible sous Windows, Mac OS X et Linux (paquets disponibles pour OpenSuSE et Ubuntu). L'intérêt de TrueCrypt est qu'il est multi-plateforme : il est possible de créer un conteneur sous Linux et l'utiliser ensuite sous Windows ou Mac OS X, par exemple.
Le but est de créer un fichier conteneur, une sorte de coffre-fort qui va contenir les fichiers à protéger. Dans TrueCrypt, cliquer sur Volumes → Create New Volume, puis sélectionner « Create a file container ». Deux choix s'offrent à vous :
Sélection entre fichier ou partition chiffré
Choix du type de conteneur
L'étape suivante est de sélectionner l'emplacement et le nom du fichier, si possible il devra passer inaperçu sur le disque. L'étape suivante consiste à choisir deux paramètres : l'algorithme de chiffrement et l'algorithme de hachage. L'algorithme de chiffrement (voir l'article précédent) est la fonction mathématique qui sera utilisée pour chiffrer les données. Il est possible d'utiliser consécutivement 2 ou 3 algorithmes, ce qui augmente la sécurité mais diminue la vitesse d'accès. La fonction de hachage sera utilisé lors de la génération d'un nombre aléatoire et de la création de la clé de chiffrement de l'entête (la partie du fichier qui contient des données propres à TrueCrypt). A priori, peu importe la fonction choisie. La taille du fichier se fait à l'étape suivante. Si vous choisissez un conteneur caché, prenez soin de spécifier une taille supérieure à la taille de vos fichiers confidentiels, étant donné que vous devrez y placer des « leurres ».
Emplacement du fichier
Méthode de chiffrement et fonction de hachage
Taille du conteneur
Il vous sera ensuite demandé d'utiliser une phrase de passe, ou passphrase. C'est l'équivalent d'un mot de passe, sauf qu'on vous demande... une phrase ;-) Il est conseillé de choisir une phrase assez longue avec majuscules, chiffres et caractères spéciaux. Vous avez également la possibilité d'utiliser des keyfiles. Un keyfile est un fichier quelconque qui sera utilisé en complément de votre passphrase. Il vous sera donc nécessaire de ne pas perdre, modifier ou supprimer ces fichiers, car dans le cas contraire vous ne pourrez plus accéder à votre volume chiffré. Notez que si vous avez choisi un conteneur caché, cette étape est liée à la partie contenant les leurres. Choisissez donc une passphrase qui sera différente de la passphrase qui servira à cacher vos vraies données confidentielles.
Phrase de passe
Keyfiles
Si vous avez choisi un conteneur standard, l'étape suivante est celle du choix du formatage. Si vous ne savez que choisir, prenez FAT. Ensuite, la clé de chiffrement de l'entête sera générée. Bougez votre souris dans la fenêtre, cela augmentera le caractère aléatoire de cette clé. Cliquez finalement sur Format, et votre conteneur sandard est créé ! Dans le cas d'un conteneur caché, la prochaine étape consiste à remplir partiellement le conteneur avec des leurres en cliquant sur Open Outer Volume. Quand c'est fait, appuyez sur Next, et vous devrez configurer la partie cachée de la même façon que la partie contenant des leurres.
Format de la partition
Génération de la clé d'entête
C'est fini !
Pour monter un conteneur chiffré, rien de plus simple. Il suffit de choisir le fichier puis de cliquer sur Volumes → Mount Volume, puis d'indiquer votre passphrase ainsi que les éventuels keyfiles. Votre conteneur apparaitra alors de manière similaire à une clé USB ou un disque dur externe. Sous Linux, les volumes sont montés par défaut dans /media/truecrypt1. Dans le cas d'un volume caché, vous avez trois possibilités :
Le principe est stictement identique, sauf que vous choisissez « Create a volume within a partition/device » au début du processus de création. Vous pouvez alors choisir de chiffrer une partition du disque dur, une clé USB, une carte mémoire, un disque externe... Pour monter le volume, vous choisirez « Select Device ». Quelques précautions à prendre tout de même :
Si, pour une raison ou pour une autre, vous ne pouvez ou ne voulez pas utiliser TrueCrypt, Cryptsetup vous permet de faire la même chose en ligne de commande. Cryptsetup se trouve dans les dépôts de la majorité des distributions. Un très bon tutoriel est disponible sur TheGlu's Blog.
Je dois dire que vu la simplicité de TrueCrypt, je n'utilise jamais Cryptsetup.
La majorité des distributions Linux vous proposent dès l'installation de chiffrer la partition /home, censée contenir vos documents personnels ainsi que les préférences des différents programmes. Personnellement, je trouve ça assez inutile car je ne mets aucun document sensible dans mon /home. De plus, je préfère scinder tout ce qui a trait au système des documents. A vous de voir selon vos habitudes... En pratique, la partition sera déchiffrée au moment où le mot de passe correspond au login sera donné.
Il est également possible d'avoir un système complètement chiffré, avec une passphrase demandée au démarrage. Ceci n'est absolument pas recommandé, surtout sur un portable : dans certains pays où la protection des données personnelles est mal vue, les douaniers pourraient être suspicieux. N'oubliez pas que si vous avez des choses à cacher, le mieux est de ne pas le crier sur tous les toits ;-)
À suivre, partie 3 : sécuriser ses échanges.
![]()
Billet original de Marty.
Votez pour cet article sur le Planet Libre.
Avec le développement de l'informatique et d'Internet, l'anonymat et la sécurité sur la toile sont de plus en plus récurrents. Que ce soit au sujet de la protection de leurs données, de la correspondance privée, de la constitution d'un profil sur base des traces laissées sur la toile (voir le portrait d'un internaute par le journal Le Tigre) ou du partage de musique ou films via les logiciels de peer-to-peer (eMule ou Bittorrent), beaucoup d'internautes (à mon avis, pas encore suffisamment ;-) ) commencent à prendre conscience que se trouver derrière un écran ne les rend pas anonyme.
Dans les prochains articles, nous traiterons de l'anonymat et de la sécurité dans divers sujets :
Le point commun à la sécurité informatique est l'utilisation de la cryptographie, et sera donc le sujet de ce premier article.
La cryptographie est une discipline s'attachant à protéger des messages en les modifiant de manière telle qu'il soit difficilement compréhensible. Donnons un petit exemple en chiffrant le mot « bonjour ». Nous pouvons tout d'abord attribuer à chaque lettre sa position correspondante dans l'alphabet, ce qui donnerait « 2 15 14 10 15 21 18 ». C'est une première étape, mais il est assez facile de décoder le message.
Pour compliquer la tâche, nous pouvons appliquer le chiffre de César qui consiste à ajouter un nombre quelconque à chaque lettre du message. Il suffira au correspondant de soustraire le nombre ajouté pour déchiffrer le message. Si nous ajoutons par exemple 3, « 2 15 14 10 15 21 18 » devient donc « 5 18 17 13 18 24 21 » ce qui correspond à « erqmrxu » Cependant, chaque langue a ses lettres les plus utilisées (en français, le E et le R). Dès lors, en analysant l'occurrence de chaque lettre dans le message il est assez facile de « casser » le chiffrement.
Nous pouvons encore compliquer le chiffrement en introduisant la notion de clé. Au lieu d'ajouter 3, nous pouvons ajouter alternativement 1 et 2. « 2 15 14 10 15 21 18 » devient « 3 17 15 12 16 23 19 », donc « cqolpws ». Il est alors nettement plus difficile de déchiffrer ce message, car il est inutile d'analyser l'occurrence de chaque lettre. Plus la clé (« 1 2 » dans notre cas) sera longue, plus il sera difficile de déchiffrer le message. C'est le principe du chiffrement symétrique.
Les algorithmes de chiffrement symétrique se fondent sur une même clé pour chiffrer et déchiffrer un message, à l'image de l'exemple précédent. D'un point du vue imagé, ce chiffrement fonctionne comme un coffre-fort classique où une clé est nécessaire pour l'ouvrir ou le fermer.
De nombreux algorithmes existent et font appel à des opérations mathématiques plus ou moins compliquées qu'il est inutile de détailler ici. Citons par exemple AES, Blowfish ou Serpent qui utilisent des clés de 128, 192 ou 256 bits. A l'instar de notre chiffrement basique, plus la clé est longue et plus il est difficile de casser le chiffrement ; cependant, le temps de chiffrement augmente avec la taille de la clé (les processeurs actuels permettent toutefois de traiter rapidement des quantités de données importantes). Un avantage de ces algorithmes est de produire une chaine de caractère plus longue que la chaine initiale. Par exemple, chiffrer symétriquement « bonjour » peut donner (selon l'algorithme utilisé et le mot de passe) :
jA0EAwMCTuvQ66Iz1DZgyR2e9lZQpZoNqXQ4sJwpThRx7sY1jvukhaIAGiNgLA== =NrNU
L'inconvénient principal de ce type de chiffrement est qu'il faut pouvoir faire passer la clé de chiffrement à son correspondant de manière sure. De plus, dans l'idéal il est nécessaire d'utiliser une clé par correspondant. Ces points faibles ont entrainé la nécessité du chiffrement asymétrique.
Le chiffrement symétrique est très bien adapté pour la protection de données qui ne sont pas destinées à être échangées. Le chiffrement étant assez rapide, il est par exemple possible de chiffrer des disques durs entiers en ayant un impact relativement faible sur les performances de lecture ou d'écriture.
Les algorithmes de chiffrement asymétrique fonctionnent avec deux clés : une clé pour chiffrer et une clé pour déchiffrer un message. Ces deux clés sont mathématiquement liées, et à une clé publique correspond une seule clé privée. Ce chiffrement fonctionne comme un coffre-fort pour lequel une clé permettrait de le fermer et une autre pour l'ouvrir.
La force de l'algorithme (RSA ou ElGamal par exemple) tient dans la difficulté de déduire la clé de déchiffrement (clé privée) à partir de la clé de chiffrement (clé publique). En effet, il est en théorie possible de déduire une clé privée à partir de la clé publique, mais c'est en pratique excessivement long (plusieurs centaines voire milliers d'années). Il est nécessaire d'utiliser des clés de taille nettement supérieure aux clés utilisées pour le chiffrement symétrique. 1024 bits est un minimum, 2048 bits est recommandé et 4096 bits est l'idéal. Chiffrer « bonjour » avec une clé de 4096 bits peut donner :
hQQOAwa2rcfSQVdeEA//RyJ9gO0QBGU5S7nxIZ/lGK0nWi1uYGIPS/hyZfiemp5P 9/AJup4rQ6fpbOWzQUv+fIU4+oQWUtd5YxfsRL1Lx3GJ78XKa2w5Hz/+z5U9vfVH /cxEjoC1tyX3nL/OHAM8W2rER2yUQQ4TXkHr3xo8bElkVxmw5KAJV+BQFK6CNXKp e7y8YY79ZCYF9tqf1b/Y/neR6IGMIwDdi4kM9dF6WEPg7IU7OCxFHA2m6wxtyifl mXjvaRF5h1wmf+CkAXpSJ/CwmBihWMUDOMtK8sBDq3ie0kEok1BigSZZtOWmcgkM ZKMVNl7Aul53cKWAKh7KE4kQ2mVtbkZOKTRFr+33PkJeVaMNJRml4l/SGSOnOThI 6qfuJMcYKj9sZp3zlDHRbKwgZRhdhBuot4TS3u9U4ew6jkAdXJac7z56m33djCtu fMlfpzxttyTwhiDzkxyj7vFzN671O5wqvnRo1YdOHDtaxwdGIWJR7sd1Y7JnnzmJ QgyAZ/utS7Kd3gSytfGJZGCHvw9c5GbiF9oDwPahY1tcQBKgnJsN4M3VytYRoQR1 kStUg4fjYdI+MBAqVvbzc3GvYfNNbAeuq4zbMLD/0GCrqM4mWHZ/G7IL/FDi4tov 3R4WpZPJQyWk5qZaiNQWs8cEiWpnP7Y/x7oyloORCTjl6+8v9GiuJsqTpjbshEoP /RkbT/HhohadU6dpTGCAFz88geGmJXA4espa+6i9ldAT48uhVBrp/WkbhrpHqfsP kxWRPGfrWcmaYe5/BFNTMWP6k623/mGDf3XDUwRU3ADWyfl05/SGStE2Jhi/P+2O JHtdcL6EatWyuuZwTmNM43H3kROvXyqmaAcSqJMD91tdkochSnYzml1fCk+yhpru e9orcpU+uzTe1xg/anm7cSDmbeQwa8yfpzakHex8E6zeARpC7hPp9FPuvNWjIUH6 iuV5SF1LX0XdFVQyOq4AwN+wOLfRpBzbWKCB+xURdcQOK7QHP2MzH1GoOb8fIiEX yFk5TDlC/GL9x6w2L83JvAR30vofu5sBxWWgSKfsYq6TTyShl9B+wiXMd22iwTXI t4bGW9ftL0BOr0jUrN3lKgmByiNsDFmrDk6hIWzL3UL0Z/w24pBbd2p7eKOvBQPY 4up45euVOhDEUeaebhco44arrQ0kVDS2r6xiG3MYEhA57KObpAA2sEjcz+ALt0Nf BTfimKV83wv12172bsSb3YTqTwV85JwpXu/Fp2QwCj12uilBWiX+Z3GSP4kxuwKb dRYIBucBa0fFOa31jOuMPLPQCK4iTeiZ/SPQqGsOO/dl8tE9zb4CmyE2L3bxGjNo 9QgdYudKZHD4dMKRrGOSUTiuHcKcmh0VvllhxxKz/NNW0kIBZbFWsnRPiDknaGrb h1ln3mXAvcNEUu0UXpH3maJO9a55Y3TIoGCo+6zqvEQjUSz9GINg75FTSzAWnTnL V8tf+o4= =GqSt
Une clé plus courte donnera un résultat plus court, comme on pourrait s'en douter ;-) .
L'avantage est qu'on peut sans problème fournir la même clé publique à tous ses contacts sans précautions particulières, vu qu'il est presque impossible d'en déduire la clé privée. En contrepartie, le temps de chiffrement est assez long. Le chiffrement asymétrique est donc bien adapté pour la correspondance (pour des textes simples, le chiffrement est instantané) mais pas pour des données plus importantes (images, vidéos...).
Les méthodes de chiffrement présentées ci-dessus peuvent être appliquées à n'importe quel type de données, et pas seulement à du texte. Il est donc tout à fait possible de faire du peer-to-peer chiffré, ou de naviguer sur le web sans que personne ne puisse avoir accès aux données consultées, y compris votre FAI. Il est cependant nécessaire de ne pas mélanger sécurité et anonymat : la sécurité (liée au chiffrement) vous permet de faire transiter vos données sans que personne ne puisse y accéder, alors que l'anonymat vous permet de faire transiter des données de telle manière qu'il soit très difficile de savoir qui en sont l'expéditeur et le destinataire. Nous tenterons de combiner au mieux ces deux aspects.
A suivre, partie 2 : protéger ses données personnelles.
![]()
Billet original de Marty.
Votez pour cet article sur le Planet Libre.
rsync --archive --verbose --stats --progress --delete --delete-excluded --exclude="/home/jeff/src/" /home/jeff/ /media/backup/
On pourrait croire, selon le gros-bon-sens, que ceci est syntaxiquement correct. D’ailleurs, le manpage de rsync ne dit rien à ce sujet. Après une heure de tâtonnement, j’ai eu le insight par rapport à la raison pourquoi cet idiot de rsync continuait de backuper le dossier «src» quand même: la racine (“/”) est relative au dossier racine qu’on backupe. Ainsi, si je backupe “/home/jeff/”, “/” ne correspond pas réellement à “/”, mais à “/home/jeff/”. Conséquemment, si je veux exclure “/home/jeff/src”, il faut que je lui dise d’exclure “/src” plutôt.
Allez, geeks barbus, dites-moi que c’est parfaitement naturel et logique et que j’aurais dû le deviner immédiatement :)
…en fait, ce n’est pas tout. Je découvre en rédigeant ces lignes que rsync a, en plus, deux «modes» d’opération, dépendamment de si on met un “/” à la fin du chemin de dossier source ou pas. Tiré du manuel:
A trailing slash on the source changes this behavior to transfer all files from the directory src/bar on the machine foo into the /data/tmp/.
A trailing / on a source name means “copy the contents of this directory”.
Without a trailing slash it means “copy the directory”.
![]()
Billet original de Kiddo.
Votez pour cet article sur le Planet Libre.

Il existe également une interface Web nommée NFSen dont nous allons parler aujourd'hui.
On doit avoir sur sa machine GNU/Linux:
sudo aptitude install rrdtool librrds-perl
On commence par télécharger la dernière version (1.3.2) de NFSen dans un répertoire de travail:
cd ~/src/ wget http://downloads.sourceforge.net/project/nfsen/stable/nfsen-1.3.2/nfsen-1.3.2.tar.gz?use_mirror=freefr
On décompresse:
tar zxvf nfsen-1.3.2.tar.gz cd nfsen-1.3.2/
NFSen est livré avec un script Perl d'auto installation. Il y a quelques manipulations à faire avant de lancer le script. Je détaille pas mais le coeur y est...
sudo useradd -m nfsen sudo passwd nfsen sudo usermod -G www-data nfsen sudo mkdir /var/www/nfsen sudo chown -R nfsen:www-data /var/www/nfsen
On édite ensuite le fichier de configuration ./etc/nfsen.conf (à partir du fichier nfsen-dist.conf):
cp ./etc/nfsen-dist.conf ./etc/nfsen.conf vi ./etc/nfsen.conf
On change les lignes suivantes:
$BASEDIR = "/opt/nfsen";
$PREFIX = "/usr/bin";
$USER = "nfsen";
$WWWUSER = "nfsen";
$WWWGROUP = "www-data";
%sources = (
'monrouteur' => { 'port' => '9996', 'col' => '#0000ff', 'type' => 'netflow' }
);
On peut ensuite lancer le script d'installation:
sudo ./install.pl etc/nfsen.conf
On peut vérifier que l'arborescence de NFSen a bien été créée dans le répertoire /opt/nfsen et dans /var/www/nfsen:
ls -alF /opt/nfsen/ total 28 drwxr-xr-x 2 root www-data 4096 2010-03-18 09:09 bin drwxr-xr-x 2 root www-data 4096 2010-03-18 09:09 etc drwxr-xr-x 2 root www-data 4096 2010-03-18 09:09 libexec drwxr-xr-x 2 root www-data 4096 2010-03-18 09:09 plugins drwxrwxr-x 3 nfsen www-data 4096 2010-03-18 09:09 profiles-data drwxrwxr-x 3 nfsen www-data 4096 2010-03-18 09:09 profiles-stat drwxrwxr-x 6 nfsen www-data 4096 2010-03-18 09:09 var ls -alF /var/www/nfsen/ total 316 -rw-r--r-- 1 root www-data 45019 2010-03-18 09:09 alerting.php -rw-r--r-- 1 root www-data 24139 2010-03-18 09:09 colour_palette.html -rw-r--r-- 1 root www-data 3318 2010-03-18 09:09 colour_picker.html -rw-r--r-- 1 root root 142 2010-03-18 09:09 conf.php drwxr-xr-x 2 root www-data 4096 2010-03-18 09:09 css -rw-r--r-- 1 root www-data 57987 2010-03-18 09:09 details.php drwxr-xr-x 3 root www-data 4096 2010-03-18 09:09 doc drwxr-xr-x 2 root www-data 4096 2010-03-18 09:09 icons drwxr-xr-x 2 root www-data 4096 2010-03-18 09:09 js -rw-r--r-- 1 root www-data 1177 2010-03-18 09:09 lookup.php -rw-r--r-- 1 root www-data 4130 2010-03-18 09:09 navigator.php -rw-r--r-- 1 root www-data 21613 2010-03-18 09:09 nfsen.php -rw-r--r-- 1 root www-data 21541 2010-03-18 09:09 nfsen.php.orig -rw-r--r-- 1 root www-data 17666 2010-03-18 09:09 nfsenutil.php -rw-r--r-- 1 root www-data 3868 2010-03-18 09:09 overview.php -rw-r--r-- 1 root www-data 2740 2010-03-18 09:09 pic.php drwxr-xr-x 2 root www-data 4096 2010-03-18 09:09 plugins -rw-r--r-- 1 root www-data 4005 2010-03-18 09:09 process.php -rw-r--r-- 1 root www-data 56991 2010-03-18 09:09 profileadmin.php -rw-r--r-- 1 root www-data 1389 2010-03-18 09:09 rrdgraph.php
Dans le but de lancer NFSen comme un service Linux, il est nécessaire de créer le lien symbolique suivant:
sudo ln -s /opt/nfsen/bin/nfsen /etc/init.d/nfsen
Enfin pour forcer le lancement de NFSen au boot de la machine:
sudo update-rc.d nfsen defaults
Pour lancer le daemon en tache de fond, il suffit de saisir la commande suivante:
sudo /etc/init.d/nfsen start
Remarque Attention, avant de lancer NfSen, il faut s'assurer que NFDump n'est pas lancé. En effet, c'est NfSen qui va lancer NfDump... Sinon vous risquez d'avoir l'erreur suivante: "Receive socket error: could not open the requested socket".
Il est possible d'avoir l'état du démon NFSen avec la commande:
sudo /etc/init.d/nfsen status NfSen version: 1.3.2 NfSen status: Collector for 'upstream1' is running: 20335. Collector for 'peer1' is running: 20338. nfsen daemon: pid: [20340] is running.
La liste des sources Netflow se trouve dans le fichier /opt/nfsen/etc/nfsen.conf. La syntaxe est assez simple:
# Netflow sources
# Define an ident string, port and colour per netflow source
#
# Required parameters:
# ident identifies this netflow source. e.g. the router name,
# Upstream provider name etc.
# port nfcapd listens on this port for netflow data for this source
# set port to '0' if you do not want a collector to be started
# col colour in nfsen graphs for this source
#
# Optional parameters
# type Collector type needed for this source. Can be 'netflow' or 'sflow'. Default is netflow
# optarg Optional args to the collector at startup
#
# Syntax:
# 'ident' => { 'port' => '', 'col' => '', 'type' => '' }
# Ident strings must be 1 to 19 characters long only, containing characters [a-zA-Z0-9_].
%sources = (
'monrouteur' => { 'port' => '9996', 'col' => '#0000ff', 'type' => 'netflow' },
'monautrerouteur' => { 'port' => '9997', 'col' => '#0000ff', 'type' => 'netflow' }
);
Une fois le fichier de configuration modifié, il faut recharger la configuration NFSen grâce à la commande:
sudo /etc/init.d/nfsen reconfig NfSen version: 1.3.2 NfSen status: Collector for 'monrouteur' is running: 21514. nfsen daemon: pid: [21516] is running.
Maintenant que le démon tourne en tache de fond de notre machine, il s'occupe de récupérer les Netflow venant de nos routeurs grâce à NFDump. Il nous reste à configurer notre serveur Web pour "présenter" les rapports.
Par exemple sous Cherokee, il suffit de créer le serveur virtuel nfsen qui pointe vers la racine /car/www/nfsen.
On pointe sont navigateur vers l'URL du serveur http://monserveur/nfsen/nfsen.php
L'interface NFSen devrait s'afficher !
Il est toujours possible de traiter les fichiers de données Netflow en ligne de commande. Les fichiers en question se trouve dans le répertoire /opt/nfsen/profiles-data/live/
Par exemple la ligne de commande suivante permet d'afficher de manière textuelle la liste des flux:
nfdump -R /opt/nfsen/profiles-data/live/monrouteur -o extended -a

Sources pour la rédaction de cet article:
![]()
Billet original de Nicolargo.
Votez pour cet article sur le Planet Libre.
Rappelons que NuFirewall est un FrontEnd graphique pour NetFilter et NuFw qui grâce à ce dernier a la particularité d’associer des règles de filtrage classique à l’identité de ses utilisateurs.
NuFirewall est une interface PyQT qui comprend : (source linuxfr)
Le tout est basé sur une Debian Lenny. Vous pouvez télécharger la solution ici. Sur la page vous trouverez également un guide de démarrage rapide vous permettant d’installer et de configurer facilement le Firewall.
![]()
Billet original de Julien.
Votez pour cet article sur le Planet Libre.
Joindre son serveur SSH sur le port 443 peut être utile, en particulier si vous êtes connecté derrière un routeur firewall qui fait du zèle.
Problème votre serveur Web utilise déjà ce port pour les connexions SSL ? SSLH a la solution.
SSLH est multiplexeur SSL/SSH, c'est lui qui va se chargera d'écouter sur votre port 443 (tcp) et de rediriger les requêtes qu'il reçoit vers le service approprié.
Dans notre exemple SSLH va être installé sur une machine CentOS 5.4, et aiguillera nos requêtes vers OpenSSH ou Apache.
Compilation
Pour la compilation c'est du classique, un seul fichier source (sslh.c) et un Makefile. Seul subtilité ici nous désirons installer le binaire généré dans "/srv".
# wget http://www.rutschle.net/tech/sslh-1.7a.tar.gz # tar xvzf sslh-1.7a.tar.gz # cd sslh-1.7a # make PREFIX=/srv # PREFIX à modifier selon votre besoin. (/usr/local par défaut) # make install
Installation du script d'init
Un script d'init pour CentOS est fournit avec l'archive de SSLH (scripts/etc.rc.d.init.d.sslh.centos), cependant se script est un peu buggé c'est pour cela que je vous propose d'installer ma propre modification de ce script.
# wget http://www.system-linux.eu/public/scripts/sslh -O "/etc/init.d/sslh" # chmod 755 /etc/init.d/sslh # chkconfig --add /etc/init.d/sslh
Configuration
La configuration de SSLH se fait via les arguments qui lui son passé sur ligne de commande. J'ai donc décidé de les conserver dans le script d'init. (même si cela n'est habituellement pas conseillé)
On édite donc le script d'init.
# vi /etc/init.d/sslh
Cette ligne précisément:
... OPTIONS="-p 0.0.0.0:443 -l 127.0.0.1:8443 -s 127.0.0.1:22 -P $PIDFILE" ...
-p 0.0.0.0:443 :SSLH sera en écoute sur le port 443.
-l 127.0.0.1:8443 :SSLH redirigera les requêtes HTTPS en local sur le port 8443.
-s 127.0.0.1:22 :SSLH redirigera les requêtes SSH en local sur le port 22.
Configuration de Apache
Il faut maintenant changer le port d'écoute de Apache pour qu'il utilise désormais le port 8443 pour les connexions HTTPS.
Nous disposons d'un serveur Apache compiler par nos soins. Il utilise le fichier "conf/extra/httpd-ssl.conf" pour définir le port de connexion HTTPS. Si vous ne disposez pas de se fichier il vous faut chercher où ce situe cette configuration. (probablement dans le httpd.conf)
# grep -lr "Listen 443" *
Un fois trouvé on édite ce fichier pour remplacer:
Listen 443
par:
Listen 8443
Enfin nous devons changer la configuration de nos vhosts comme par exemple:
... SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCertificateFile "/etc/chose/..." SSLCertificateKeyFile "/etc/truc/..."
Pour que nos modification soit prise en compte on redémarre le service httpd.
# service httpd restart
On démarre aussi tôt SSLH
# service sslh start
Créaction d'un fichier de log pour SSLH
SSLH envoi ses logs de connexion par le protocole syslog. Pour plus de lisibilité nous allons donc configurer notre démon syslog pour qui dirige les logs de sslh dans un fichier dédié.
Nous utilisons rsyslog et voici notre filtre:
# echo "# sslh log file" >> /etc/rsyslog.conf # echo -e ":programname, isequal, \"sslh\"\t\t /var/log/sslh.log" >> /etc/rsyslog.conf
Puis on relance le démon rsyslog:
# service rsyslog restart
Si vous avez un grand nombre de connexion SSL/SSH il peux être intéressent d'effectuer une rotation sur ce fichier:
echo "/var/log/sslh {
weekly
notifempty
missingok
}" > /etc/logrotate.d/sslh
Et si tous se passe bien, vous devriez trouver dans vos logs quelque chose comme suit.
# tail /var/log/sslh.log Mar 17 00:38:22 csbjix sslh[21726]: connection from x.x.x.x:42395 forwarded to SSL Mar 17 16:45:27 csbjix sslh[21726]: connection from y.y.y.y:16112 forwarded to SSH
Amusez vous bien !
NB: Cette article fait suite à la découverte de SSLH sur le site de notre ami bloggeur, Billux13. Si vous utilisez Debian et Lighttpd je vous invite a consulter son article.
![]()
Billet original de System Linux.
Votez pour cet article sur le Planet Libre.

Alter Way, groupe centré autour des Logiciels Libres, dans lequel je travaille vient de sortir un livre blanc sur le développement Python, nommé Python : le développement autrement
Quelques mois après la sortie du Livre Industrialisation du développement PHP et l’Introduction au Business Process Management (BPM) voici un nouveau livre blanc consacré au développement, cette fois-ci le Python.
Ce livre blanc a été écrit par Christophe Combelles, qui est Responsable du Centre de Compétences Python d’Alter Way et Vice-Président de l’Afpy, l’Association Francophone Python et Gabriel Pettier.
Pour rappel Python est un langage de programmation libre fortement utilisé, notamment par Google.
Pour les intéressés, voici le sommaire de ce livre blanc :
Voilà qui devrait permettre de connaître un peu mieux le langage de développement libre qu’est Python.
Voici quelques projets libres réalisés en Python :
Plone qui est un système de gestion de contenu (CMS)
OpenERP & ERP5 qui comme leur nom l’indique sont des ERP
Mailman, le célèbre gestionnaire de liste de diffusion
MoinMoinWiki dont j’ai déjà parlé sur L’admin sous Linux poru un howto d’install sur Debian
Shinken dont j’ai déjà parlé plusieurs fois ici qui est un Nagios refait intégralement en Python
Liens utiles :
Association Francophone Python
![]()
Billet original de Admin-Linux.
Votez pour cet article sur le Planet Libre.
Voici le test d’AjaxPlorer, dont je sais que l’un des auteurs me lit, qui est un logiciel publié sous LGPL license et tous les modules utilisés sont des logiciels libres.
Attention à ne pas le confondre avec ajaxbrowser, ça n’a rien à voir.
Décompression de l’archive téléchargée dans un répertoire du serveur web, attribution des droits à apache, puis accès avec le navigateur. J’ignore à quoi servent les deux fichiers xml (manifest et parameters) dans l’archive, mais il faut copier le dossier Ajaxplorer-2.5.5 contenu dans le zip sur le serveur web, et non le dossier issu de la décompression du zip.
Un premier test est effectué sur les droits du dossier et les paramétrages d’options. Bon point. Moins bon, c’est en anglais. Mauvais point, le lien pour expliquer l’erreur tombe sur une page 404…
A l’installation, création automatique d’un utilisateur admin avec le mot de passe admin . Je préfèrerais, vu qu’on m’impose déjà le login de l’admin, qu’on me demande le mot de passe à lui attribuer, plutôt que de rappeler de le modifier immédiatement. D’autant que si on découvre le logiciel, on peut ne pas trouver immédiatement l’endroit. La page des réglages devrait s’ouvrir immédiatement dès la première connexion de l’admin.
Ce fut le cas lors de ma deuxième installation, pas lors de la première. Peut être une mise à jour entre les deux?
Propre et épuré. J’aime bien, mes utilisateurs moins. Ça tranche avec leur environnement de bureau. Et puis, tout est en angles droits. Bon, les gouts et les couleurs, ça ne se discute pas mais on en parle pendant des heures. Et puis, ce que retiennent les gens d’un logiciel, c’est l’aspect graphique qui plait ou pas. Les 15 premières secondes sont primordiales, et si ça ne passe pas, les fonctionnalités importeront peu.
Pour l’anecdote, j’ai des utilisateurs qui ne veulent pas lâcher leur logiciel qui ne répond pas à leur besoin parce que celui qu’ils on leur plait. C’est idiot, mais comme ce sont eux qui choisissent, je ne peux pas les forcer à en changer…
Le bouton pour fermer les fenêtres est à gauche, or, c’est à droite qu’on va le chercher. C’est fatiguant à la longue. Pourquoi remettre en cause des années d’habitudes? A noter que c’est une modification que Lucid risque d’apporter et que ça rouspète grave sur les listes de discussion à ce sujet. Personnellement, je n’aime pas, et mes utilisateurs non plus.
C’est tout bête, mais j’ai peiné à trouver comment créer des utilisateurs. L’accès aux réglages n’est pas intuitif. Une fois qu’on sait où les chercher, ça va mieux.
L’impossibilité simple d’ajouter une bannière en haut de page est un frein pour mon usage.
J’en ai parlé, en entreprise, en mairie, en école, tout le monde veux un produit à ses couleurs. Une simple bannière avec un logo et un texte (du style: « Documents de l’association Machintruc ») est suffisant. Si le gestionnaire de fichiers en ligne est adopté massivement, il peut se retrouver sur plusieurs serveurs avec des secteurs différents et si on ne peut rapidement faire la différence d’un site à l’autre, ça va amener des problèmes.
Heureusement, la fouille de la FAQ permet de trouver l’info: il faut modifier les fichiers VotreInstallation/client/html/usertemplate-top.html et usertemplace_bottom.html, supprimer les commentaires de la partie nécessaire et personnaliser pour obtenir un affichage adapté à vos besoins.
(pas de commentaires sur l’exemple ci dessus: c’est pour que soit bien visible)
On peut créer autant de dossiers que voulu, ceux ci correspondant à des dossiers accessibles au serveur web (attention aux droits) et donner l’accès en lecture et/ou écriture aux utilisateurs créés. Du classique de ce qu’on attend de ce genre de logiciel.
A noter qu’il est possible de créer des dossiers en accès « système de fichiers », « serveur FTP », « Database Mysql », « système de fichiers sur SSH » ou « serveur distant via une API ». Je n’ai testé que le système de fichier standard car c’est la seule fonction qui m’intéresse pour l’instant, mais je vais me pencher sur les autres prochainement, ça m’a l’air très intéressant.
Info à savoir, un même utilisateur peut être loggué simultanément depuis plusieurs ordinateurs. Ça peut être un avantage ou un inconvénient, selon l’usage voulu. Plusieurs utilisateurs peuvent aussi être admin dans le logiciel.
Très complets, intéressants pour savoir qui a fait quoi à quel moment.
Les logs ont des petits problèmes avec l’UTF-8, mais à l’affichage et sur le serveur, tout va bien. Négligeable, donc.
Lors de la sélection d’une image, un aperçu avec les détails du fichier apparait dans la fenêtre. Avec un menu permettant d’agir dessus.
Le lancement de l’option « voir en grand » affiche l’image, avec la possibilité de la voir en grand écran et même de lancer un diaporama sur toutes les images du dossier. J’aime bien. Les icones des boutons mériteraient d’être réduites lorsqu’on demande le plein écran; c’est dommage de perdre de la taille d’affichage pour des boutons qui devraient, à mon avis, s’effacer devant l’image, puisque c’est un grand affichage qu’on recherche.
Par contre, encore une fois, le bouton de fermeture du diaporama se trouve à gauche…
Comme pour les images, un aperçu donne les informations sur le fichier, avec la possibilité directe de lecture.
L’écoute du répertoire complet fonctionne aussi, avec des limitations que je trouve dommage:
Ce n’est pas primordial, et pas dans mon cahier des charges, mais c’est dommage que ces détails (parce que ça reste du détail) gâchent ce qui pourrait être une superbe fonctionnalité: écouter SA musique depuis n’importe quel ordinateur sans grosse installation.
Peut être des fonctionnalités dans la prochaine version?
Selon votre utilisation du gestionnaire de fichiers en ligne, vous aurez peut être besoin d’éditer des fichiers. Sauf que ça ne fonctionne que sur le PHP, le xml, le css et le txt, et que j’aurais (beaucoup) aimé pouvoir éditer en ligne des fichiers python. Par contre, ça ne fonctionne pas pour les fichiers .tpl, donc impossible de modifier les templates d’un de mes sites.
Pour les fichiers acceptés, la coloration syntaxique fonctionne correctement et ça peut être très pratique pour faire des modifications rapides dans un site web.
J’ai peiné à trouver la fonctionnalité « Public link » qui permet d’envoyer un lien vers un fichier pour autoriser un ami à télécharger celui si sans avoir à s’identifier. Il faut en fait fouiller la FAQ pour touver la solution: le dossier accessible au public est défini dans le fichier VotreInstallation/server/conf.conf.php à la valeur public à la racine de votre site. Il faut donc créer ce dossier (ou indiquer le nom d’un dossier existant) et le rendre accessible au serveur web (www-data) en écriture. Si le dossier n’existe pas ou n’est pas accessible, le bouton n’apparait pas.
Ensuite, vous pouvez partager des documents (pas des dossiers) en indiquant une durée de validité et même en restreignant l’accès avec un mot de passe. L’emplacement réel du fichier partagé est crypté dans un fichier PHP.
J’aime beaucoup! L’idéal serait que cette fonction puisse être réglée utilisateur par utilisateur, et non pas au niveau global du logiciel.
Seule restriction, cela ne peut se faire que fichier par fichier, et pas pour des dossiers, sauf à créer un zip de celui ci.
Classique, avec possibilité de créer, supprimer, éditer, uploader si vous avez les droits. Vous pouvez aussi copier/déplacer des fichiers d’un dossier à l’autre, soit par glisser/déposer, soit en utilisant la fonction intégrée très puissante (la sélection multiple fonctionne!). On peut même télécharger un dossier complet en une seule fois, il est transformé en zip avant download (même si les accents posent problème dans le nom du zip).
J’aimerais quand même mettre en avant le fait qu’on peut uploader plusieurs fichiers à la fois en faisant une sélection multiple et que tous les fichiers partent sur le serveur dès la validation. Et c’est très rapide!
Vous pouvez mettre des dossiers en favoris (dans AjaxPlorer), voir les fichiers en liste ou en vignettes, classer les colonnes par nom, par type, par date, choisir la langue de fonctionnement utilisateur par utilisateur (anglais, français, néerlandais, allemand, italien ou espagnol).
A noter qu’un système de plugins permet d’ajouter , entre autre, des modes d’authentification, et que j’ai trouvé quelqu’un qui utilisait LDAP pour l’accès au programme.
Un forum actif existe pour poser ses questions, et si vous maitrisez l’anglais ou les services de traduction, vous aurez de fortes chances de trouver réponse à vos questions.
Même si j’ai donné l’impression de critiquer tout du long, j’ai été très séduit par le logiciel. Il faut bien que je critique pour signaler les points positifs. Et puis, qui aime bien châtie bien.
En fait, c’est parce que je trouve ce logiciel très bien que je suis d’autant plus déçu de ce que j’ai signalé: avec quelques modifications qui me semblent peu importantes en terme de développement (mais je peux me tromper), ce logiciel pourrait devenir la solution absolue à l’accès des fichiers partagés ou non.
J’avais peur qu’Ajax soit lourd, mais c’est d’une fluidité supérieure à certaines opérations sur l’ordinateur local. Le logiciel est assez intuitif et aucune formation supérieure à 3 minutes n’est nécessaire pour l’utiliser.
Dans tous les cas, c’est le gestionnaire qui arrive pour l’instant en tête de mes tests, car il répond à mon cahier des charges, et je vais continuer à le suivre.
![]()
Billet original de Manu Absolacom.
Votez pour cet article sur le Planet Libre.
Déjà, uniquement 5 mois, cela paraît un peu ambitieux, mais je pencherais plutôt pour une sortie en septembre. En tout cas, on verra.
Haven ? C’est une planète du deuxième tome du cycle de Fondation, partie « Le mulet » si on en croit wikipedia
![]()
Billet original de FredBezies.
Votez pour cet article sur le Planet Libre.
C'est en lisant le dernier GLMF que je suis tombé sur l'article de Carl Chenet sur le serveur Web Cherokee. Ce serveur libre (licence GPL) s'annonce stable (comme Apache), rapide (plus qu'Apache) et facile à configurer (pas comme Apache).Écrit en langage C, il propose en standard une interface Web de configuration et un système de plugins permettant de facilement adapter le serveur à nos besoins.
Nous allons donc voir le détail de l'installation de Cherokee sur une distribution GNU/Linux Ubuntu 9.10 ainsi que sa configuration standard.
Avant de commencer, voici un screencast d'introduction à Cherokee (en Anglais):
Cherokee Web Server - Introduction from alobbs on Vimeo.
Cherokee se trouve dans les dépôts standard d'Ubuntu. Seulement, la version disponible date un peut (0.99.19-1build1 au moement de l'écriture de cet article). Heureusement, il existe dans les PPA une version plus récente. On commence donc par ajouter le dépôt PPA en question:
sudo add-apt-repository ppa:cherokee-webserver sudo aptitude update
Ensuite on passe à l'installation complète (avec support du PHP et HTTPS):
sudo aptitude install cherokee php5-cgi libcherokee-mod-rrd rrdtool libcherokee-mod-libssl openssl
On teste l'installation en pointant son navigateur Web vers l'URL: http://192.168.29.129/ (remplacer l'adresse IP par celle du serveur sur lequel vous avez installé Cherokee...). La page suivante devrait apparaitre devant vos yeux ébahis.
Si vous avez lu l'introduction vous avez noté qu'il y a une interface Web de configuration (pas besoin d'aller trifouiller des tonnes de fichiers textes...). La configuration cette interface d'administration (sic...) s'effectue grâce aux commandes suivantes:
cherokee-admin -b Login: User: admin One-time Password: goixKrnGLTtV4nZt Web Interface: URL: http://localhost:9090/
Il est possible de filtrer les adresses IP sources (celle qui on le droit d'administrer Cherokee en utilisant l'option -b=192.168.29.100 seul la machine d'adresse IP 192.168.29.100 pourra accéder à l'interface d'adminsitration).
Il ne reste plus qu'a pointer son navigateur Web vers l'URL: http://192.168.29.129:9090 (ou http://localhost:9090 si vous êtes directement sur la machine).
On commence la visite du propriétaire avec le menu Etat qui permet d'avoir une vue sur votre serveur Web avec notamment un graphe sur la charge du serveur (grâce à RRD):
On peut également y voir le répertoire par défaut ou doit être stocké le contenu de votre site: "Default WWW: /var/www"
Par exemple on va créer la superbe page HTML suivante:
cd /var/www mv index.html index.html.old vi index.html
Une belle page HTML
Il suffit de recharger l'URL http://192.168.29.129/ pour voir s'afficher la page.
On poursuit par la découverte du deuxième menu de l'interface d'administration de Cherokee: Général. L'onglet Réseau permet de configurer le comportement de votre serveur. C'est notamment là qu'il faut activer le type de graphe RRDtools afin d'avoir de beau graphes dans le menu Etat.
On passe ensuite à l'onglet Port à écouter qui comme son nom l'indique permet de configurer les ports TCP en écoutes pour les requêtes HTTP (c'est le port 80 qui est défini par défaut). Il est possible de configurer plusieurs ports d'écoutes en HTTP et HTTPs (on reviendra sur ce point un peu plus loin):
On passe ensuite à l'onglet Permission du serveur ou l'on peut configurer le nom et le groupe système avec lequel Cherokee va être lancé:
On passe ensuite à la partie que je trouve la plus intéressante par rapport aux autres serveurs Web: la simplicité de création des Serveurs Virtuels.
Un serveur web virtuel permet d'associer un nom de machine (par exemple blog.mondomaine.com) à une arborescence précise de mon serveur Web (par exemple /var/www/blog). Il est bien sûr possible de créer autant de serveurs web virtuels que de besoins.
La première fonction permet d'ajouter simplement une association "nom de machine" / "répertoire" (option Ajouter un nouveau serveur virtuel):
Pour le support du langage PHP (Cherokee supporte également le langage PHP via le module php5-cgi, installé dans la première partie de cet article) sur un serveur virtuel existant. Il faut cliquer sur le serveur en question dans la liste puis se rendre dans l'onglet Behavior, cliquer sur le bouton Assistants puis choisir PHP dans la liste (sous menu Langues) et enfin cliquer sur Run Wizard:
La ligne PHP va être ajouté dans la liste des Behavior:
Il faut ensuite cliquer sur le radio bouton Final
On peut tester simplement la configuration en ajoutant un fichier de test index.php contenant les lignes suivantes à la racine de votre serveur virtuel:
Et le résultat de l'URL http://192.168.29.129/index.php
Pour créer un serveur virtuel il est également possible de suivre un Assistant qui va vous proposer d'installer pour vous une liste de services (Liferay, Wordpress, Dupral, Zend, Trac, MoinMoin, PhpBB, ...).
On va ici parler de HTTPs qui permet de chiffrer les échanges entre votre navigateur Web et votre serveur Cherokee. Cette étape de configuration est bien sûr optionnelle.
On commence par configurer OpenSSL (le module qui va chiffrer) pour qu'il génère des certificats dédiés à notre serveur (virtuel ou pas).
openssl req -new -x509 -nodes -out serverdefault.crt -keyout serverdefault.key Generating a 1024 bit RSA private key ...........++++++ ......................++++++ unable to write 'random state' writing new private key to 'serverdefault.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [AU]:FR State or Province Name (full name) [Some-State]:PACA Locality Name (eg, city) []:Cannes Organization Name (eg, company) [Internet Widgits Pty Ltd]:Nicolargo Organizational Unit Name (eg, section) []: Common Name (eg, YOUR name) []: Email Address []:
On copie alors les deux fichiers générés dans le répertoire /etc/cherokee:
sudo cp serverdefault.crt serverdefault.key /etc/cherokee
On doit ensuite se rendre dans le menu Général / Réseau de l'interface d'administration de Cherokee et activer le module OpenSSL:
Ensuite on configure le serveur pour écouter sur le port HTTPS (TCP/443) dans le menu Général / Port à écouter:
Puis associer les clés de chiffrement à notre serveur virtuel (onglet Sécurité):
Enfin il ne faut pas oublier de redémarrer le serveur pour que la configuration soit appliquée:
Et le résultat sur l'URL https://192.168.29.129/index.php
Pour finir quelques resources:
![]()
Billet original de Nicolargo.
Votez pour cet article sur le Planet Libre.
![]()
Billet original de Emmanuel Kasper.
Votez pour cet article sur le Planet Libre.
Pour faire simple, et pour placer le sujet : ils en ont eu légèrement marre que la borne reboot toute les 5 minutes à cause du watchdog (ce qui est trèèèès soulant ..), ils ont tout simplement recompilé RoBin. Je vous laisse allez voir la page pour plus de détails.
After compiling the stock openwrt kamikaze (without robin) we noticed the device was rebooting every 5 minutes due to the OM1P hardware watchdog which wasn’t triggered.
A solution to this was to strip down the robin package in a way that it was *ONLY* triggering the hardware watchdog without doing anything else.(all credits for this go to Ozel, tnx again!)
Le flashage se passe comme avant, vous pouvez voir ici pour le détail, et n’oubliez pas de prendre les (bons) fichiers. Après avoir réalisé la configuration minimum :
Lancez la commande suivante : (seulement une fois après le premier boot)
/etc/init.d/nodeclean enable
Editez /etc/config/wireless et décommentez ou supprimer la ligne « option disabled 1 » pour activer le WiFi, et pendant que vous êtes là, vous pouvez aussi indiquer votre SSID, votre channel, etc etc.
Pour finir, il faut rebooter la borne ;-)
On flash toujours de la même façon, et on oublie toujours pas de prendre les bons fichiers …
Après l’installation :
Pour activer l’interface web LuCi : /etc/init.d/lucittpd enable
Pour rebooter la borne : /sbin/reboot
J’ai testé, et ça marche, ma borne ne reboot pas toutes les 5 minutes \0/
![]()
Billet original de Skhaen.
Votez pour cet article sur le Planet Libre.