Outils pour utilisateurs

Outils du site


doc:formations:hebergement:serveur:transfert_de_fichiers

Ceci est une ancienne révision du document !


Transfert de fichiers sécurisé

On peut utiliser différentes méthodes,

  • si vous avez déjà un accès ssh, vous pouvez déjà utiliser scp ou rsync
  • sinon on va configurer un accès spécifique et limité à SFTP (secure FTP)

SFTP

On va créer un utilisateur dédié filez ainsi qu'une zone dédiée aux échanges sur le serveur (idéalement sur une partition à part pour ne pas laisser la possibilité aux utilisateurs de saturer une partition importante pour le serveur!)

adduser filez
chown -R root:root /home/filez
chmod go-rwx /home/filez
mkdir -p /sftp/filez/incoming
chown filez:filez /sftp/filez/incoming

Et bride cet accès depuis le fichier de configuration du service SSH, /etc/ssh/sshd_config:

# override default of no subsystems
#Subsystem      sftp    /usr/lib/openssh/sftp-server
Subsystem       sftp    internal-sftp

Match User filez
  PasswordAuthentication yes
  X11Forwarding no
  AllowTcpForwarding no
  AllowAgentForwarding no
  ChrootDirectory /sftp/%u
  ForceCommand internal-sftp

Notez ci-dessus

  • on permet une identification par mot de passe spécifiquement pour filez, afin de faciliter la vie des utilisateurs.
  • on interdit les autres usages de ssh, et on n'autorise que le sftp
  • internal-sftp est spécifié (à la place de la valeur par défaut de subsystem)
  • et on utilise un chroot afin de verrouiller l'utilisateur dans son dossier /sftp/filez/

Ensuite, on peut utiliser la commande sftp (qui se repose sur son $HOME/.ssh/config) ou bien un client interactif comme FileZilla plus accessible pour la plupart des utilisateurs. Pensez à bien sélectionner le protocole "SFTP" via l'icone de gauche dans la barre des icones, afin de configurer la connexion:

Quota

Il y a plusieurs façons de limiter la taille d'un dossier avec des quotas, la meilleure étant d'avoir une partition dédiée, physique ou virtuelle.

Partition virtuelle dans un fichier

On crée un fichier de 2GO que l'on formatte (spécifiez le chemin de stockage de ce fichier!)

dd if=/dev/zero of=sftp.img bs=1M count=2000
mkfs -t ext4  sftp.img

Et on le monte sur un "loop device" ainsi:

mkdir /sftp
mount -t auto -o loop sftp.img /sftp

Pour le retirer (ex. après usage):

umount /sftp
rm sftp.img

LVM

Si vous avez partitionné votre disque dur avec LVM, vous pourrez aisément modifier la taille de la partition (apt install lvm2):

# Créer un espace virtuel de 10GO nommé "sftpdata" dans le groupe de volumes "vg0"
lvcreate -L 10G -n sftpdata vg0

# On le formatte en ext3
mke2fs -j /dev/vg0/sftpdata

# On le monte (en général vous voudrez l'indiquer dans /etc/fstab pour que ce soit rémanent)
mount /dev/vg0/sftpdata /sftp

Ensuite on peut facilement étendre la taille du système de fichier virtuel associé:

# Ajouter 2GO d'espace au volume:
lvextend -L +2g /dev/vg0/sftpdata

# Puis on retaille le système de fichier:
resize2fs /dev/vg0/sftpdata
doc/formations/hebergement/serveur/transfert_de_fichiers.1670233782.txt.gz · Dernière modification : 2022/12/05 09:49 de jeremie