Configurez SFTP et empêchez SSH sur Ubuntu 20.04. SFTP (Secure File Transfer Protocol), un moyen sécurisé de transférer des fichiers vers des serveurs à l'aide de connexions SSH cryptées. Tous les serveurs avec SSH auront SFTP activé par défaut.
Dans ce guide, vous allez apprendre à limiter l'accès SFTP à un répertoire pour un utilisateur particulier et à empêcher l'accès SSH.
Cette configuration est testée sur une machine virtuelle exécutant le système d'exploitation Ubuntu 20.04. Ce tutoriel devrait donc fonctionner sur tous les serveurs avec Ubuntu.
Prérequis
Accès SSH au serveur avec privilèges sudo.
Étape 1 :Créer un nouvel utilisateur
Créez un nouvel utilisateur disposant d'un accès SFTP pour effectuer certaines actions sur un répertoire particulier.
sudo adduser username
Vous serez invité à configurer un mot de passe et d'autres détails facultatifs que vous pouvez configurer ou ignorer.
Si vous souhaitez utiliser une connexion basée sur des clés SSH, vérifiez comment configurer l'accès SSH sur votre Ubuntu.
Étape 2 :Configurer l'accès SFTP
Pour configurer l'accès SFTP, vous devez configurer les autorisations de répertoire correctes. Le répertoire parent du nouveau répertoire que vous êtes sur le point de créer doit appartenir à root et à aucun autre utilisateur.
Par exemple, si vous allez créer un répertoire nommé /sftp/folder
, le sftp
le répertoire doit appartenir à root et le folder
le répertoire doit appartenir à l'utilisateur particulier qui y accède.
Créez des répertoires.
sudo mkdir -p /sftp/folder
Configurez les autorisations correctes.
sudo chmod 755 /sftp sudo chown root:root /sftp sudo chmod -R 755 /sftp/folder sudo chown username:username /sftp/folder
Étape 3 :Empêcher l'accès SSH et restreindre l'accès SFTP
Nous pouvons maintenant modifier la configuration SSH pour empêcher l'accès SSH pour l'utilisateur et restreindre l'accès de l'utilisateur uniquement au répertoire particulier.
Modifiez votre fichier de configuration SSH.
sudo nano /etc/ssh/sshd_config
Ajoutez ce qui suit à la fin du fichier.
Match User username ForceCommand internal-sftp PasswordAuthentication yes ChrootDirectory /sftp PermitTunnel no AllowAgentForwarding no AllowTcpForwarding no X11Forwarding no
Match User
indique au serveur SSH d'appliquer les commandes suivantes uniquement à l'utilisateur spécifié.ForceCommand internal-sftp
force le serveur SSH à exécuter le serveur SFTP lors de la connexion et empêche l'accès SSH.PasswordAuthentication yes
autorise l'authentification par mot de passe pour cet utilisateur. Si vous utilisez une connexion basée sur des clés SSH, vous pouvez empêcher l'authentification par mot de passe en définissant la valeur surno
.ChrootDirectory /sftp
garantit que l'utilisateur ne sera pas autorisé à accéder à quoi que ce soit au-delà du/sftp
répertoire.AllowAgentForwarding no
,AllowTcpForwarding no
, etX11Forwarding no
désactive le transfert de port, le tunneling et le transfert X11, respectivement.
Tapez CTRL + X
suivi de Y
puis ENTER
pour enregistrer et quitter le fichier.
Maintenant, les configurations sont en place, ce qui autorise uniquement l'accès SFTP et empêche la connexion SSH pour l'utilisateur.
Redémarrez le service SSH pour que les modifications prennent effet.
sudo systemctl restart sshd
Pour plus de détails sur la configuration de l'accès pour plusieurs noms d'utilisateur, vous pouvez suivre ce guide de configuration de Chroot.
Étape 4 :Vérifier la configuration SFTP
Essayez de vous connecter au serveur en utilisant vos informations SFTP avec la commande SSH. L'accès à SSH vous sera refusé.
ssh [email protected]_ip
Vous recevrez une sortie similaire à celle ci-dessous.
Output This service allows sftp connections only. Connection to server_ip closed.
Vérifiez maintenant à l'aide de la commande sftp.
sftp [email protected]_ip
Vous devriez maintenant être connecté au serveur et avoir accès au répertoire que vous avez configuré précédemment.
Output Connected to server_ip sftp>
Utilisez le ls
commande pour lister les répertoires vous verrez le répertoire nommé folder
vous avez créé et configuré des autorisations.
sftp> ls
Output folder
Conclusion
Vous avez maintenant appris à configurer SFTP et à empêcher l'accès SSH à l'utilisateur sur un répertoire spécifique.
Merci pour votre temps. Si vous rencontrez un problème ou des commentaires, veuillez laisser un commentaire ci-dessous.