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é.
$ su -
# aptitude update
# aptitude install python-dev mercurial sqlite3 python-virtualenv libssl-dev libapache2-mod-wsgi
# aptitude clean
# a2enmod wsgi
# service apache2 restart
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
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
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 https://www.deblan.io/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.

Sharepoint Office365 sur Linux : automatiser l'authentification (v2)
En septembre 2018, je publiais un article pour automatiser l'authentification sur Sharepoint…

Sharepoint Office365 sur Linux : automatiser l'authentification
Suite de l'aventure avec Sharepoint ! On a pu passer 2 étapes cruciales pour jouer avec Sha…

Sharepoint Office365 sur Linux (Webdav/Davfs) avec des fichiers accentués
Suite de l'aventure avec Sharepoint ! Je me suis rendu compte que les répertoires et les fi…