serveurs:installation:bkp-srv:install-sftp

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
serveurs:installation:bkp-srv:install-sftp [2023/06/07 19:16] – [Création d'un utilisateur "provider"] jpmilcentserveurs:installation:bkp-srv:install-sftp [2024/12/18 15:10] (Version actuelle) – [Ajouter un utilisateur du SFTP en lecture seule] jpmilcent
Ligne 5: Ligne 5:
  
 ===== TODO ===== ===== TODO =====
-  * Il serait intéressant de rajouter un utilisateur au SFTP avec des droits en lecture seulement. --- //[[jp.milcent@cbn-alpin.fr|Jean-Pascal MILCENT]] 2021/12/16 15:07//+  * <del>Il serait intéressant de rajouter un utilisateur au SFTP avec des droits en lecture seulement. --- //[[jp.milcent@cbn-alpin.fr|Jean-Pascal MILCENT]] 2021/12/16 15:07//</del>  --- //[[jp.milcent@cbn-alpin.fr|Jean-Pascal MILCENT]] 2023/06/08 08:25//
  
 ===== Création d'un utilisateur "provider" ===== ===== Création d'un utilisateur "provider" =====
Ligne 30: Ligne 30:
     * ''ssh-keygen -t rsa -b 4096 -f ssh_host_rsa_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 ''   * Créer le fichier ''.env'' et le remplir : '' cp .env.sample .env ; vi .env ''
-  * Lancer le docker : '' docker-compose up '' +  * Si nécessaire, paramétrer l'accès pour un utilisateur en lecture seule à l'aide du fichier ''users.conf''. Voir ci-dessous la section consacrée. 
-  * Si tout est OK, arrêter le container avec '' CTRL+C '' puis le redémarrer en tant que service : '' docker-compose up -d ''+  * 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''   * Passer en //root// : ''sudo -i''
   * Aller dans le dossier : '' cd /home/provider/data/ ''   * Aller dans le dossier : '' cd /home/provider/data/ ''
   * Créer les dossiers qui hébergeront les données à intégrer :   * Créer les dossiers qui hébergeront les données à intégrer :
-    * Pour PACA : '' mkdir cbna-cbnmed cen-paca ''+    * Pour PACA : '' mkdir cbna cbnmed cbna-cbnmed cen-paca ''
     * Pour AURA : '' mkdir cbna cbnmc flavia lpo ''     * Pour AURA : '' mkdir cbna cbnmc flavia lpo ''
-  * Donner les droits à l'utilisateur //provider// d'y accéder en lecture et écriture : ''chown provider: ./*''+  * Donner les droits à l'utilisateur //provider// d'y accéder en lecture et écriture : ''chown provider:users ./*''
  
 ===== Tester la connexion SFTP ===== ===== Tester la connexion SFTP =====
Ligne 50: Ligne 51:
     * Enregistrer     * Enregistrer
   * Tenter de vous connecter et d'uploader un fichier dans un des dossiers préalablement créé.   * 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. +  * Normalement, il est impossible d'uploader des fichiers ou de créer de nouveaux dossiers à la racine
 + 
 +===== Ajouter un utilisateur du SFTP en lecture seule ===== 
 +  * Pour ajouter un utilisateur en lecture seule, il n'est pas nécessaire d'ajouter un utilisateur au système hôte. 
 +  * Au lieu d'utiliser les variables d'environnement du fichier ''.env'', nous allons utiliser un fichier //users.conf//
 +  * Les utilisateurs utilisé pour la connexion SFTP existent seulement dans le container sftp. L'utilisateur qui hébergent les données sur l'hôte reste toujours "provider". Nous utilisons le groupe "users" pour limiter les droits d'accès en lecture. 
 +  * Les utilisateurs auront les noms suivant pour l'accès au SFTP : 
 +    * droits de lecture et écriture : **data** 
 +    * droits de lecture seulement : **data-reader** 
 +  * Se connecter au serveur "bkp-srv" en tant qu'//admin// : ''ssh admin@bkp-<region>-sinp'' 
 +  * Se placer dans le dossier hébergeant la stack Docker "sftp" : ''cd ~/docker/sftp'' 
 +  * Créer un fichier //users.conf// : ''vi users.conf'' 
 +    * Ajouter le contenu suivant : <code> 
 +# Use this to encrypt password : echo -n "your-password" | docker run -i --rm atmoz/makepasswd --crypt-md5 --clearfrom=- 
 +# The "data" user must have the same ID (1003) as the user storing the data on the host system. 
 +# All users must have GUID 100. GUID 100 must be the "users" group GUID on host. 
 +data:<encrypted-data-user-password>:e:1003:100 
 +data-reader:<encrypted-data-reader-user-password>:e:1004:100 
 +</code> 
 +    * Stocker les mots de passe de //data// et //data-reader// dans Keepass 
 +    * Générer les mots de passe encryptés avec : ''%%echo -n "<mot-de-passe>" | docker run -i --rm atmoz/makepasswd --crypt-md5 --clearfrom=-%%'' 
 +    * Remplacer les mots de passe dans le fichier //users.conf// 
 +  * Ajouter le fichier //users.conf// au //docker-compose.yml// : ''vi docker-compose.yml'' 
 +    * Ajouter aux volumes :<code yaml> 
 +    volumes: 
 +      - ./users.conf:/etc/sftp/users.conf:ro 
 +      - /data/sftp-data:/home/data-reader 
 +</code> 
 +  * Supprimer/commenter les paramètres suivant du fichier ''.env'' : SFTP_USER_NAME, SFTP_USER_PWD 
 +  * Les données doivent appartenir à l'utilisateur "provider" et au groupe "users" sur l'hôtes : ''chown -R provider:users /home/provider/data'' 
 +  * Redémarrer le container : ''docker compose down ; docker compose up -d'' 
 +  * Paramétrer 2 accès sur Filezilla, l'un avec l'utilisateur "data", l'autre avec "data-reader"
 +    * Vérifier à l'aide de Filezilla que l'utilisateur "data-reader" ne peut rien modifier et que l'utilisateur "data" le peut.
  • serveurs/installation/bkp-srv/install-sftp.1686165389.txt.gz
  • Dernière modification : 2023/06/07 19:16
  • de jpmilcent