Table of Contents

Céer un serveur SFTP pour Wordpress

Donner accès à un système de fichiers est parfois nécessaire pour transférer des fichiers vers un serveur en ligne.

Un serveur SFTP permet de donner ce type d'accès limité uniquement au transfert de fichiers et de manière sécurisée.

La mise en place d'un serveur SFTP se fait en deux étapes principales :

La préparation du système de fichiers

Pour cela un utilisateur spécifique est créé sur le système où seront transférés les fichiers. Le mot de passe de l'utilisateur est celui qui sera utilisé par le client sftp pour se connecter et avoir accès au système de fichiers.

L'accès au système est limité ici à un seul dossier.

Ce dossier devra appartenir à l'utilisateur root et pourra être par la suite bind mounté à la destination finale. Ici, par exemple, nous souhaitons mettre à disposition un dossier Wordpress afin d'y transférer des développements spécifiques.

sudo adduser sftpuser
sudo mkdir /home/sftpuser/wp
sudo chown root: /home/sftpuser/wp
sudo mount --bind /home/sysadm/service.wordpress/wp/ /home/sftpuser/wp

La configuration du serveur SSH

La procédure est assez simple et consiste en l'activation du processus intégré internal-sftp ce qui simplifie la configuration avec la directive ChrootDirectory qui emprisonnera l'utilisateur au dossier indiqué en paramètre.

# /etc/ssh/sshd_config
 
# override default of no subsystems
# Subsystem      sftp    /usr/lib/openssh/sftp-server
Subsystem       sftp    internal-sftp -f AUTH -l INFO
 
Match Group sftp_users
X11Forwarding no
AllowTcpForwarding no
ChrootDirectory /home/sftpuser/wp
ForceCommand internal-sftp
PasswordAuthentication yes

Références