Mot-clé - web sémantique

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

mardi 5 juillet 2016

Personnaliser les en-têtes de courriels envoyés par Mail.app

Pour des besoins précis, on a souvent besoin de personnaliser les en-têtes des courriels que l’on envoie. Que ce soit pour y glisser des métadonnées de chiffrement, de transport, de filtrage, d’identité, ou encore de classification, c'est une pratique courante et transparente.

Sous MacOS, le logiciel Mail.app utilise la clé de configuration UserHeaders pour définir les en-têtes utilisateur. Ainsi, dans mon cas j’ajoute les deux en-têtes suivants :

  • OpenPGP : l’empreinte de ma clé PGP, et l’URI de son emplacement ;
  • X-FOAF : l’URI de mon identité pour le web sémantique.

Ces deux champs sont positionné via le terminal :

defaults write com.apple.mail UserHeaders "{ \
    OpenPGP = 'id=322B 89F1 FA51 3211 40F3  B358 5E88 C01E BAFD 1998; preference=signencrypt; url=https://Damien.Clauzel.eu/public/Cles_publiques/GnuPG/Damien_Clauzel.eu_publique.asc'; \
    X-Foaf = 'https://Damien.Clauzel.eu/Damien_CLAUZEL-FoaF.rdf'; \
}"

On constate désormais la présence des nouveaux en-têtes dans les courriels envoyés :

Return-Path: 
Received: from ?IPv6:2a01:e34:ec15:6030:b91e:f8a8:1579:acba? ([2a01:e34:ec15:6030:b91e:f8a8:1579:acba])
        by smtp.gmail.com with ESMTPSA id ue1sm3813420wjc.44.2016.07.01.09.55.57
        for 
        (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
        Fri, 01 Jul 2016 09:55:57 -0700 (PDT)
From: Damien Clauzel 
X-Google-Original-From: Damien Clauzel 
Subject: XXXXX
Mime-Version: 1.0 (Mac OS X Mail 9.3 \(3124\))
Content-Type: multipart/signed; boundary="Apple-Mail=_C578A8CA-4F46-4294-83B1-893306A67B44"; protocol="application/pgp-signature"; micalg=pgp-sha512
X-Pgp-Agent: GPGMail 2.6b2
X-Foaf: https://Damien.Clauzel.eu/Damien_CLAUZEL-FoaF.rdf
OpenPGP: id=322B 89F1 FA51 3211 40F3  B358 5E88 C01E BAFD 1998; preference=signencrypt; url=https://Damien.Clauzel.eu/public/Cles_publiques/GnuPG/Damien_Clauzel.eu_publique.asc
In-Reply-To: 
Date: Fri, 1 Jul 2016 18:55:56 +0200
Message-Id: 
References:  
To: Example 
X-Mailer: Apple Mail (2.3124)

samedi 5 juin 2010

Valorisation de mon travail

Pour la quatrième fois, une de mes photos a été reprise pour illustrer un article. Je ne sais pas si je dois désormais me demander si je suis meilleur photographe que chercheur, mais je pense qu'il y a peut être une piste à explorer ;)

Plus sérieusement, j'estime que les facteurs étant à l'origine de ces reprises de mes photos sont les suivants :

  • publication en ligne sous une licence libre (CC by-sa fr 2.0)
  • mise à disposition en haute définition
  • géotaguage pour localisation du sujet
  • annotation par tags standardisés de folksonomies
  • nom explicite de la photo
  • mise en ligne sur une plate-forme ayant une forte visibilité
  • et bien sur, un talent artistique inné pour la photographie ;)

En résumé : des métadonnées propres, une bonne visibilité, le soucis de la qualité et surtout une licence libre sont ici les principaux éléments qui ont permis à mon travail d'être non seulement connu, mais également réutilisé.

Mes photos reprises, avec liens

Illustrations de résections de la mâchoire inférieure

Illustrations de résections de la mâchoire inférieure, repris sur FrogSmoke.

Nou Camp Stadium Barcelona

Nou Camp Stadium Barcelona, repris sur Schmap.

Palmier du jardin d'acclimatation

Palmier du jardin d'acclimatation, repris sur le blog de l'école Jules Romains.

Le téléphone Samsung E1070

Le téléphone Samsung E1070, repris sur HandyList.