Ceci est une ancienne révision du document !
Table des matières
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
oursync
- 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