Comment installer un serveur Sync 1.5 sur LinuxMint, utilisant Apache2, SSL et MySQL?

Article mis à jour le 17 février 2016. Depuis la version 44 de Firefox, la valeur à modifier dans about:config n’est plus services.sync.tokenServerURI, mais identity.sync.tokenserver.uri . Le tutoriel a été modifié ci-dessous en conséquence.
Article mis à jour le 18 février 2015. La synchronisation ne fonctionnait pas avec la configuration originale. Il semblerait que Sync ne puisse pas exécuter sa synchronisation lorsqu’il est installé dans un répertoire non-root d’un domaine.

Je modifie donc la procédure afin que Sync se voit dans un dossier root de domaine, mais sans nécessairement avoir un nom de domaine. Nous allons faire en sorte que Sync écoute sur un autre port SSL que le 443.

En ce jour de la fête commerciale la plus nulle qui soit; la Saint-Valentin, je vous offre un article pour pouvoir avoir plus de contrôle sur votre vie privée.

Sync est le serveur qui conserve vos données Mozilla Firefox que vous désirez synchroniser entre vos ordinateurs. Il ne gère aucunement l’authentification pour accéder à ces données, donc si vous n’installez que ce serveur, Mozilla Firefox utilisera le serveur de Mozilla pour authentifié votre utilisateur et mot de passe, puis redirigera vers ce serveur Sync. Si vous êtes correct avec cela, vous pouvez procéder. Sinon, un autre article suivra dans les prochains jours, expliquant comment installer son propre serveur d’authentification. Je mettrai le lien vers ce nouvel article ici lorsque j’aurai finit de zigonner pour faire fonctionner le tout.
Ce guide concerne l’installation d’un serveur Sync 1.5, cette version n’est compatible qu’avec les versions 29 et 33 ultérieures pour PC/Mac et Android de Mozilla Firefox respectivement.
Ci-dessous, je déploie un serveur Sync 1.5 à l’adresse https://mon_ip/sync https://votre_ip:4433 . Il y a une semaine à peine, ceci était impossible sans un nom de domaine, mais puisque je désire utiliser ce serveur par VPN, il me fallait absolument que cela fonctionne par adresse IP. L’ajout très récent de l’option force_wsgi_environ rend le tout possible.

La méthode suivante a été testé avec les versions suivantes:

  • Sync 1.5 (14 Février 2015)
  • Apache 2.4.7
  • LinuxMint 17.1 (Ubuntu 14.04 LTS)
  • MySQL 5.5.4
  • Python 2.7

Cet article n’expliquera pas comment installer Apache, activé le SSL et MySQL. Pour ceci, veuillez suivre un précédent article ici.

Installation

  1. sudo apt-get update
  2. sudo apt-get install build-essential git autotools-dev autoconf g++ python-dev git-core python-virtualenv openssl libssl0.9.8
  3. cd /opt/
  4. sudo git clone https://github.com/mozilla-services/syncserver
  5. cd syncserver
  6. make build

Configuration de MySQL

Comment créer une base de données MySQL, un utilisateur et ajouter ce dernier à la base de données.

  1. Créez une base de données nommée sync.
  2. Créez un utilisateur firefox.
  3. Ajoutez l’utilisateur firefox à la base de données sync avec tous les pouvoirs.

Générer une clef secrète

Prenez en note la clef que vous générerez à l’aide de cette commande.
head -c 20 /dev/urandom | sha1sum

Configuration de Sync 1.5

  1. sudo chmod 775 -R /opt/syncserver/
  2. sudo chown -R root:www-data /opt/syncserver/
  3. sudo gedit /opt/syncserver/syncserver.ini
  4. Changez la valeur public_url pour l’adresse https://votre_ip:4433
  5. Changez la valeur sqluri pour pymysql://firefox:motdepasse@localhost/sync
    Remplacez motdepasse par le mot de passe que vous avez choisi lors de la création de l’utilisateur dans MySQL.
  6. Enlevez le # devant la valeur secret et collez-y votre clef générée plus tôt.
  7. Changez la valeur force_wsgi_environ pour true

Créer un certificat SSL

sudo openssl req -x509 -nodes -days 3650 -newkey rsa:2048 -keyout /etc/apache2/sync.key -out /etc/apache2/sync.crt

Configuration de Apache

  1. sudo mkdir /var/www/html/sync
  2. sudo gedit /etc/apache2/sites-available/sync.conf

    <IfModule mod_ssl.c>

    <VirtualHost *:4433>
    DocumentRoot /var/www/html/sync

    WSGIProcessGroup sync
    WSGIDaemonProcess sync user=sync group=sync processes=2 threads=25 python-path=/opt/syncserver/local/lib/python2.7/site-packages/
    WSGIPassAuthorization On
    WSGIScriptAlias / /opt/syncserver/syncserver.wsgi

    SSLEngine On
    SSLCertificateFile /etc/apache2/sync.crt
    SSLCertificateKeyFile /etc/apache2/sync.key

    WSGIProcessGroup sync
    WSGIDaemonProcess sync user=www-data group=www-data processes=2 threads$
    WSGIPassAuthorization On
    WSGIScriptAlias / /opt/syncserver/syncserver.wsgi

    CustomLog /var/log/apache2/access_sync.log combined
    ErrorLog /var/log/apache2/error_sync.log
    LogLevel warn
    </VirtualHost>

    <Directory /opt/syncserver>
    Require all granted
    </Directory>

    <IfModule>

  3. sudo gedit /etc/apache2/ports.conf
  4. Ajouter la ligne Listen 4433 dans la section <IfModule ssl_module>
  5. sudo ln -s /etc/apache2/sites-available/sync.conf /etc/apache2/sites-enabled/sync.conf
  6. sudo service apache2 restart

Configuration du pare-feu

Veuillez ouvrir le port 4433 en TCP dans le pare-feu de LinuxMint.

Installer un GUI pour ufw, le pare-feu de LinuxMint

Configuration de Firefox sur Mac/Linux/Windows

  1. Configurez Sync normalement en allant dans le menu Outils -> Configurer Sync…
  2. Naviguez à la page https://votre_ip:4433 et ajoutez le certificat à la liste des exceptions dans Firefox.
  3. Entrez about:config dans la barre d’adresses
  4. Changez la valeur services.sync.tokenServerURI identity.sync.tokenserver.uri pour https://votre_ip/sync https://votre_ip:4433/token/1.0/sync/1.5
  5. Redémarrez Firefox

Configuration de Firefox sur Android

À suivre… je n’ai pas encore finit de peaufiner le tout. Cette section sera mise à jour dès que j’aurai terminé.

Commentaires

  1. Bonjour, merci pour le tuto.
    Après les remerciements, je viens chercher de l’aide.
    Alors j’arrive a synchroniser sur les machine qui tourne sous windows mais impossible sur android ni sur macos -.-‘

    Aurais tu une idée cousin lointain !

    Cordialement

    Moimeme

    1. Bonjour,

      Je n’ai toujours pas essayé Sync sous Android, la dernière fois que j’ai vérifié, on ne pouvait changer l’URL de Sync dans l’application mobile, mais cela remonte à Février.

      Pour ce qui est de Mac OS X, vous pourriez accéder aux logs en entrant « about:sync-log » dans votre barre d’adresses. Prenez la dernière version du fichier .txt, dans celui-ci, peut-être des informations plus poussés s’y trouveront pour l’erreur que vous rencontrez.

      Guizmo

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *