Mot-clé - cypherpunk

Fil des billets - Fil des commentaires

mercredi 20 septembre 2017

Déployer un nœud YaCy sur une adresse IPv6 et avec un accès https

Il est possible de mettre en place un nœud YaCy participant à la fédération globale, avec une connectivité IPv6 et HTTPS.

Qu’est-ce que YaCy ? Facile.

YaCy est un moteur de recherche que chacun peut installer pour indexer le web (pages publiques accessibles par internet), pour indexer un intranet ou pour parcourir d'autres données avec une fonction moteur de recherche. YaCy peut être utilisé de façon autonome, mais sa principale force est de pouvoir fonctionner en réseau peer-to-peer, ce qui fait que sa puissance s’accroît avec le nombre d'utilisateurs, qu'il est entièrement acentré (tous les "peers" sont égaux et il n'y a pas un organisme administratif central) et qu'il n'est pas censurable et ne stocke pas le comportement des utilisateurs.

La liberté de l'information ainsi obtenue par le biais des logiciels libres et d'un moteur de recherche distribué est également un des objectifs du projet.

Prérequis

  • avoir une connexion IPv6 opérationnelle avec une adresse publique (nous utilisons ici 2001:41d0:12a:4d00:dcdc::46)
  • disposer d’un nom de domaine (nous créerons ici le champ AAAA YaCy.Clauzel.eu)
  • utiliser Debian/stretch sans systemd
  • avoir apache2 en place (nous ajouterons 2 vhosts)
  • avoir un certbot récent, celui de Debian/stretch est trop ancien et ne gère pas les demandes pour un hôte uniquement en IPv6 :
apt-get install certbot apt-get install certbot
wget https://dl.eff.org/certbot-auto
chmod a+x certbot-auto

Mise en place du nom de domaine

  • Créer l’enregistrement DNS pour le nœud; ici YaCy.Clauzel.eu pointe sur 2001:41d0:12a:4d00:dcdc::46

Installer YaCy

Mise en place initiale :

  • Lire et appliquer la documentation de YaCy ; nous utilisons ici la version 1.92 pour linux. YaCy est installé pour l’utilisateur dédié yacy:yacy dans le répertoire /home/yacy
  • Dans l’interface web de YaCy Mode d'utilisation et compte>avec SSL, activer le HTTPS sur le port 8443
  • Dans l’interface web de YaCy Administration du système>Paramètres d'accès au serveur>staticIP, définissez l’adresse publique du nœud comme étant YaCy.Clauzel.eu

Indiquer à java que nous donnons la préférence à l’IPv6 :

service yacy stop

Dans /etc/init.d/yacy, modifier JAVA_ARGS="-server -Djava.awt.headless=true -Dfile.encoding=UTF-8 -Dsolr.directoryFactory=solr.MMapDirectoryFactory -Djava.net.preferIPv4Stack=false -Djava.net.preferIPv6Stack=true"

service yacy start

À ce moment, YaCy doit tourner en mode Senior et être publiquement joignable à l’adresse http://YaCy.Clauzel.eu:8090

Créer le certificat TLS

Un simple certificat TLS suffit, mais vous pouvez vous faire plaisir avec les options :

service apache2 stop
certbot-auto certonly --standalone -d YaCy.Clauzel.eu --renew-by-default --must-staple --staple-ocsp --agree-tos --uir --hsts
service apache2 start

Préparation du certificat pour java

Les applications java ont ceci de casse-pied particulier qu’elles n’utilisent pas les certificats TLS au format PEM : il nous faut convertir notre certificat.

openssl pkcs12 -export -in /etc/letsencrypt/live/yacy.clauzel.eu/fullchain.pem -inkey /etc/letsencrypt/live/yacy.clauzel.eu/privkey.pem -out /etc/letsencrypt/live/yacy.clauzel.eu/yacy.clauzel.eu.p12 -CAfile /etc/letsencrypt/live/yacy.clauzel.eu/chain.pem -caname root -password pass:JeSuisUnMotDePasse -name yacy.clauzel.eu
keytool -importkeystore -srcstorepass JeSuisUnMotDePasse -deststorepass JeSuisUnMotDePasse -destkeypass JeSuisUnMotDePasse -srckeystore /etc/letsencrypt/live/yacy.clauzel.eu/yacy.clauzel.eu.p12 -alias yacy.clauzel.eu -srcstoretype PKCS12 -destkeystore /etc/letsencrypt/live/yacy.clauzel.eu/yacy.clauzel.eu.key

Mettre en place le certificat

Nous pouvons alors placer notre joli certificat dans l’arborescence de l’application.

service yacy stop
 cp /etc/letsencrypt/live/yacy.clauzel.eu/yacy.clauzel.eu.key DATA/SETTINGS/
 chown yacy:yacy DATA/SETTINGS/yacy.clauzel.eu.key
 chmod 400 DATA/SETTINGS/yacy.clauzel.eu.key

Configurer l’utilisation du certificat

Il reste maintenant à informer l’application de l’existence de ce certificat. Il faut vérifier/définir dans le fichier DATA/SETTINGS/yacy.conf :

port.ssl=8443
keyStore=DATA/SETTINGS/yacy.clauzel.eu.key
keyStorePassword=JeSuisUnMotDePasse
server.https=true
staticIP=YaCy.Clauzel.eu

Puis démarrer YaCy :

service yacy start

À ce moment, YaCy doit être publiquement joignable à l’adresse https://YaCy.Clauzel.eu:8443

Définir des redirections dans apache

Nous ajoutons alors des redirections web, qui permettrons d’accéder directement au nœud sans devoir spécifier le port.

Créer la directive /etc/apache2/sites-available/00-YaCy.conf :

<VirtualHost *:80>
    Define INSTANCE yacy.clauzel.eu
    ServerName ${INSTANCE}
    RewriteEngine On
    RewriteRule ^(.*)$ https://${INSTANCE}:8443 [redirect=301]
</VirtualHost>

<VirtualHost *:443>
    Define INSTANCE yacy.clauzel.eu
    ServerName ${INSTANCE}
    RewriteEngine On
    RewriteRule ^(.*)$ https://${INSTANCE}:8443 [redirect=301]
    SSLEngine on
    SSLCertificateFile /etc/letsencrypt/live/${INSTANCE}/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/${INSTANCE}/privkey.pem
</VirtualHost>

Activons cette configuration :

a2ensite 00-YaCy.conf
service apache2 restart

YaCy est désormais accessible à l’adresse https://YaCy.Clauzel.eu, et http://YaCy.Clauzel.eu redirige le visiteur vers l’accès sécurisé

Bonne chance à tous, comme on dit « chez-moi ça marche ».

mercredi 2 septembre 2009

Courrier des lecteurs : utilisation de TOR en France

Régulièrement, je reçois des courriers me demandant des précisions sur mes billets, ou des conseils en relation avec mes activités sur le net. Je prend toujours le temps d'y répondre en longueur, mais certains messages gagneraient à être plus largement diffusés, car les mêmes questions reviennent régulièrement.

Ainsi, les mails concernant la protection de la vie privée tournent souvent autour de deux thèmes : comment protéger sa vie privée dans telle ou telle activité, et est-ce légal de vouloir la protéger avec un outil précis. Voici le dernier message que j'ai reçu à ce sujet.

Je vous écrit suite au fait que vous soyez noté comme adresse de contact du noeud de sortie Tor "rebelZ".

Ce dernier est à priori hébergé en France sur une machine chez GANDI. Vu que je m'intéresse à la situation actuelle de Tor vis-à-vis de la législation autour des télécommunications qui a tendance à se durcir en France, je me demandais si vous aviez eu le moindre problème légal jusqu'ici.

Par ailleurs, quelles sont vos relations avec GANDI ? Leur avez-vous demandé avant de démarrer ce relai ? Vous ont-ils déjà transmis des plaintes concernant ce service ?

Merci d'avance si vous preniez le temps de répondre à mes quelques questions.

PS : Je vous joint ma clé GnuPG si vous désiriez me chiffrer votre réponse.

Je suis effectivement un client de Gandi, sans rien de particulier : je leur confie la gestion de plusieurs DNS, utilise leurs systèmes de blog, d'hébergement et de courrier. Bien que je trouve leurs prix élevés depuis quelques temps (principalement à cause de l'augmentation de la concurrence) je reste chez Gandi car la qualité de service est élevée : uptime correct, interfaces web efficaces, et une bonne assistance en cas de soucis.

Ainsi, lorsque j'ai besoin de déployer rapidement un petit serveur pour héberger un projet ou tester quelques outils, j'utilise l'hébergement mutualisé de Gandi. La machine rebelz (rebelz.Clauzel.nom.fr) est l'une d'entre elles. Elle n'a rien d'extraordinaire, si ce n'est le fait qu'elle n'accepte que des connexions chiffrées (https, ssh, svn+ssh, etc) et que ses volumes sont eux aussi chiffrés. En effet, elle sert actuellement de plate-forme communautaire à un petit groupe de chercheurs de mon laboratoire. Pour parler technique, il s'agit d'un serveur headless mutualisé Debian constitué d'une seule part (1/64e).

En ce qui concerne TOR (couplé à outils comme privoxy, socat et tsocks), je l'utilise depuis ses débuts, et j'ai pour habitude de mettre en place des relais là où je le puis afin de renforcer son usage. C'est donc tout naturellement que j'ai mis en place un nœud sur rebelz.

À ma connaissance, TOR n'a jamais été impliqué dans le cadre d'une enquête judiciaire en France, aussi bien en simple relais qu'en nœud de sortie. Mais le mieux serait d'interroger directement des juristes spécialisés. Néanmoins, comme il s'agit là d'assurer le rôle d'opérateur technique permettant l'interconnexion de systèmes informatiques, je ne vois pas la possibilité pour un juge de mettre en cause l'administrateur : en effet, rendre responsable l'administrateur de l'usage qui est fait du relais obligerait également à rendre responsable France Télécom des appels circulant par ses lignes. Inconcevable, quoi qu'en disent les ayatollahs de LOPPSI.

En ce qui concerne l'utilisation des machines virtuelles de Gandi, les conditions générales de l'hébergement (article 3) ne font aucune mention de la mise en place de relais de services. Les seules contraintes sont le respect de la législation française (droit d'auteur, diffamation, etc) et la gestion en « bon père de famille ».

En résumé : TOR, yabon.