Vous êtes ici : Accueil > Administration réseaux > Installer facilement un serveur SFTP

Installer facilement un serveur SFTP

Dans cet article, nous allons voir comment installer simplement un serveur SFTP. Pour ma part, je l'ai installé sur un serveur Debian Squeeze mais cela est facilement adaptable à d'autres distribution GNU/Linux.

Installation du serveur SSH :

Pour installer le serveur SSH rien de plus simple :

# apt-get install openssh-server

Sécurisation du serveur SSH :

Modifier le port d'écoute :

La première chose à faire lors de l'installation d'un serveur SSH, est de changer le port d'écoute du serveur. Localisez la ligne suivant dans le fichier /etc/ssh/sshd_config (généralement située au début de celui-ci) :

Port 22

Remplacer la valeur du port 22 par 222 par exemple.

Ce changement permet de se prémunir des attaques de robots qui vont essayé de forcer votre serveur SSH sur le port par défaut qui est le 22.

Interdire les connexions root :

Une sécurisation supplémentaire est d'interdire les connexions directes pour l'utilisateur root.

Cela se passe dans le même fichier que précédemment à l'aide de la ligne suivante :

PermitRootLogin yes

Changer la valeur yes par no.

Cela ajoute une sécurité supplémentaire car même si l'accès à votre serveur SSH est forcé, il le sera à l'aide d'un utilisateur normal. Il faudra donc que le pirate arrive trouver le mot de passe root afin de bénéficier d'un accès total au serveur.

Enregistrez le fichier modifié et redémarrez le serveur ssh avec la commande :

# /etc/init.d/ssh restart

Essayez ensuite de vous connecter à votre serveur à l'aide de la commande :

$ ssh votre_utilisateur@votre_serveur -p votre_numéro_de_port

Si la connexion se passe sans soucis, vous pouvez passez à l'étape suivante, sinon vérifiez vos paramètres

Configuration du serveur SFTP :

Nous allons maintenant configurer le serveur SFTP. Pour cela, éditez à nouveau le fichier /etc/ssh/sshd_config et rajoutez à la fin de celui les lignes suivantes :

Subsystem sftp internal-sftp
       Match group ftp
       ChrootDirectory /home/ftp/
       AllowTCPForwarding yes

Explications :

  • Subsystem sftp internal-sftp : permet de spécifier que l'on veut utiliser SFTP
  • Match group ftp : autorise l'accès qu'aux utilisateurs appartenant au groupe ftp
  • ChrootDirectory /home/ftp/ : spécifie la racine du FTP
  • AllowTCPForwarding yes : autorise la redirection des ports TCP

Le fait de "chrooter" le répertoire de destination du FTP permet de cloisonner ce répertoire est ainsi de l'isoler du reste du système. Pour l'utilisateur c'est comme s'il n'y avait rien d'autre sur le serveur. Si cette option n'est pas présente, lors de la connexion, un utilisateur pourra remonter à la vraie racine du site (ce qui pose un problème de sécurité évident).

Création du répertoire racine du FTP :

Nous allons maintenant créer le répertoire racine du FTP.

# mkdir -p /home/ftp

Vous pouvez maintenant créer l'arborescence voulu pour votre FTP.

Il faut ensuite appliquer au répertoire de destination les droits adéquats. Ces droits correspondent en fait à ce que vous voulez permettre à vos utlisateurs. Pour ma part, je permettrait juste à mes utilisateurs de pouvoir récupérer les documents présents sur le FTP et de ne pas en créés. Ceci afin de pouvoir contrôler un minimum son contenu. Si cela n'est pas votre cas pour vous vous pouvez bien entendu adapter ces droits.

# chmod 605- R /home/ftp/

Il nous reste maintenant a redémarrer le serveur SSH afin de prendre en compte toute la configuration :

# /etc/init.d/ssh restart

Ajout des utilisateurs dans le groupe ftp :

Pour ajouter des utilisateurs dans le groupe ftp, il faut bien sûr, dans un premier temps créé ce groupe :

# groupadd ftp

Nous allons ensuite rajouter les utilisateurs dans le groupe ftp :

# gpasswd -a votre_utilisateur ftp

Test de la configuration :

Utilisez votre client FTP favori pour tester le bon fonctionnement du FTP. Veillez à bien sélectionner SFTP dans le protocole et indiquez le port configuré pour votre serveur SSH (222 dans cet article).

Normalement, vous ne devriez pas rencontrer de problèmes particuliers.

J'espère avoir été assez clair, et comme d'habitude si vous avez des questions ou des remarques n'hésitez pas!!