{{tag>wordpress}}
====== 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 [[https://www.ipswitch.com/resources/best-practices/sftp-server|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_preparation_du_systeme_de_fichiers|Préparation du système de fichiers]]
* [[#la_configuration_du_serveur_ssh|Configuration du serveur SSH]]
===== 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 =====
* [[https://www.linuxtechi.com/configure-sftp-chroot-debian10/]]
* [[https://ethitter.com/2016/05/restricted-sftp-access-in-debian/]]
* [[https://man.openbsd.org/sshd_config#Subsystem|Man sshd_config(5)]]