Planet Libre Le Planet Francophone sur Linux et les Logiciels Libres ...bla bli http://www.planet-libre.org/ fr Planet Libre 2010-03-18T23:38:14+00:00 Marty : Installation de Seekshttp://15minutesoffame.be/nico/blog2/?article19/installation-de-seeks2010-03-18T22:22:00+00:00frMartyArticle publié le 14/03/2010

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.

Compilation du proxy

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).

Utilisation de Seeks comme proxy local

Tout d'abord, il faut régler Firefox pour qu'il passe par le proxy :

proxy_seeks.png

Configuration de Firefox

On peut ensuite accéder à Seeks de différentes façons :

  • via la page http://s.s/websearch-hp ;
  • grâce au plugin de recherche pour Firefox. Il faut pour cela copier le fichier src/plugins/websearch/public/opensearch.xml dans le dossier ~/.mozilla/firefox/xxxxxxxx.default/searchplugins (à créer si nécessaire), puis relancer Fifefox ;
  • via le plugin de recherche Google, Bing, Cuil ou leur page de recherche respective.

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.

Installation d'un serveur web et création du noeud public Seeks

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).

Dernières astuces

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.

Gravatar de Marty
Billet original de Marty.
Votez pour cet article sur le Planet Libre.

]]>
Marty : Les moteurs de recherche alternatifshttp://15minutesoffame.be/nico/blog2/?article18/les-moteurs-de-recherche-alternatifs2010-03-18T22:21:00+00:00frMartyArticle publié le 13/03/2010

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.

Les autres poids lourds

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.

Les moteurs « caritatifs »

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.

Les moteurs qui préservent l'anonymat

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.

Les moteurs P2P

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.

Gravatar de Marty
Billet original de Marty.
Votez pour cet article sur le Planet Libre.

]]>
Marty : Passage du blog sous PluXmlhttp://15minutesoffame.be/nico/blog2/?article17/passage-du-blog-sous-pluxml2010-03-18T22:20:00+00:00frMartyArticle publié le 10/03/2010

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.

Gravatar de Marty
Billet original de Marty.
Votez pour cet article sur le Planet Libre.

]]>
Marty : Créer un serveur OpenVPNhttp://15minutesoffame.be/nico/blog2/?article16/creer-un-serveur-openvpn2010-03-18T22:19:00+00:00frMartyArticle publié le 23/09/2009

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.

Configuration du serveur

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.

Installation de OpenVPN et création des clés et certificats

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éé.

Résumé des fichiers créés

Au terme dela génération de ces diverses clés et certificats, nous obtenons les fichiers suivants :

  • ca.crt : certificat de l'Autorité de Certification
  • ca.key : clé de l'Autorité de Certification
  • server.crt : certificat du serveur
  • server.key : clé du serveur
  • client1.crt : certificat du client1
  • client1.key : clé du client1
  • dh1024.pem : paramètres de Diffie-Hellman
  • ta.key : clé utilisée pour tls-auth

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 :

  • serveur : ca.crt, server.crt, server.key, dh1024.pem et ta.key
  • client1 : ca.crt, client1.crt, client1.key et ta.key

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 ;-)

Fichier de configuration serveur

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 -m 

Control 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 ;-)

Configuration du firewall

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.

Configuration du client

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 -m 
Control 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.

Un peu d'automatisation...

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.

Conclusion

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 !

Gravatar de Marty
Billet original de Marty.
Votez pour cet article sur le Planet Libre.

]]>
Marty : SSH : la connexion à distance sécuriséehttp://15minutesoffame.be/nico/blog2/?article14/ssh-la-connexion-a-distance-securisee2010-03-18T22:18:00+00:00frMartyArticle publié le 27/08/2009

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.

Configuration du serveur

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.

IP fixe sur le LAN

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 :

reseau_ip_fixe.png

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.

Installation du serveur SSH

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

Routeur et configuration du firewall via Webmin

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 :

  • en ligne de commande, grâce à iptables ou shorewall
  • en utilisant le firewall Firestarter
  • grâce à Webmin, un outil d'administration graphique assez général

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 ».

Protection contre les attaques « brute force » : fail2ban

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 :

  • ignoreip permet d'ignorer les connexions venant d'une certaine adresse IP, ici l'adresse IP locale
  • bantime est la durée de bannissement d'une adresse attaquant
  • findtime est le laps de temps pendant lequel les connexions d'une même IP vont être analysée
  • maxretry est le nombre maximum de tentative de connexions infructueuses avant bannissement

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.

Adresse IP dynamique

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 :

  • le faire manuellement via l'interface de DynDNS (peu pratique)
  • via l'interface de votre modem/routeur/*box : certains appareils disposent en effet de la possibilité d'enregistrer un compte et de mettre à jour votre IP automatiquement
  • en installant ddclient

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.

Configuration du client

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

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.

Authentification par clé publique/privée

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.

Transfert de fichiers

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.png

Gftp

Faites attention de sélectionner le bon type de fichier (ASCII -- fichier texte simple -- ou Binaire -- le reste) dans le menu « FTP ».

Et les autres OS ?

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.

Gravatar de Marty
Billet original de Marty.
Votez pour cet article sur le Planet Libre.

]]>
Marty : Anonymat et partage de fichiershttp://15minutesoffame.be/nico/blog2/?article13/anonymat-et-partage-de-fichiers2010-03-18T22:17:00+00:00frMartyArticle publié le 07/07/2009

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.

Bittorrent : OneSwarm, un début prometteur

Mis en place en 2002, le protocole de peer-to-peer (P2P) Bittorrent a connu un succès fulgurant, notamment pour les raisons suivantes :

  • Vitesses de téléchargement nettement supérieures à celles atteintes par les autres réseaux P2P (quelques explications), notamment grâce à un système de « récompense » (plus on envoie vite, plus reçoit vite) assez agressif.
  • Nombre de fakes (fichier dont le contenu ne correspond pas au nom) réduit grâce à la centralisation des liens sur les trackers et l'impossibilité de renommer un fichier partagé.

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 :

  • Il ne pourra matériellement pas garder des logs détaillés.
  • Il ne pourra effectuer aucune censure ou filtrage vu qu'il ne détiendra aucune information sur les fichiers qui lui sont ajoutés.
  • Il n'est lié d'aucune façon avec les personnes qui l'utilisent.

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

Installation et configuration

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.

1s_01.png

OneSwarm - Ajout d'amis

1s_02.png

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é.

1s_03.png

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.

eMule : utilisation de I2P avec iMule

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 partage d'une grande quantité de fichiers, avec un système poussé de gestion de file d'attente.
  • Une vitesse moindre. Si cela semble être un handicap, en pratique l'utilisateur laissera un fichier plus longtemps en partage.
  • Une décentralisation des données, car les utilisateurs n'ont pas besoin de se connecter à un tracker unique pour être mis en relation. Cependant, on trouve plus facilement des fakes, car il suffit de renommer un fichier.
  • Un outil de recherche intégré au logiciel

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.

Direct Download, ou DDL (RapidShare, MegaUpload...) : toujours tranquille ?

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 :

  • Le prix de l'abonnement : même faible, il n'est pas nul. De plus, il faudra faire un choix parmi les nombreux sites existants, et les limitations sont excessives si on n'est pas abonné.
  • Trouver un fichier en particulier n'est pas toujours chose facile, car il existe de nombreuses « boards » (sites où sont centralisés les liens).
  • Sur plainte d'un éditeur, un fichier sera purement et simplement supprimé des serveurs, et il faudra attendre que quelqu'un veuille bien le remettre.
  • La centralisation des informations : pour trouver un fichier, on devra d'abord s'inscrire sur une board pour avoir accès à la liste des fichiers proposés (les IP sont très souvent enregistrées). Ensuite, payer l'abonnement au site de partage pour télécharger dans de bonnes conditions (utilisation d'une carte de crédit → très facile de retrouver son propriétaire). Si pour l'instant, ces sites promettent de ne pas stocker les logs permettant de savoir qui a téléchargé quoi, qui sait ce qui se passera dans le futur.

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.

L'ancêtre : Usenet

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.

Installation et configuration

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é.

Un VPN pour cacher son IP

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.

Les réseaux alternatifs

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.

Les solutions hybrides

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é.

Conclusion : peer-to-peer ou direct download, que choisir ?

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 :

  • Une décentralisation des données, rendant difficile l'élimination des fichiers mis en partage.
  • Une visibilité temporaire : dès qu'on ne partage plus le fichier, on disparait de la liste des utilisateurs (mais gare aux trackers privés Bittorrent gardant des logs détaillés). Cependant, il faut tempérer cette « visibilité » : si toutes les personnes téléchargeant un fichier peuvent connaitre votre adresse IP, il leur faudra intenter une action en justice pour mettre un nom dessus. Notons que grâce aux nouveaux réseaux, cette visibilité devient quasi nulle.
  • Une notion de partage et de communauté plus forte : l'utilisateur n'est pas un simple consommateur, il peut partager avec les autres membres ce qu'il apprécie.
  • Un service gratuit.

Les inconvénients du peer-to-peer :

  • L'introduction de fakes est plus ou moins aisée (très facile dans le cas d'eMule, plus difficile dans le cas de Bittorrent).
  • Une vitesse pas toujours au rendez-vous.
  • Les risques juridiques plus élevés : en mettant à disposition des autres utilisateurs du contenu non-libre de droit, des sanctions supplémentaires sont à craindre. On est largement hors du cadre de la « copie privée ». Notons que les condamnations ont toujours été faites sur base de la mise à disposition illégale de contenu.

Les avantages du direct download :

  • Une vitesse maximale.
  • Un anonymat relatif : seuls les responsables du site ou newsgroup sur lequel vous téléchargez savent ce que vous faites.
  • Très peu de fakes, car les liens sont référencés sur des boards où les participants n'ont aucun intérêt à donner de faux liens aux autres, sous peine d'être rapidement éjectés.
  • Les risques juridiques moindres car vous n'avez pas mis en partage vos données.

Les inconvénients du direct download :

  • Un service payant.
  • Des traces nombreuses, au risque qu'elles soient permanentes, rendant votre identification facile et la liste de vos actions aisément consultable.
  • Un contenu susceptible de disparaitre des serveurs en cas de plainte de l'ayant-droit.

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...

Gravatar de Marty
Billet original de Marty.
Votez pour cet article sur le Planet Libre.

]]>
Marty : Sécuriser et rendre anonyme sa navigationhttp://15minutesoffame.be/nico/blog2/?article12/securiser-et-rendre-anonyme-sa-navigation2010-03-18T22:15:00+00:00frMartyArticle publié le 21/06/2009

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 protocole HTTPS

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 :

  1. Le client se connecte au serveur.
  2. Le serveur envoie un certificat numérique X.509 ainsi que sa clé de chiffrement symétrique.
  3. Le client vérifie que (i) le certificat est valide, (ii) qu'il a été fourni par une authorité de certification connue, (iii) qu'il n'a pas été altéré et (iv) que le nom de domaine correspond.

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 à :

  • l'utilisation de https au lieu de http dans la barre d'adresse (exemple de site non sécurisé, et sécurisé)
  • la présence d'un petit cadenas, en bas à droite (pour Firefox)

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é.

Utilisation de proxys

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 :

  • Anonymat au niveau du site visité : le site que vous visitez ne sait pas qui a demandé au proxy de lui transmettre des informations.
  • Anonymat au niveau de votre FAI : votre FAI voit que vous vous connectez au proxy, mais ne connait pas la page finale que vous désirez voir. Ceci est d'autant plus vrai si le proxy utilise le protocole HTTPS. En outre, vous pouvez contourner les éventuelles restrictions mises en place par certaines sociétés (aller sur Youtube, Myspace, Facebook...).
  • Sécurité : le proxy dispose très souvent d'un firewall bloquant les éventuelles attaques provenant de sites malveillants.

Il y a cependant quelques inconvénients à l'utilisation de proxys :

  • Le proxy connait les sites que vous visitez, et revendra éventuellement ces informations. Rien n'est totalement gratuit...
  • Un proxy malveillant pourrait collecter les mots de passes de connexion, ou toute autre information transitant par lui.

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.

schema_proxy.png

Connexion avec et sans proxy

Le proxy simple

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.

Tor et Privoxy

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.

schema_tor.png

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 :

  • facilité pour retenir le site : en effet, il est beaucoup plus facile de retenir un nom (www.google.com) qu'une série de 5 nombres (208.69.34.231)
  • indépendance vis-à-vis de l'adresse IP : un site peut changer d'adresse IP, ceci sera totalement transparent pour l'utilisateur

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 :

tor-firefox.png

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...

I2P

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.

Les réseaux privés virtuels, ou VPN

Il existe deux inconvénients majeurs à l'utilisation de proxys :

  • la lenteur du surf
  • certains programmes ne fonctionnent pas avec Tor

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 :

  • rien ne vous dit qu'ils n'intercepteront pas vos données
  • rien ne vous dit qu'ils ne gardent pas des traces de tout ce qui passe par les serveurs

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 réseaux alternatifs : le cas Freenet

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 :

  • la décentralisation totale des données : chaque utilisateur joue le rôle de serveur car une petite partie de Freenet est stockée chez chacun. Dès lors, les pages non visitées tendent à disparaitre, mais il est quasi impossible de supprimer des données tant que des utilisateurs les consultent.
  • un anonymat extrême : chaque utilisateur joue aussi le rôle de passerelle entre d'autres utilisateurs (à l'image de I2P). En outre, il est possible de choisir soi-même les personnes à qui on va se connecter.
  • un niveau de sécurité important : toutes les données stockées par Freenet sont chiffrées sur le disque, avec une clé inconnue de l'utilisateur. Ce dernier peut donc nier en toute bonne foi savoir ce qui se trouve sur son disque dur.

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.

Gravatar de Marty
Billet original de Marty.
Votez pour cet article sur le Planet Libre.

]]>
Marty : Sécuriser ses échangeshttp://15minutesoffame.be/nico/blog2/?article11/securiser-ses-echanges2010-03-18T22:14:00+00:00frMartyArticle publié le 27/05/2009

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.

Pourquoi chiffrer ses communications ?

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 :

  • Par le serveur mail lui-même. Au minimum, votre serveur mail dispose d'un anti-spam : le contenu sera donc analysé pour vérifier que certains mots-clés ne s'y trouvent pas. Google, entre autres, étend ce principe pour vous proposer de la publicité ciblée. Chaque mail reçu avec GMail est donc analysé pour tracer votre portrait.
  • Les éventuels mouchards du gouvernements français. Hé oui, il semble que la réalité dépasse la fiction...
  • Votre FAI, si la connexion à votre webmail n'est pas chiffrée.
  • Un petit malin qui se serait infiltré sur votre réseau... Même si c'est le moins probable, l'espionnage industriel n'est pas un mythe.

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.

Le principe de base de la cryptographie asymétrique

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 :

  1. Bob chiffre le message grâce à la clé publique d'Alice
  2. Bob signe le message grâce à sa propre clé privée
  3. Bob envoie le message à Alice
  4. Alice vérifie la signature du message grâce à la clé publique de Bob, et s'assure qu'il en est bien l'auteur
  5. Alice déchiffre le message grâce à sa clé privée

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.

Gestion de clés sous Linux

Avant tout chose, il sera nécessaire d'installer Seahorse ainsi que gnupg grâce à votre gestionnaire de paquets.

Générer une paire de clés

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 :

fig1_seahorse.png

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 :

fig2_seahorse.png

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).

fig3_seahorse.png

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.

Échanger sa clé publique

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 :

  • Copier, pour la copier dans le presse papier.
  • Exporter la clé publique, pour créer un fichier contenant la clé.

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.

fig4_seahorse.png

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

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.

  • Bob et Alice échangent leur clé, chacun s'assure qu'elle est correcte et la signe grâce à sa clé privée.
  • Bob et Jack échangent leur clé, chacun s'assure qu'elle est correcte et la signe grâce à sa clé privée.
  • Jack désire communiquer avec Alice, mais ne la connait pas. Si il récupère la clé d'Alice sur un serveur de clé, il constatera qu'elle a été signée par une personne de confiance, c'est-à-dire Bob. Il est donc sûr que cette clé est la bonne.

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).

Application : chiffrer/signer ou déchiffrer un fichier quelconque

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.

Gestion de clés sous Windows

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.

Chiffrer un e-mail

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

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...

fig5_enigmail.png

Gestion des clés à partir d'Enigmail

fig6_enigmail.png

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.

fig7_enigmail.png

Paramètres de sélection des clés

fig8_enigmail.png

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.

fig9_enigmail.png

Rédaction d'un e-mail

FireGPG

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.

Chiffrer ses conversation IM

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.

Pourquoi ne pas choisir MSN ?

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 :

  • open-source, donc gage de transparence
  • libre, donc l'utilisation de programmes différents est facilitée (utilisé entre autre par Google Talk)
  • décentralisé, donc assez facile d'éparpiller les traces laissées sur le réseau. Il est même possible de monter son propre serveur Jabber chez soi.

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.

Gajim

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

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

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...).

Un petit mot sur S/MIME

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 :

  • Les clients mails ne supportent pas toujours S/MIME.
  • L'accès d'un webmail à la clé privée peut poser des problèmes de sécurité.
  • S/MIME ne chiffre pas seulement le message, mais également les éventuels malwares.

En bref... Mieux vaut utiliser OpenPGP.

Annexe : Gestion de clés en ligne de commande (tous les OS)

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 !

Générer une paire de clés

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 ;-)

Échanger sa clé publique

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 

Signer une clé publique

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é !

Application : chiffrer/signer ou déchiffrer un fichier quelconque

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.

Gravatar de Marty
Billet original de Marty.
Votez pour cet article sur le Planet Libre.

]]>
Marty : Protéger ses données personnelleshttp://15minutesoffame.be/nico/blog2/?article10/proteger-ses-donnees-personnelles2010-03-18T22:13:00+00:00frMartyArticle publié le 22/05/2009

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.

Le B-A BA de la sécurité

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.

Utiliser un navigateur Internet sécurisé

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 :

  • Adblock Plus, pour en finir avec la publicité agressive
  • CustomizeGoogle, pour améliorer l'utilisation de Google (notamment rendre anonyme le cookie de Google, pour éviter que le géant ne trace un profil sur vous grâce à vos recherches)
  • Flashblock, pour bloquer le démarrage automatique des animations Flash qui alourdissent la navigation

Et j'en passe...

Utiliser un client mail sécurisé

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.

Utiliser un antivirus. A jour...

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.

Des mots de passes de taille correcte

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.

Sécuriser son WiFi

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.

Supprimer efficacement un fichier

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 :

  • remplacer 35 fois les données du fichier par des déchets (-n 35)
  • remplacer ces données par des zéros pour masquer le déchiquettage (-z)
  • tronquer et supprimer le fichier (-u)

Cette méthode est déjà plus efficace ;-)

TrueCrypt, le couteau suisse du chiffrement

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.

Créer un conteneur chiffré

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 :

  1. Standard TrueCrypt volume : comme son nom l'indique, un simple conteneur chiffré dans lequel on stockera les fichiers à protéger.
  2. Hidden TrueCrypt volume : plus subtil, le conteneur caché. Le principe est de créer un gros conteneur constitué de deux parties. La première partie (Outer volume) contiendra des faux fichiers à protéger, et la seconde les vrais fichiers sensibles. Lorsqu'on accède à la première partie grâce à un premier mot de passe, l'espace occupé par les fichiers sensibles est spécifié comme étant libre. Si on accède à ce fichier via un autre mot de passe, la partie contenant les vrais fichiers sensibles (Hidden volume) apparaitra. Cette méthode est la plus sure, car il est absolument impossible de prouver la présence des fichiers sensibles. Ce type de protection n'est nécessaire que si vos fichiers sont susceptibles de vous porter préjudice.

truecrypt1.png

Sélection entre fichier ou partition chiffré

truecrypt2.png

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 ».

truecrypt3.png

Emplacement du fichier

truecrypt4.png

Méthode de chiffrement et fonction de hachage

truecrypt5.png

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.

truecrypt6.png

Phrase de passe

truecrypt7.png

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.

truecrypt8.png

Format de la partition

truecrypt9.png

Génération de la clé d'entête

truecrypt10.png

C'est fini !

Monter un conteneur chiffré

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 :

  1. Spécifier la passphrase et les keyfiles de votre partie leurre. La partie faussement confidentielle sera montée, et les données confidentielles apparaîtront comme espace vide. N'ajoutez aucun fichier à votre conteneur ainsi monté, car vos données confidentielles seraient altérées voire détruites.
  2. Spécifier la passphrase et les keyfiles de votre partie cachée. La partie leurre n'apparait pas, vous pouvez donc ajouter, modifier ou supprimer des fichiers sans soucis.
  3. Si vous cliquez sur Options, vous remarquerez la case Protect hidden volume when mounting outer volume. Si vous spécifiez la passphrase et les keyfiles de votre partie leurre et que vous cochez la case en spécifiant la passphrase et les keyfiles de votre partie cachée, votre volume leurre sera monté tout en protégeant vos données cachées. Vous pourrez ajouter, modifier ou supprimer des fichiers sans risque de la corrompre.

Créer une partition chiffrée

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 :

  • Ne chiffrez pas des partitions système, car elles seraient formatées. Il faut créer la partition avant d'installer le système, ce que TrueCrypt ne permet pas. Par contre, vous pouvez tout à fait chiffrer une partition vide (en ayant préalablement redimensionné les partitions, ou en ayant prévu cette éventualité lors de l'installation de votre système).
  • Une clé USB a pour vocation de passer d'un PC à l'autre. TrueCrypt sera donc obligatoire pour la lire.

Cryptsetup, pour les adeptes de la ligne de commande

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.

Crypter des partitions système

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.

Gravatar de Marty
Billet original de Marty.
Votez pour cet article sur le Planet Libre.

]]>
Marty : Quelques éléments de cryptographiehttp://15minutesoffame.be/nico/blog2/?article9/quelques-elements-de-cryptographie2010-03-18T22:11:00+00:00frMartyArticle publié le 17/05/2009

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 :

  • les données personnelles (disque dur, clés USB...). Les clés USB, les disques durs externes ou même les PC portables étant des supports susceptibles d'être facilement volés ou perdus, il est nécessaire de protéger certaines données privées.
  • la correspondance privée (e-mails ou messagerie instantanée). On ignore souvent que les e-mails sont scannés à plusieurs reprises lorsqu'ils transitent, que ce soit par le fournisseur d'accès à Internet (FAI) ou par le service mail utilisé (Gmail, Hotmail, La Poste...).
  • les informations laissées sur la toile de manière délibérée ou à l'insu de l'utilisateur. Outre les sites communautaires comme Facebook, Orkut, Myspace ou Twitter où les utilisateurs fournissent délibérément des informations personnelles, n'importe quel site web peut connaitre l'endroit où vous vous trouvez, le site que vous venez de visiter ou encore votre FAI. Via les cookies, les sites web peuvent également connaitre vos habitudes en vous identifiant à chaque visite.
  • le partage de culture, ou piratage selon certains, via des logiciels tels qu'eMule ou Bittorent. La récente loi HADOPI ainsi que la condamnation des créateurs du site The Pirate Bay suscitent en effet l'inquiétude de nombreuses personnes.

Le point commun à la sécurité informatique est l'utilisation de la cryptographie, et sera donc le sujet de ce premier article.

La cryptographie, mais qu'est-ce donc ?

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.

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.

Chiffrement asymétrique

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...).

Conclusion

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.

Gravatar de Marty
Billet original de Marty.
Votez pour cet article sur le Planet Libre.

]]>
Kiddo : Le paramètre exclude de rsynchttp://jeff.ecchi.ca/blog/2010/03/18/le-parametre-exclude-de-rsync/2010-03-18T15:24:40+00:00frKiddoRien de tel qu’une belle commande rsync de trois kilomètres de long pour faire ses backups… excepté quand on veut exclure certains dossiers et que ça ne fonctionne pas. Et qu’on perd une heure à s’arracher les cheveux avant de comprendre pourquoi. Voici un exemple (factice) erroné:

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”.

Gravatar de Kiddo
Billet original de Kiddo.
Votez pour cet article sur le Planet Libre.

]]>
Nicolargo : Installation de NFSen, un front-end pour NFDumphttp://blog.nicolargo.com/2010/03/installation-de-nfsen-un-front-end-pour-nfdump.html2010-03-18T14:00:45+00:00frNicolargoDans un précédant article, nous avions abordé l'analyse des flux réseau via le protocole NetFlow. Des outils en ligne de commande avaient été présentés pour afficher des rapports sur les informations remonté par les sondes.

Il existe également une interface Web nommée NFSen dont nous allons parler aujourd'hui.

Les pré-requis

On doit avoir sur sa machine GNU/Linux:


sudo aptitude install rrdtool librrds-perl

Installation de NFSen

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

Lancement du démon NFSen

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.

Modification des sources Netflow

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.

Configuration de l'interface Web

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.

Utilisation de l'interface Web NFSen

On pointe sont navigateur vers l'URL du serveur http://monserveur/nfsen/nfsen.php

L'interface NFSen devrait s'afficher !

Quelques informations complémentaires

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:

Gravatar de Nicolargo
Billet original de Nicolargo.
Votez pour cet article sur le Planet Libre.

]]>
Julien : Nouvelle version de NuFw chez Edenwallhttp://www.technoaddict.fr/2010/03/18/nouvelle-version-de-nufw-chez-edenwall/2010-03-18T11:43:43+00:00frJulienJ’étais hier dans les travées de Solutions Linux et je suis tombé sur le stand de Edenwall. L’éditeur spécialisé dans les Firewalls a sorti dans la nuit de mardi à mercredi, une nouvelle version de NuFirewall moins de 2 semaines après la release de la version 2.4.0 de NuFw.

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)

  • Administration système (réseau, DNS, annuaire d’utilisateurs…) ;
  • Création de règles de filtrage Netfilter et NuFW ;
  • Analyse graphique des logs ;
  • Parefeu identifiant ;
  • Gestion des certificats (PKI).

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.

Gravatar de Julien
Billet original de Julien.
Votez pour cet article sur le Planet Libre.

]]>
System Linux : Compilation, Installation et Configuration de SSLH.http://www.system-linux.eu/index.php?post/2010/03/17/CentOS:-Compilation,-Installation-et-Configuration-de-SSLH.2010-03-18T07:00:00+00:00frSystem Linuxiscsi jpeg

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.

Gravatar de System Linux
Billet original de System Linux.
Votez pour cet article sur le Planet Libre.

]]>
Admin-Linux : Livre blanc – Python : le développement autrementhttp://blog.admin-linux.org/news/livre-blanc-python-le-developpement-autrement2010-03-17T14:26:25+00:00frAdmin-Linux

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 :

  1. À quoi ressemble Python ?
    1. Un langage facile et lisible
    2. Un mode interactif et un débogueur intégré
    3. Multi-plateforme et interopérable
    4. Ouvert et libre
    5. Moderne et Multi-paradigme
  2. Que peut-on faire avec Python
    1. Services fournis en standard
    2. Accès aux bases de données
    3. Sites et applications web
    4. Calcul et visualisation scientifique
    5. Scripting d’applications
    6. Interfaces Graphiques
    7. Scripts/administration Système
    8. Jeux vidéos
    9. Performances et algorithmique
  3. Outils d’industrialisation
    1. Index général des paquets Python
    2. Construction d’applications
    3. Déploiement d’applications
    4. Tests automatisés et documentés
    5. Qualité du code
    6. Intégration continue
    7. Génération de documentation
    8. Environnements de développement intégrés
    9. Dépôts de code source
    10. Forges de développement
  4. Communauté
  5. Conclusion
  6. Licence et diffusion

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 :

Site Officiel de Python

Association Francophone Python

Gravatar de Admin-Linux
Billet original de Admin-Linux.
Votez pour cet article sur le Planet Libre.

]]>
Manu Absolacom : Gestionnaire de fichiers en ligne: AjaxPlorerhttp://astuces.absolacom.com/serveur/gestionnaire-de-fichiers-en-ligne-ajaxplorer/2010-03-17T13:06:07+00:00frManu AbsolacomSuite de mes recherches de gestionnaires de fichiers en ligne autonomes selon mon cahier des charges.

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.

L’installation

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?

Le look

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.

Les paramétrages

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.

Ajout d’une bannière ou d’un pied de page

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)

Les dossiers et utilisateurs

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.

Les logs

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.

Fonctionnalités sur les fichiers

Les images

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…

Les fichiers audio

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:

  • Pas d’affichage du titre en lecture
  • Pas de liste des fichiers joués ou en attente
  • Pas d’affichage de la pochette, quand elle est présente dans le dossier

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?

L’édition de fichier

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.

Partage public de fichiers

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.

Le reste

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.

Ce qui me gène…

  • L’impossibilité de skinner l’affichage. Pour les même raisons que développées plus haut, et parce que j’aimerais que le gestionnaire en ligne s’intègre aux mieux avec l’environnement du bureau. Depuis Vista/Seven, naviguer dans AjaxPlorer donne le sentiment de revenir dans le passé. Depuis Gnome, on a l’impression de lancer une appli KDE.
  • Le clic droit sur un élément est très capricieux. Le menu disparait immédiatement, ou le clic sur l’élément du menu ne fait rien, ou le menu reste ouvert en permanence et il faut re-cliquer droit sur un autre fichier pour le fermer, … Gênant pour des utilisateurs qui ne sont pas à l’aise. Les boutons de la barre d’outil fonctionnent eux correctement.
  • Ce $µ*£*!§% de bouton de fermeture de fenêtres à gauche! Je ne m’y fais pas!
  • La documentation (et le site) en anglais. OK, pour toucher le plus grand monde il faut développer en anglais. Mais c’est un peu snober ses compatriotes et se couper de retours qui peuvent être intéressants et de proximité. Ajouter ne serait ce que quelques lignes en français pour présenter le logiciel et annoncer que les demandes en français sur le forum seront traitées.

Ma conclusion

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.

Gravatar de Manu Absolacom
Billet original de Manu Absolacom.
Votez pour cet article sur le Planet Libre.

]]>
FredBezies : Frugalware 1.3 ? Ce sera Haven !http://frederic.bezies.free.fr/blog/?p=36302010-03-17T13:00:01+00:00frFredBeziesSuivant la liste de publication frugalware-devel, j’ai reçu ce matin la feuille de route de la Frugalware 1.3, nom de code Haven.

  • 1.3pre1 : 3 mai 2010
  • 1.3pre2 : 28 juin 2010
  • 1.3rc1 : 26 juillet 2010
  • 1.3rc2 : 9 août 2010
  • 1.3 : 23 août 2010

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 ;)

Gravatar de FredBezies
Billet original de FredBezies.
Votez pour cet article sur le Planet Libre.

]]>
Nicolargo : Installation et configuration de Cherokee sous Ubuntuhttp://blog.nicolargo.com/2010/03/installation-et-configuration-de-cherokee-sous-ubuntu.html2010-03-17T11:47:36+00:00frNicolargoC'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.

Une vidéo de mise en bouche

Avant de commencer, voici un screencast d'introduction à Cherokee (en Anglais):

Cherokee Web Server - Introduction from alobbs on Vimeo.

Installation de Cherokee

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).

Configuration de Cherokee

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, ...).

Sécuriser les échanges

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

Conclusion

Pour finir quelques resources:

Gravatar de Nicolargo
Billet original de Nicolargo.
Votez pour cet article sur le Planet Libre.

]]>
Emmanuel Kasper : pkg_rollling-replace et pkgsrchttp://meta.libera.cc/2010/03/pkgrollling-replace-et-pkgsrc.html2010-03-17T11:34:00+00:00frEmmanuel Kasperpkgsrc, une infrastructure multi plateforme pour installer des logiciels à partir du code source,  dont je me sers pour bénéficier des dernières nouveautés du libre à côté des outils standards de ma plateforme.
Pkgsrc permet sur OSX d'avoir ainsi git, mplayer, unrar, hatari, gpg, nedit et sur Linux ( Debian ) d'avoir la dernière version de svn et d'openvpn, sans mettre le bazar dans dpkg.

Pour la dernière mise à jour de pkgsrc, je me suis laissé tenté par pkg_rolling-replace en lieu et place de l'habituel pkg_chk. pkg-rolling-replace a le principal avantage par rapport à pkg_chk de faire une mise à jour progressive, alors que pkg_chk deinstalle tout ce qui doit être mis à jour avant de recompiler.
Comme sur ma machine ( PowerPC 1,42 GHz), la compilation de mes 500 paquets prend plusieurs jours, cela représente un intérêt évident.
J'ai documenté sur le wiki netbsd  les étapes utilisées, la commande principale étant

pkg_rolling-replace -rsuvX bmake,bootstrap-mk-files,pax,pkg_install

Deux échecs seulement dans la mise à jour des 506 paquets.

===> Building for physfs-1.0.1nb1
/Volumes/Projects/netbsd/bin/bmake  all-recursive
/bin/sh ./libtool --mode=link gcc  -O2 -pipe -O2 -I/Volumes/Projects/netbsd/include -I/usr/include -D_REENTRANT -D_REENTRANT -D_THREAD_SAFE   -L/V
olumes/Projects/netbsd/lib -L/usr/lib  -Wl,-framework -Wl,Carbon -Wl,-framework -Wl,IOKit -no-undefined -o test_physfs  test_physfs.o ./libphysfs.
la -lpthread -lz
gcc -O2 -pipe -O2 -I/Volumes/Projects/netbsd/pkgsrc/devel/physfs/work/.buildlink/include -D_REENTRANT -D_THREAD_SAFE -Wl,-framework -Wl,Carbon -Wl
,-framework -Wl,IOKit -o .libs/test_physfs test_physfs.o  -L/Volumes/Projects/netbsd/pkgsrc/devel/physfs/work/.buildlink/lib ./.libs/libphysfs.dyl
ib -lpthread -lz
Undefined symbols:
  "_readline", referenced from:
      _main in test_physfs.o
  "_add_history", referenced from:
      _main in test_physfs.o
      _main in test_physfs.o
ld: symbol(s) not found

Ceci est du à un petit LDFLAGS+=      -lreadline manquant et a fait l'objet d'un rapport de bug (#42468) pour aboutir à la conclusion que ceci avait déja été corrigé, et que mon source n'était pas à jour ! Apparemment csup avait manqué quelques répertoires lors de la mise à jour, ou quelque chose a manqué entre la chaise et l'ordinateur lors de l'update.

===> Installing for tex-courier-2008.7340
ERROR: tex-courier-2008.7340 conflicts with installed package(s):
ERROR:     teTeX-texmf-3.0nb16
ERROR: They install the same files into the same place.
ERROR: Please remove conflicts first with pkg_delete(1).

Un cas de paquet renommé, rien de bien méchant après quelques pkg_delete et bmake install, l'erreur disparait.

Gravatar de Emmanuel Kasper
Billet original de Emmanuel Kasper.
Votez pour cet article sur le Planet Libre.

]]>
Skhaen : OM1P, OpenWRT et le Watchdog : un bon gros coup de fusil !http://walkyr.fr/om1p-openwrt-et-le-watchdog-un-bon-gros-coup-de-fusil/2010-03-17T11:28:46+00:00frSkhaenCet article est principalement une traduction de « Open-Mesh OM1P as a regular WiFi access point » que j’ai eu un peu de mal à trouver pour régler le problème du Watchdog sur les bornes OM1P avec OpenWRT, donc je fais tourner l’information ;-)

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!)

Images basées sur OpenWRT kamikaze r11949, sans l’interface web LuCi  (compilé par beone)

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 ;-)

Images basées sur OpenWRT kamikaze 8.09 r15228, mais avec l’ancien kernel (2.6.23) de kamikaze r11949, avec l’interface Web LuCi (compilé by ozel)

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

Si vous voulez le compiler vous même :

  • Vous pouvez télécharger le paquet modifié de RoBIn ici
  • extraire l’archive et copiez le contenu dans ~/kamikaze_dir/package/
  • lancez un make menuconfig et sélectionnez « robin » dans la catégorie network (réseaux)
  • Compilez l’ensemble avec la commande « make V=99« 
  • Quand la compilation est finie, vous pouvez trouver les images dans /kamikaze_dir/bin/

J’ai testé, et ça marche, ma borne ne reboot pas toutes les 5 minutes \0/

Gravatar de Skhaen
Billet original de Skhaen.
Votez pour cet article sur le Planet Libre.

]]>