dmesg.fr:~#

display message

Linksys NAS200 hack - Activation de la connexion SSH et sauvegarde avec rsync

linksys NAS 200Le NAS200 de Linksys est un serveur de stockage réseau d'entrée de gamme, qui peut très bien convenir pour sauvegarder les données d'une petite entreprise ou d'un particulier. Bien qu'il ne soit plus vendu neuf, le boîtier se trouve sur le marché de l'occasion à un prix avantageux. Les disques durs d'origine se remplacent facilement par des modèles plus récents (SATA 1 ou 2).

Le NAS200 fonctionne à l'aide d'un noyau Linux open source. Voici comment activer la connexion SSH et installer rsync, afin de réaliser des sauvegardes incrémentales automatiques.


Activation de la connexion SSH sur le NAS200

Vous devez d'abord mettre à jour le firmware du NAS200.

Téléchargez le firmware :

http://www.dmesg.fr/nas200/NAS200_V34R79jac4.bin


Ouvrez le panel d'administration du NAS200 : http://adresse_ip_nas200

Choisissez Administration Login, puis Firmware Upgrade

linksys nas200 firmware upgrade


Après le reboot, connectez-vous en ssh sur le NAS200 et changez le mot de passe root :

ssh root@adresse_ip_nas200
-> mot de passe : root

passwd
-> saisir un nouveau mot de passe


Etant donné que le répertoire /etc est chargé en RAM au démarrage du NAS200 à partir de répertoires de configuration, vous devez copier le fichier /etc/passwd dans ces répertoires de configuration :

for x in 1 2 3 4 5 6; do cp /etc/passwd /harddisk/volume_$x/conf/; done


Redémarrez le NAS200.


Connectez-vous en SSH et vérifiez la bonne prise en compte du nouveau mot de passe root :

ssh root@adresse_ip_nas200
-> votre nouveau mot de passe root



rsync logoInstallation et configuration de rsync sur le NAS200

Afin de réaliser des sauvegardes automatiques incrémentales vers le NAS200, nous allons installer rsync, et créer des clés d'authentification SSH pour autoriser la connexion SSH vers le NAS200 sans mot de passe.

Nous allons utiliser le compte root, mais vous pourrez définir un autre compte utilisateur ultérieurement.


Téléchargez rsync pour le NAS200 :

http://www.dmesg.fr/nas200/rsync-3.0.2-nas200-2dsc.tar


Sur le NAS200, créez les répertoires suivants  :

/harddisk/volume_3/data/cfgperso
/harddisk/volume_3/data/rc.d
/harddisk/volume_3/data/.ssh


Sur votre PC :

Connectez-vous en root.

Si ce n'est pas déjà fait, installez rsync sur votre PC :

apt-get install rsync

Générez des clés SSH :

ssh-keygen

Copiez la clé publique SSH sur le NAS200 :

scp /root/.ssh/id_rsa.pub root@adresse_ip_nas200:/harddisk/volume_3/data/.ssh/


Copiez rsync sur le NAS200 :

scp rsync-3.0.2-nas200-2dsc.tar root@adresse_ip_nas200:/harddisk/volume_3/data/cfgperso/


Créez le script suivant :

#!/bin/sh
#
# rc.10cfgperso
#
# Configuration perso NAS200
# - SSH avec authentification par cles
# - rsync
#

# Configuration cles ssh
mkdir /etc/root
mkdir /etc/root/.ssh
cp -a /harddisk/volume_3/data/.ssh/authorized_keys /etc/root/.ssh

# Décompression de rsync
tar -xvf /harddisk/volume_3/data/cfgperso/rsync-3.0.2-nas200-2dsc.tar -C "/"


Sauvegardez le script sous le nom rc.10cfgperso

Copiez le script sur le NAS200 :

scp rc.10cfgperso root@adresse_ip_nas200:/harddisk/volume_3/data/rc.d


Sur le NAS200 :

Connectez-vous sur le NAS200 :

ssh root@adresse_ip_nas200


Renommez la clé publique en authorized_keys :

cd /harddisk/volume_3/data/.ssh/
mv id_rsa.pub authorized_keys


Rendez le script rc.10cfgperso exécutable :

chmod +x /harddisk/volume_3/data/rc.d/rc.10cfgperso


Editez le fichier /etc/passwd afin de changer le répertoire personnel du compte root :

vi /etc/passwd


Modifiez la ligne root en remplaçant "/" par "/etc/root" :

root:xxxxxxxxxxxxx:0:0:root:/etc/root:/bin/sh

Sauvegardez.


Recopiez le fichier /etc/passwd dans les répertoires de configuration :

for x in 1 2 3 4 5 6; do cp /etc/passwd /harddisk/volume_$x/conf/; done


Redémarrez le NAS200.


Test de la connexion SSH par clés d'authentification

A partir du compte utilisateur root de votre PC, connectez-vous sur le NAS200 :

ssh root@adresse_ip_nas200

Vous devriez pouvoir vous connecter sur le NAS200 sans saisir de mot de passe.


Test de sauvegarde sur le NAS200 avec rsync

Sur votre PC, créez un répertoire de test et ajoutez-ici quelques fichiers :

mkdir /home/votre_user/rsynctest
touch /home/votre_user/rsynctest/toto{1,2,3}.txt


Synchronisez ce répertoire sur le NAS200 :

Avec le compte root, tapez :

rsync --rsync-path=/harddisk/volume_1/conf/bin/rsync -rtv /home/votre_user/rsynctest root@adresse_ip_nas200:/harddisk/volume_3/data/


Vous devriez obtenir :

sending incremental file list
rsynctest/
rsynctest/toto1.txt
rsynctest/toto2.txt
rsynctest/toto3.txt


Sur le NAS200, vérifiez que la sauvegarde a bien fonctionné :

ls -l /harddisk/volume_3/data/rsynctest/

-rw-r-----    1 root     root            0 Nov 23  2011 toto1.txt
-rw-r-----    1 root     root            0 Nov 23  2011 toto2.txt
-rw-r-----    1 root     root            0 Nov 23  2011 toto3.txt


Il ne vous reste plus qu'à créer un script de sauvegarde rsync, et à l'exécuter périodiquement dans la crontab par exemple.


Dépannage

Si vous perdez le mot de passe root du NAS200, vous pourrez restaurer le mot de passe par défaut de la manière suivante.

Sur votre PC :

Créez un point de montage et montez le volume du NAS200 :

mkdir /media/nas200
mount -t smbfs //adresse_ip_nas200/DISK /media/nas200/ -o username=admin,password=mot_de_passe_admin_NAS200

Note : si smbfs n'est pas installé, installez-le :

apt-get install smbfs


Créez le script /media/nas200/rc.d/rc.resetrootpassword :

#!/bin/sh
#
# rc.resetrootpassword
#
# This file, if placed in the rc.d directory on one of your harddisks
# as rc.resetrootpassword, will change the root password to "root"
# (without the quotes). Other accounts will not be touched.
#
# Don't forget to change the password from Telnet or SSH and
# remove this file, otherwise it will be reset every time you
# start the NAS!
#
egrep "^root:" /etc.default/passwd >/etc/x
egrep -v "^root:" /etc/passwd >>/etc/x
for x in 1 2 3 4 5 6;do cp /etc/passwd /harddisk/volume_$x/conf/passwd;done


Rendez le script rc.resetrootpassword exécutable :

chmod +x /media/nas200/rc.d/rc.resetrootpassword


Démontez le volume du NAS200 :

umount /media/nas200


Redémarrez le NAS200.


Copyright dmesg.fr - All Rights Reserved.