SFTP signifie "Protocole de transfert de fichiers SSH". SFTP est un protocole de transfert de fichiers utilisé pour transférer des fichiers entre deux serveurs. Par défaut, SFTP vous permet de transférer des fichiers sur tous les serveurs sur lesquels l'accès SSH est activé. Cependant, il accordera l'accès au terminal à tous les utilisateurs, ce qui n'est pas recommandé pour des raisons de sécurité.
Dans ce didacticiel, nous allons apprendre à créer un utilisateur SFTP sans accès au shell afin que l'utilisateur n'ait qu'un accès SFTP et non un accès SSH.
Prérequis
- Un nouveau VPS CentOS 8 sur la plate-forme cloud d'Atlantic.net.
- Un mot de passe root configuré sur votre serveur.
Étape 1 - Créer un serveur cloud Atlantic.Net
Tout d'abord, connectez-vous à votre serveur Atlantic.Net Cloud. Créez un nouveau serveur en choisissant CentOS 8 comme système d'exploitation avec au moins 1 Go de RAM. Connectez-vous à votre serveur cloud via SSH et connectez-vous à l'aide des informations d'identification mises en évidence en haut de la page.
Une fois que vous êtes connecté à votre serveur CentOS 8, exécutez la commande suivante pour mettre à jour votre système de base avec les derniers packages disponibles.
dnf update -y
Étape 2 - Créer un utilisateur SFTP
Tout d'abord, vous devrez créer un nouvel utilisateur avec uniquement un accès au transfert de fichiers. Vous pouvez créer un nouvel utilisateur nommé sftp à l'aide de la commande suivante :
adduser sftp
Ensuite, définissez le mot de passe pour l'utilisateur ci-dessus :
passwd sftp
Fournissez votre mot de passe souhaité et appuyez sur Entrée.
Étape 3 - Créer une structure de répertoire pour les transferts de fichiers
Ensuite, vous devrez créer une structure de répertoires pour le transfert de fichiers afin de restreindre l'accès SFTP à un répertoire.
Vous pouvez créer un nouveau répertoire avec la commande suivante :
mkdir -p /opt/sftp/public
Ensuite, définissez la propriété du répertoire /opt/sftp/ sur root :
chown root:root /opt/sftp
Ensuite, donnez les autorisations appropriées avec la commande suivante :
chmod 755 /opt/sftp
Ensuite, définissez la propriété du répertoire public sur l'utilisateur sftp :
chown sftp:sftp /opt/sftp/public
Étape 4 – Configurer SSH pour SFTP
Ensuite, vous devrez configurer SSH pour restreindre l'accès à un répertoire et interdire l'accès au terminal à l'utilisateur sftp.
Vous pouvez le faire en éditant le fichier /etc/ssh/sshd_config :
nano /etc/ssh/sshd_config
Ajoutez les lignes suivantes à la fin du fichier :
Match User sftp ForceCommand internal-sftp PasswordAuthentication yes ChrootDirectory /opt/sftp PermitTunnel no AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no
Enregistrez et fermez le fichier lorsque vous avez terminé. Redémarrez ensuite le service SSH pour appliquer les modifications :
systemctl restart sshd
Étape 5 – Vérifier SFTP
Maintenant, vérifiez l'accès SFTP avec la commande suivante :
sftp [email protected]
Il vous sera demandé de fournir un mot de passe comme indiqué ci-dessous :
[email protected]'s password:
Fournissez votre mot de passe utilisateur SFTP et appuyez sur Entrée. Une fois connecté, vous devriez voir la sortie suivante :
Connected to your-server-ip. sftp>
Ensuite, exécutez la commande suivante pour lister le répertoire :
sftp> ls
Vous devriez voir le répertoire public dans la sortie suivante :
public sftp>
Ensuite, vérifiez si vous pouvez établir une connexion SSH ou non :
ssh [email protected]
Il vous sera demandé de fournir un mot de passe comme indiqué ci-dessous :
[email protected]'s password:
Fournissez votre mot de passe utilisateur SFTP et appuyez sur Entrée. Vous devriez voir le résultat suivant :
This service allows sftp connections only. Connection to your-server-ip closed.
La sortie ci-dessus indique que l'utilisateur sftp ne peut plus accéder au shell du serveur via SSH.
Conclusion
Toutes nos félicitations! Vous avez configuré avec succès SFTP sans accès au shell sur CentOS 8. Vous pouvez également utiliser cette configuration pour plusieurs utilisateurs et répertoires. Commencez dès aujourd'hui avec SFTP sur un VPS d'Atlantic.Net !