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 /sftp/volume.img
de 5GO que l'on va utiliser comme une partition virtuelle:
mkdir /sftp
dd if=/dev/zero of=/sftp/volume.img bs=1G count=5 mkfs -t ext4 /sftp/volume.img
On va le monter en tant que "loop device":
mount -t auto -o loop /sftp/volume.img /sftp
Désormais /sftp
montre le système de fichier à l'intérieur du fichier /sftp/volume.img
.
Le fichier image semble avoir disparu car on l'a monté sur le dossier qui le contient lui-même !
Pour le retirer (ex. après usage):
umount /sftp rm /sftp/volume.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