rss
twitter
  • Showcase
  • Carrières
  • Support
  • GitLab
  • Espace client
  • Contact

LaCie 2big NAS / 5big NAS : SSH + rsync

0

INDEX

1. Matériel concerné

Cet article a été réalisé avec un NAS LaCie 2big avec le firmware 3.1.4.6 (pensez à désactiver la mise à jour automatique !).
Elle devrait fonctionner sur LaCie 5big (sous réserve de firmware <=) et potentiellement sur d’autres appareils répertoriés sur Nas-Central.
Un point de partage nommé « backup_serveur » accessible par l’admin et par un utilisateur nommé « backup_serveur » a été configuré.

Le shell utilisé est celui de Mac OS X.8.5

Le serveur tourne sous Ubuntu 12.04.4 LTS.

2. Création d’un alias dans le fichier hosts

Au lieu de retaper tout le temps d’IP complète du NAS, nous allons gagner du temps grâce à un alias (par exemple mon.nas)
Exécuter :

~  sudo nano /etc/hosts

Puis ajouter la ligne :

IP.DE.VOTRE.NAS mon.nas

Faire ctrl + o pour enregistrer, ctrl + x pour fermer.
Vous pouvez maintenant taper mon.nas dans les lignes de commandes, et utiliser le raccourci https://mon.nas/ comme URL pour accéder à l’interface LaCie.

3. Activation du SSH (root)

Ces étapes viennent tout droit du forum Nas-Central, je les agrémente de quelques exemples :

  1. Activer SFTP dans l’interface d’admin
  2. Ouvrir une connexion SFTP avec votre compte admin : sftp admin@mon.nas
    Si vous avez donné un login particulier à votre compte admin, adaptez.
  3. Aller dans le dossier de l’admin :  cd admin
  4. Créer un lien symbolique pour le runlevel :  symlink /etc/initng/runlevel/default.runlevel default.runlevel 
  5. Créer un lien symbolique pour le fichier shadow :  symlink /etc/shadow shadow
  6. Créer un lien symbolique pour le fichier de config SSH d’Unicorn :  symlink /etc/unicorn/unicorn_conf/unicorn.sharing.ssh.conf unicorn.sharing.ssh.conf
  7. Fermer la connexion SFTP :  exit
  8. Naviguer jusqu’au dossier de l’admin par l’interface web :  https://mon.nas/
  9. Editer default.runlevel par un clic droit > Ouvrir avec > Editeur texte, décommenter sshd entry, enregistrer
  10. Editer unicorn.sharing.ssh.conf de la même façon, activer SSH en remplaçant false par true sur la ligne enabled, enregistrer.
    Facultatif (mais recommandé) : si vous souhaitez utiliser l’authentification par clé, remplacez la valeur de  authorized_keys par '~/.ssh/authorized_keys' (avec les guillemets)
  11. Redémarrer le NAS :
    ScreenShot 2014-03-07 à 08.28.48
  12. Dans l’interface web, éditer le fichier shadow en mode texte, remplacer le hash du password root par celui de l’admin (gardez une copie du hash root !), enregistrer

 

A ce stade vous devriez être en mesure de vous connecter, avec saisie manuelle du mot de passe.

4. Authentification par clé SSH

Rappels :

  • La machine qui se connecte doit avoir une paire de clés publique/privée : id_rsa.pub/id_rsa
  • La machine qui se connecte doit donner sa clé publique à la machine qui reçoit la connexion
  • La machine qui reçoit la connexion doit enregistrer cette clé publique dans  ~/.ssh/authorized_keys
  • La machine qui se connecte doit spécifier la clé privée à utiliser en se connectant

 

Je ne reviens pas sur les subtilités de création de clés, ni la génération de clés sous Windows, car ce n’est pas l’objet de l’article. Si besoin, consultez cet article exhaustif et en français. Nous allons seulement générer une paire de clé simple (sans passphrase) pour la machine locale et pour le serveur.

La commande pour créer les clés :

~ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/germain/.ssh/id_rsa):

Voilà pour le Mac. Sur le serveur, Ubuntu va plutôt générer une clé DSA (et non RSA).

Récupérer la clé publique du serveur en local

Habituellement on utilise la commande ssh-copy-id ou un transfert scp mais ça ne fonctionne pas avec le NAS. Pour s’envoyer la clé par mail :

mail -s "clé publique de mon serveur" mail@exemple.com < .ssh/id_dsa.pub

Reste plus qu’à la copier-coller dans un fichier  authorized_keys local temporaire (sur le bureau, avec Sublime Text ou TextEdit). Attention à ne pas splitter vos clés sur plusieurs lignes par mégarde…

# germain@macbookpro
ssh-rsa JY2Ni0nu2Dde5gHEQn1DHaS3eQGoHFGlcDD4jER...
# root@serveur
ssh-dss aC1kc3MAAACBAM2k6g4PTJh0ocHcC2ggL9QROun...

Transfert des clés publiques vers le NAS

On repasse par SFTP. Il faudra aussi leur donner les bons droits :

sftp root@mon.nas
Password:
sftp> mkdir .ssh
sftp> cd .ssh/
sftp> put Desktop/authorized_keys
sftp> cd ../
sftp> chmod -R 700 .ssh/
sftp> exit

Vous devriez maintenant pouvoir vous connecter en root sans rentrer le mot de passe admin :  slogin -i ~/.ssh/id_rsa -p 2222 root@mon.nas
Théoriquement, si vous n’avez pas (trop) bricolé votre config, il n’est même pas utile d’indiquer la clé privée à utiliser (paramètre -i).

Supprimez le fichier de votre bureau…

 

5. Facultatif : modifier le port SSH

Comme vu dans la conf d’Unicorn, SSH utilise le port 2222 sur le 2big. Dans certains cas ça peut être gênant et vous pouvez être obligés d’utiliser le port 22. Outre ce fichier de config, vous pouvez aussi jeter un oeil au fichier de conf :
~ vi /etc/ssh/sshd_config

Rappel d’utilisation de vi :

  • taper i pour passer en mode édition (insert)
  • appuyer sur Escape pour arrêter l’édition
  • taper :wq pour sauvegarder et quitter

 

Remplacement de service et /etc/init.d :

Pour relancer le service sans redémarrer le NAS, les commandes du 2big sont :

  • reload :  ngc -R sshd
  • restart :  ngc -r sshd
  • status :  ngc -s sshd

 

6. Activation de rsync

Le NAS supporte nativement rsync mais avec quelques restrictions. Commençons par l’activer. Ça se passe dans Paramètres généraux > Services > NetBackup. Suivez les instructions à l’écran et créez un compte netbackup (que nous n’utiliserons pas). Désactivez SFTP avant d’activer NetBackup.

ScreenShot 2014-03-07 à 09.23.19

Cette config ne permet d’enregistrer les data que dans le point de partage NetBackup et uniquement avec l’utilisateur netbackup. Dommage.

 

Ajout d’un module dans la config de rsync :

Il nous faut ajouter notre propre module sous le module NetBackup par défaut.

# vi /etc/rsyncd.conf

[NetBackup]
Comment = LaCie NAS NetBackup Share
auth users = netbackup
charset = utf-8
gid = root
path = /media/internal_1/shares/6/data
secrets file = /etc/rsyncd.secrets
uid = root

[backup_serveur]
Comment = Backup du serveur
auth users = backup_serveur
charset = utf-8
gid = root
path = /media/internal_1/shares/4/data
secrets file = /etc/rsyncd.secrets
uid = root

Voir la page d’aide de la config rsync (man)

  • mettre le bon utilisateur sur la ligne  auth users
  • modifier le fichier secrets en ajoutant sous l’utilisateur netbackup le user:password du bon utilisateur
  • pour trouver le bon chemin, sauf partitions particulières, il faut seulement modifier le chiffre 4 dans la ligne path. Cela dépend de vos points de partages créés et supprimés pour le retrouver (conseil : créez un fichier temporaire à la racine du point de partage backup_serveur et faire un ls du dossier data de chaque numéro de point de partage, jusqu’à trouver le bon).

 

 7. Exécution de la synchronisation

Les points à retenir sont, dans l’ordre :

  • si le serveur et le NAS ne sont pas sur le même LAN, obligation de faire transiter rsync via SSH ( -e)
  • dans ce cas préciser à -e que la connexion doit se faire avec l’utilisateur dont la clé publique est enregistrée sur le NAS (dans notre exemple, c’est root)
  • préciser le port spécifique sur lequel SSH tourne sur le NAS ( -p)
  • en revanche, envoyer rsync sur le port écouté par défaut ( --port)
  • la clé sert à connecter le démon SSH, pas RSYNC ! Vous pouvez donc…
    • créer une seconde paire de clés, pour l’utilisateur backup_serveur (recommandé mais dans ce cas il faut se connecter directement au démon sans passer par SSH, cf https://ss64.com/bash/rsync.html) ;
      ou
    • utiliser  --password-file et stocker en clair sous la forme user:pass le mot de passe de l’utilisateur backup_serveur. Il sera nécessaire de faire un  chmod 600 password_file.txt ;
    • ou
    • il est aussi possible d’utiliser la variable d’environnement RSYNC_PASSWORD :  RSYNC_PASSWORD="xxx"; rsync -rtv source destination
  • path source
  • schéma destination  utilisateur@host::point_de_partage (notez les :: au lieu de l’habituel slash si vous passez par SSH, sinon  rsync://[user@]host[:PORT]/point_de_montage[/dossier] si vous vous connectez directement au démon.
  • Attention pour se connecter directement au démon, SSH doit rester séparé, sur le port 2222 (rsync écoutant lui aussi le port 22 dans la config de LaCie).

 

La commande avec dry-run (-n) :

rsync -avzn -e 'ssh -p 22 -l root' --port=873 --password-file=/root/password_file.txt --progress --stats --delete /home/ backup_serveur@mon.nas::backup_serveur/home/

sending incremental file list
./

Number of files: 2
Number of files transferred: 0
Total file size: 1827512320 bytes
Total transferred file size: 0 bytes
Literal data: 0 bytes
Matched data: 0 bytes
File list size: 60
File list generation time: 0.001 seconds
File list transfer time: 0.000 seconds
Total bytes sent: 68
Total bytes received: 11

sent 68 bytes received 11 bytes 52.67 bytes/sec
total size is 1827512320 speedup is 23133067.34 (DRY RUN)

Consultez cet autre article pour en savoir plus sur rsync !

DATE 07 Mar 2014
by : Germain
Author / Auteur

Social Share / Partager

    Leave a Reply / Répondre Annuler la réponse

    *
    *

    Search the blog

    Blog categories

    • Workflow (1)
    • Front-end : HTML, CSS (13)
    • Front-end : javascript, jQuery (33)
    • Back-end : PHP, CMS (42)
    • Back-end : SQL, MySQL (20)
    • Sysadmin : Linux, Apache, GIT (75)
    • Designers : tools, advice (2)
    • Desktop : OS X (37)
    • Desktop : Microsoft (12)
    • Uncategorized (8)

    ITALIC™ Resources

    • Paramètres de connexion au serveur mail
    • Graphistes : séduire un développeur web
    • Dév front : nos bonnes pratiques
    • Mailing : nos (bonnes ?) pratiques
    • Environnement de travail Mac

    Recent comments

    • Germain dans Inserer un motif dans une forme InDesign
    • Fannie J dans Inserer un motif dans une forme InDesign
    • Rapide benchmarks de clients Git pour Linux (et un peu Windows et Mac aussi) – Haha. dans Git avec SourceTree : ouvrir dans TextMate / ouvrir dans Sublime Text 2
    • Germain dans Ajouter des contacts non-Facebook à Spotify
    • cc dans Ajouter des contacts non-Facebook à Spotify

    Meanwhile, in the office…

    UNEP @ Paysalia

    01 Déc 2015

    Liebig

    22 Sep 2015

    Mercedes-Benz

    17 Sep 2015

    Office National du Tourisme Tunisien

    21 Août 2015

    Serious Game

    17 Juil 2015

    Engie

    22 Juin 2015

    UN Guiding Principles Reporting Framework

    21 Mar 2015

    Dites-le avec Nutella®

    21 Fév 2015

    HEC

    21 Déc 2014

    AREVA

    21 Déc 2014
    © 2008-2017 ITALIC™ • 8 bis rue Abel • 75012 PARIS • Tel +33 (0)1 48 44 46 35 • RCS PARIS 508 228 772 • Powered by WordPress & GoodLayers
    Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site web.
    Cookie settingsACCEPTER
    Manage consent

    Privacy Overview

    This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
    Necessary
    Toujours activé
    Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
    Non-necessary
    Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.
    Enregistrer & appliquer