Deblan blog

La toile

Comment remplacer Google ?

Cette notion de vie privée ébranlée par cette surveillance à grande échelle amène à se poser tout un tas de questions. La première et sans doute l'une de plus compliquée sont les outils : comment remplacer des outils qui fonctionnent bien mais qui deviennent une contrainte pour sécuriser sa vie privée ?

Google a une place dominante sur Internet. Moteur de recherche, réseau social, email, vidéos, c'est bien l'ensemble de ces outils qu'il faut remplacer par d'autres libres, ouverts et respectueux de ses utilisateurs.

Je n'ai pas toutes les réponses et je suis conscient qu'il n'existe pas toujours de si bonne alternative. D'ailleurs, c'est sans doute l'une des forces de Google (et entreprise du genre) : leurs outils sont suffisamment bien pensés pour aguicher les plus extrémistes d'entre nous.

Concrètement, que pouvons-nous mette en place pour se passer de Google ? De mon coté, mes habitudes ont été updatées et encore beaucoup de travail m'attends.

Commençons par les emails. Cela fait maintenant plusieurs années que j'ai de quoi envoyer et recevoir des emails chez moi. J'utilise la solution postfix pour envoyer et recevoir mes courriers en *@deblan.*. Bien que l'installation complète et sécurisée d'un serveur de mail ne soit pas toujours évidente, aujourd'hui ça fonctionne bien et j'arrive à passer les filtres anti-spam même si je suis derrière une IP de ligne ADSL. Des solutions complémentaire comme postgrey et spamassassin permette de garantir un filtre suffisamment robuste pour ne pas s'en prendre trop dans la tronche.
Pour les moins courageux, je vous invite à vous dirigez vers des associations comme Rhien.

Les parties "réseau social" et "vidéos" sont assez sensibles. En effet, c'est en effet de masse seulement que les choses pourraient changer. La visibilité des données devient plus ou moins importante selon le profil des utilisateurs et il m'est impossible de recommander un outil plus qu'un autre. Il est existe du logiciel libre "social" comme StatusNet et Twister, ou encore Diaspora, caractérisés avant tout par leur utilisation décentralisée, mais seule une minorité d'internautes les ont installés.
Du coté des plateformes vidéos, pas mal de solutions web-based sont disponibles et des outils comme Wordpress peuvent facilement accueillir ce type de contenus. il y a deux problèmes plus ou moins importants : si on héberge son contenu à la maison, en dehors des lignes VDSL ou en fibre optique, les débits ne sont pas suffisants pour assurer un service digne de ce nom. J'aurais tendance à privilégier les réseaux P2P mais ça reste compliqué et ça sort des sentiers battus du streaming. Pour une médiathèque plus ou moins avancée, il pourra être intéressant d'utiliser Owncloud. Owncloud est d'ailleurs une excellente alternative à l'espace de stockage Google Drive ou à l'agenda de Google Calendar. Par ailleurs, il permet maintenant l'édition de document collaborative.

Sans faire le tour complet de Google, il reste à présent le moteur de recherche à remplacer. Personnellement, j'ai mis quelques temps avant de pouvoir m'en défaire. Il faut avouer qu'il est performant mais la politique de Google me déplait et mes données personnelles passent avant tout. J'ai épluché quelques solutions et j'ai utilisé, pendant un court temps, Seeks. Il fait office de proxy et agrège différents moteurs de recherches pour récupérer des résultats. Bien que le projet soit extrêmement intéressant, il ne m'a pas convaincu (mais je garde sous le coude !). Duck Duck Go est un moteur qui s'appuie sur Google mais rend nos requêtes anonymes. Il fonctionne bien mais j'aimerais autre chose que des résultats textuels. Typiquement, quand je recherche le titre d'un artiste, j'ai envie qu'on me propose aussi des vidéos et des images. Du coup, je me suis retranché sur Qwant, un moteur de recherche Français avec la législation française avec lui (et moi). Il fonctionne pas mal même si certaines requêtes m'ont amené trop peu de résultats pertinents. Cependant, il accueil les fonctionnalités que je cherchais avec une interface plutôt sympatique.


Rien à cacher, Jérémie Zimmermann

Pourquoi est-ce si important d’assurer la protection de nos données personnelles ? Après tout, je n'ai rien à me reprocher…

C'est un bout du projet Datalove. En bonus, voici une interview de Jérémie Z. sur la question de l'Universalité du Net :


Le studio d'un ami a besoin de votre soutiens

Lucky Pencil est un jeune studio de jeux vidéo indépendant crée il y a moins d'un an. Ils ont terminé il y a peu leur premier projet appelé "Fragment" qui est une application en réalité augmentée et gamifiée. ils entament maintenant le développement de leur second projet sur smartphone (Android, iOS et Windows Phone) : le RPG Lucky Charm. Actuellement en pleine campagne Ulule, ils ont besoin de soutiens pour atteindre leur objectif et pouvoir continuer le développement de leur jeu : compagne Ulule !

Aeterna

Lucky Charm est un jeu de rôle en réalité augmentée et alternée, où le monde réel devient un véritable terrain de jeu. Notre planète est menacée, le chaos de l'oblivion s'insinue partout, créant de nombreux portails pour envahir notre monde. Endossez le rôle de magicien et guidé par Aeterna, déesse de la fortune, explorez le monde en utilisant votre smartphone pour trouver et détruire ces portails. Partez à la découverte du peuple Ianitorien, peuple qui a mystérieusement disparu en laissant derrière eux la connaissance et la maîtrise de la chance, un pouvoir capable d'anéantir ces fameux portails. Dévoilez l'intrigue reliant la civilisation Ianitorienne et ces portails menaçants apparaissant partout dans le monde.

Ce peuple a laissé cependant une trace physique de leur passage dans ce monde : le Locus. C'est un artefact magique capable de concentrer cette ressource magique qui est la chance.
Répérez les ressources magiques et exploitez-les en batissant votre territoire dessus. Créez des guildes, ralliez un maximum de joueurs à votre cause et combinez vos forces pour défendre votre territoire. Car vos ressources attiront des joueurs de tout horizons ! Cette alliance est également nécessaire pour repousser de puissants monstres arrivant par vague détruisant tout sur leur passage, arrêtez-les avant qu'il ne soit trop tard !

Oblivion

Construisez des golems pour protéger votre territoire de toute intrusion pendant votre absence. Utilisez votre artefact magique, le Locus, pour vos combats magiques. Cet objet vous permet également d'invoquer les "gardiens" des sceaux magiques nommés "Seras", pour renforcer votre puissance magique.



Installer un serveur Sync (Firefox) à la maison

Dans ma conquête vers auto-suffisance et pour écarter encore plus mes données persos des USA, j'ai décidé d'installer mon propre serveur de synchronisation pour Firefox.

Pour rappel, Firefox permet de synchroniser vos terminaux par le biais d'une fonction "Sync". Ainsi vous concervez les mêmes marque-pages, historique, modules complémentaires, etc. entre les différents terminaux que vous manipulez.

Par défaut, ce sont sur des serveurs à Mozilla où les données sont enregistrées. Elles sont évidément chiffrées mais stockées on ne sait pas trop où....enfin si, aux USA. Certains diront que tant que c'est chiffré, on s'en fiche vers où elles partent et c'est à moitié vraie. Cependant, le jour où l'ago de chiffrement sera cassé, ces données aujourd'hui indéchiffrables le deviendront et je préfère les savoir chez moi.

Comment installer son propre serveur Sync ? C'est très simple et voici les étapes de configuration.

Voici mes contraintes :

  • Un domaine dédié (sync.deblan.org)
  • Transactions HTTP chiffrées (HTTPS)

Pour rappel, je travail sur Debian et j'ai déjà un serveur web Apache installé.

Étape 1 : installation des paquets nécessaires
$ su - 
# aptitude update
# aptitude install python-dev mercurial sqlite3 python-virtualenv libssl-dev libapache2-mod-wsgi
# aptitude clean
# a2enmod wsgi
# service apache2 restart
Étape 2 : installation de Sync server

Dans ma procédure de création de vhost pour Apache, je génère systématiquement un nouvel utiliseur unix. Dans le cas de Sync, il s'appel "websync". Son répertoire personnel est chez moi : "/services/web/www/sync.deblan.org".

# su - websync
$ mkdir public_html logs databases
$ chmod 700 logs databases
$ hg clone https://hg.mozilla.org/services/server-full
$ cd server-full
$ make build
Étape 3 : configuration de Sync server

Dans le répertoire server-full/" se trouve un fichier "development.ini". Éditez-le et ajoutez ces informations. Ici je vais conserver SQLite pour enregistrer les données.

# De base, Sync server permet à n'importe qui de s'inscrire pour synchroniser ses données.
# Vous pouvez activez un Captcha pour bloquer les bots
# Passez simplement use à true
[captcha]
use = false
public_key = 6Le8OLwSAAAAAK-wkjNPBtHD4Iv50moNFANIalJL
private_key = 6Le8OLwSAAAAAEKoqfc-DmoF4HNswD7RNdGwxRij
use_ssl = true

[storage]
backend = syncstorage.storage.sql.SQLStorage
# À modifier selon vos répertoires
sqluri = sqlite:////services/web/www/sync.deblan.org/databases/storage.db
standard_collections = false
use_quota = true
# Un quota de 25Mo : par défaut à 5Mo
quota_size = 25120
pool_size = 100
pool_recycle = 3600
reset_on_return = true
display_config = true
create_tables = true

[auth]
backend = services.user.sql.SQLUser
# À modifier selon vos répertoires
sqluri = sqlite:////services/web/www/sync.deblan.org/databases/auth.db
create_tables = true
pool_size = 100
pool_recycle = 3600
create_tables = true
# Décommentez la ligne suivante pour ne pas autoriser d'inscription.
# Note : il est nécessaire des les autoriser le temps d'ajouter votre compte
# allow_new_users = false

[nodes]
# Nécessaire pour que ça puisse fonctionner...
fallback_node = https://sync.deblan.org/

[smtp]
host = localhost
port = 25
sender = no-reply@deblan.fr

[cef]
use = true
file = syslog
vendor = mozilla
version = 0
device_version = 1.3
product = weave

[reset_codes]
backend = services.resetcodes.rc_sql.ResetCodeSQL
# À modifier selon vos répertoires
sqluri = sqlite:////services/web/www/sync.deblan.org/databases/reset.db
create_tables = True
Étape 4 : configuration d'Apache

Dans ce Vhost, j'utilise le module WSGI (pour jouer avec Python) mais également Suexec pour ma politique de sécurité. J'ai également des certificats SSL qui ne sont pas ceux par défaut. Il ne faut donc pas faire un "bête" copié/collé car ça ne va pas fonctionner.

# cat /etc/apache2/sites-available/sync.deblan.org.443 
<IfModule mod_ssl.c>
<VirtualHost *:443>
	# À modifier
	ServerName sync.deblan.org
	# À modifier (public_html est un répertoire vide)
	# /var/www/service-web/www/ == /services/web/www/ (contraintes php-fastcgi)
	# @see http://www.deblan.tv/post/407/Serveur-web-Debian-Apache2-et-FastCGI
	DocumentRoot /var/www/service-web/www/sync.deblan.org/public_html
	SuexecUserGroup websync webgroup
	ErrorLog /services/web/logs/sync.deblan.org.log
	CustomLog /services/web/logs/sync.deblan.org.log combined
	CustomLog /services/web/logs/sync.deblan.org.log trafic

	WSGIProcessGroup sync
	# Modifier "websync" selon le user créé pour l'occasion
	WSGIDaemonProcess sync user=websync group=websync processes=2 threads=25
	WSGIPassAuthorization On
	# À modifier selon vos répertoires
	WSGIScriptAlias / /services/web/www/sync.deblan.org/server-full/sync.wsgi

	# À modifier selon vos répertoires
	<Directory /var/www/service-web/www/sync.deblan.org>
		Options -Indexes SymLinksIfOwnerMatch MultiViews
		AllowOverride All
		Order allow,deny
		allow from all
		Options +ExecCGI
	</Directory>

	# Ne fonctionnera pas tel quel chez vous
	SSLEngine on
	SSLCertificateFile    /etc/apache2/ssl/deblan/org/deblanorg.crt
	SSLCertificateKeyFile /etc/apache2/ssl/deblan/org/deblanorg.key
	SSLCACertificateFile  /etc/apache2/ssl/deblan/org/GandiStandardSSLCA.pem

	BrowserMatch MSIE [2-6] \
		nokeepalive ssl-unclean-shutdown \
		downgrade-1.0 force-response-1.0
	BrowserMatch MSIE [17-9] ssl-unclean-shutdown
</VirtualHost>
</IfModule>
# a2ensite sync.deblan.org.443
# service apache2 reload

Il ne reste plus qu'à supprimer et recréer un compte Sync en spécifiant que vous utilisez un serveur personnel. Si tout se passe bien, les bases de données SQLite vont être générées. En cas de problème, il "suffira" de regarder ce que les logs racontent coté serveur et de regarder ceux présents chez vous via : about:sync-log.