Table des matières

Voici les trucs et astuces du NAS de maman

Syno : Permettre de se connecter en ssh avec une clef publique

Il faut tout d'abord créer une clef RSA

ssh-keygen -t rsa

Ensuite la copier sur le NAS

ssh-copy-id -p 49022 François@dausseur.kicks-ass.net

Modifier le fichier de config sur le NAS

sudo vim /etc/ssh/sshd_config

et passer le paramètre PubKeyAuthorization à yes

Changer les droits sur le répertoire perso

sudo chmod 755 /volume1/homes/François

Ensuite recharger la config

sudo synoservicectl --reload sshd

sshfs

Rajouter la ligne suivante dans /etc/fstab

# NAS distant de maman
François@dausseur.kicks-ass.net:/home/ /mnt/nas_maman	fuse.sshfs	noauto,x-ystemd.automount,_netdev,port=49022,IdentityFile=/home/maitre/.ssh/id_rsa,allow_other,reconnect 0 0

Montage d'un filesystem encrypté dans un fichier (sur le sshfs)

Création du système de fichier compressé dans un fichier sur le nas.

sur le NAS de maman :

dd if=/dev/zero of=sauve.img bs=1M count=700000 status=progress

Sur mon propre NAS :

sudo cryptsetup luksFormat sauve.img
sudo cryptsetup open /mnt/nas_maman/Sauvegarde/sauve.img nas
sudo mkfs.ext4 /dev/mapper/nas
sudo mkdir /mnt/sauve_nas_maman
sudo mount /dev/mapper/nas /mnt/sauve_nas_maman

Sauvegarde des fichier compressés avec encryption GPG

Dépréciée
sauvegarde.sh
#!/bin/bash
 
# Exécution du script principal
# set -x
 
function usage()
{
    echo "Usage: $0 [-h][--help] [-m][--musique] [-p][--partage] [-n][--nuage] [-e][--homes]" >&2
    echo "Options:" >&2
    echo "  -h, --help      Afficher cette aide." >&2
    echo "  -m, --music     Archive les fichiers de musique." >&2
    echo "  -p, --partage   Archive les fichiers de partage." >&2
    echo "  -n, --nuage     Archive les fichier nuage." >&2
    echo "  -e, --homes     Archive personal share." >&2
    exit 1
}
 
function is_nas()
{
    present=`cat /etc/mtab | grep "$1"`
 
    if [[ -z "${present}" ]]; then
        return 0
    fi
    return 1
}
 
# Traiter les options longues et courtes
opts=$(getopt -o hmpne --long help,musique,partage,nuage,homes -- "$@")
if [ $? -ne 0 ]; then
    echo "Erreur lors du traitement des options." >&2
    usage
fi
 
eval set -- "$opts"
 
musique=0
partage=0
nuage=0
homes=0
au_moins_un=0
 
# Utilisation de getopts pour gérer les options
while true; do
  case "$1" in
    -h | --help)
      usage
      ;;
    -m | --musique)
      musique=1
      shift
      ;;
    -p | --partage)
      partage=1
      shift
      ;;
    -n | --nuage)
      nuage=1
      shift
      ;;
    -e | --homes)
      homes=1
      shift
      ;;
    --)
      shift
      break
      ;;
    : ) # Argument manquant pour l'option requérant un argument
      echo "Option invalide: $1" >&2
      usage
      ;;
  esac
done
 
let "au_moins_un=((partage != 0) | (musique != 0) | (nuage != 0) | (homes != 0))"
 
if [[ ${au_moins_un} == 0 ]]; then
    echo "Nothing to be done"
    exit
fi
 
choix=( partage musique homes )
choix_vrai=( ${partage} ${musique} ${homes} )
choix_path=( "/mnt/stockage/partage" "/mnt/stockage/multimedia/Musique" "/mnt/stockage/homes" )
choix_excludes=("/mnt/stockage/partage/Logiciels" "" "" )
 
#user="François"
#host="dausseur.kicks-ass.net"
#port=49022
mount_dir=/mnt/nas_maman
nas_dir=$mount_dir/Sauvegarde
 
is_nas "$mount_dir"
if [[ 1 -eq $? ]]; then
    echo "NAS présent"
else
    echo "Le NAS ne semble pas être monté"
    exit -1
fi
 
# backup of standard paths
long=${#choix[@]}
for (( j=0; j<${long}; j++ )); do
    if [[ ${choix_vrai[$j]} != 0 ]]; then
        rm ${nas_dir}/${choix[$j]}.old.tgz.gpg
        mv ${nas_dir}/${choix[$j]}.tgz.gpg ${nas_dir}/${choix[$j]}.old.tgz.gpg
        exclu=""
        if [[ ${choix_excludes[j]} != "" ]]; then
            exclu="--exclude ${choix_excludes[j]}"
        fi
        sudo tar -cvzf - ${exclu} "${choix_path[$j]}" | gpg --encrypt -r "BéaFrançois" --output ${nas_dir}/${choix[$j]}.tgz.gpg
    fi
done
 
# backup of users nextcloud paths
if [[ ${nuage} != 0 ]]; then
    utilisateurs=( francois beatrice corentin louis )
    for util in "${utilisateurs[@]}"
    do
        rm "${nas_dir}/nuage-data-${util}.old.tgz.gpg"
        mv "${nas_dir}/nuage-data-${util}.tgz.gpg" "${nas_dir}/nuage-data-${util}.old.tgz.gpg"
        sudo tar -cvzf - "/mnt/stockage/system/nuage-data/${util}" | gpg --encrypt -r "BéaFrançois" --output "${nas_dir}/nuage-data-${util}.tgz.gpg"
    done
fi