« Unison » : différence entre les versions
mAucun résumé des modifications |
m (Correction d'un lien cassé) |
||
Ligne 10 : | Ligne 10 : | ||
'''Création et échange des clés SSH''' | '''Création et échange des clés SSH''' | ||
Se référer à l'[[ | Se référer à l'[[Openssh#Authentification_par_clef_SSH|article dédié]]. | ||
==Installation et configuration== | ==Installation et configuration== | ||
'''Installation du paquet''' | '''Installation du paquet''' |
Dernière version du 22 février 2018 à 09:19
EN CHANTIER
Article en cours d'écriture et/ou de test. Certains éléments peuvent être incomplets et mener à un résultat non fonctionnel.Merci de ne pas rager.
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.
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