servuers:installation:bkp-srv:install-sftp

Ceci est une ancienne révision du document !


Installation serveur SFTP et espace d'hébergement des données téléchargeables

Principe : nous allons utiliser un container Docker qui hébergera le serveur SFTP. L'utilisateur provider de l'hôte hébergera les dossiers des utilisateurs du serveur SFTP du container. L'utilisateur provider pourra être accéder uniquement via une clé SSH préalablement autorisé. Les utilisateurs du serveur SFTP seront accessibles par mot de passe. Les dossiers chrootés des utilisateurs du serveur SFTP devront être accessible par l'utilisateur provider.

  • Se connecter au serveur "bkp-srv" en tant qu'admin : ssh admin@bkp-<region>-sinp
  • Passer en root : sudo -i
  • Créer l'utilisateur "provider" sans mot de passe (connexion par clé SSH) avec son dossier /home/provider : useradd provider --create-home --home-dir /home/provider/ --shell /bin/bash
  • Créer le dossier qui contiendra les infos concernant SSH : mkdir /home/provider/.ssh ; chmod 700 /home/provider/.ssh
  • Créer le fichier des clés SSH autorisées à partir de celui de l'utilisateur admin : cp /home/admin/.ssh/authorized_keys /home/provider/.ssh/authorized_keys
  • Attribuer la propriété du dossier et de son contenu à l'utilisateur provider : chown -R provider: /home/provider/.ssh
  • En local sur votre machine placer vous à la racine de votre dépôt sinp-<region>-srv : cd ~/workspace/sinp-<region>-srv/
    • À l'aide de Rsync uploader les fichiers pour Docker :
       rsync -av ./bkp-srv/home/admin/docker/sftp/ admin@bkp-<region>-sinp:/home/admin/docker/sftp/ --dry-run 

      (si tout est ok, supprimer l'option --dry-run)

  • Se connecter au serveur "bkp-srv" en tant qu'admin : ssh admin@bkp-<region>-sinp
  • Placer vous dans le dossier du docker SFTP : cd ~/docker/sftp/
  • Générer les clés SSH qui seront utilisées par le serveur SFTP sur l'hôte afin d'éviter que les utilisateurs recoivent un avertissement MITM après chaque redémarrage du container. Lancer les commandes suivantes en acceptant toutes les valeurs par défaut des différentes questions :
    • ssh-keygen -t ed25519 -f ssh_host_ed25519_key < /dev/null
    • ssh-keygen -t rsa -b 4096 -f ssh_host_rsa_key < /dev/null
  • Créer le fichier .env et le remplir : cp .env.sample .env ; vi .env
  • Lancer le docker : docker-compose up
  • Si tout est OK, arrêter le container avec CTRL+C puis le redémarrer en tant que service : docker-compose up -d
  • Passer en root : sudo -i
  • Aller dans le dossier : cd /home/provider/data/
  • Créer les dossiers qui hébergeront les données à intégrer :
    • Pour PACA : mkdir cbna-cbnmed cen-paca
    • Pour AURA : mkdir cbna cbnmc flavia lpo
  • Donner les droits à l'utilisateur provider d'y accéder en lecture et écriture : chown provider: ./*
  • En local sur votre machine, installer un client SFTP : aptitude install filezilla
  • Configurer votre client SFTP :
    • Protocole : SFTP
    • Hôte : IP du serveur "bkp-srv"
    • Port : indiquer la valeur du paramètre HOST_SSH_PORT du fichier .env du container Docker SFTP configuré via l'utilisateur admin.
    • Type d'authentification : Normale
    • Identifiant : indiquer la valeur du paramètre SFTP_USER_NAME du fichier .env du container Docker SFTP configuré via l'utilisateur admin.
    • Mot de passe : indiquer la valeur du paramètre SFTP_USER_PWD du fichier .env du container Docker SFTP configuré via l'utilisateur admin.
    • Enregistrer
  • Tenter de vous connecter et d'uploader un fichier dans un des dossiers préalablement créé.
  • Normalement, il est impossible d'uploader des fichiers ou de créer de nouveaux dossiers à la racine.
  • servuers/installation/bkp-srv/install-sftp.1621799996.txt.gz
  • Dernière modification : 2021/05/23 19:59
  • de jpmilcent