Unison

De Wiki doc

Révision datée du 15 septembre 2017 à 16:57 par Ycharbi (discussion | contributions) (Page créée avec « Category:synchronisation Unison est un outil permettant la synchronisation bi-directionnelle de fichiers via SSH (entre deux machines donc). Il est utilisé pour faire... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Unison est un outil permettant la synchronisation bi-directionnelle de fichiers via SSH (entre deux machines donc). Il est utilisé pour faire un miroir des fichiers de nos dépôts entre le site https://doc.ycharbi.fr et https://doc.lesmorin.fr.

La procédure suivante explique comment mettre en place la même architecture que sur notre Wiki. À adapter à vos besoins.

ATTENTION

Article en cours de rédaction. Certaines parties sont incomplètes.

Sur les deux machines

Préparation

Création d'un utilisateur unison.

adduser unison

Création et échange des clés SSH

Se référer à l'article dédié.

Installation et configuration

Installation du paquet

apt install unison

ATTENTION

Les versions d'Unison doivent être identique des deux cotés du serveur.

Se connecter à l'utilisateur unison

su - unison -s /bin/bash

INFORMATION

Des deux machines, une seul exécutera la commande unison, nous l’appellerons maître et l'autre esclave.

Fichier de configuration machine maître

mkdir ~/.unison
vim ~/.unison/default.prf
#j'indique le chemin racine à synchroniser
root = /var/www/
#Je limite la synchronisation à ces deux répertoires
path = ./fichiers/
path = ./mediawiki/images/
#j'indique le chemin du dossier distant
root = ssh://unison@mediawiki2//var/www/

# Options du journal
log = true
logfile = /home/unison/.unison/logunison

#zap les permissions
perms = 0

#synchro des dates
times = true

batch = true

Exécuter la première synchronisation

Cela aura pour effet de créer les fichiers nécessaires tant du coté maître que esclave dans leur ~/.unison respectifs.

unison

Droit d'accès

Nous utilisons les ACL afin d'autoriser l'utilisateur unison et www-data à accéder aux images synchronisés (car Mediawiki exige d'avoir tout les droits sur ces fichiers).

Installation du paquet

apt install acl

Application des acl sur les répertoires à synchroniser

setfacl -bR /var/www/mediawiki/images/
setfacl -dRm g:www-data:rwx,g:unison:rwx,o:--- /var/www/mediawiki/images/
setfacl -Rm g:www-data:rwx,g:unison:rwx,o:--- /var/www/mediawiki/images/

Sécurisation

Authentification

Shell de connexion

Afin d'empêcher la connexion à l'utilisateur unison pour autre chose que la synchronisation de nos fichiers, nous allons limiter leur shells respectifs. Machine maître

vim /etc/passwd

Dans le dernier champ Gecos de l'utilisateur unison, changer /bin/bash par /usr/sbin/nologin.

unison:x:1000:1000:,,,:/home/unison:/usr/sbin/nologin

Nous allons également supprimer le mot de passe afin d'être sur de désactiver l'authentification sur cet utilisateur.

vim /etc/shadow

Dans le deuxième champ Gecos de l'utilisateur unison, supprimer l'ancien mot de passe hashé et le remplacer par un *.

unison:*:17422:0:99999:7:::

Machine esclave

Parler de LSHELL.

Session SSH

Nous allons limiter les accès SSH au seul utilisateur unison afin de ne pas avoir de surprise.

vim /etc/ssh/sshd_config

Ajouter cette directive

AllowUsers unison

Recharger le service SSH

systemctl reload ssh.service