Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
doc:reseau:ssh:tp-sftp-via-openssh-server [09/07/2014 11:15] smolski |
doc:reseau:ssh:tp-sftp-via-openssh-server [12/01/2016 17:31] (Version actuelle) milou [Configuration] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
- | ====== SFTP Accès utilisateur via openssh-server ====== | + | ====== SFTP : Accès utilisateur via openssh-server ====== |
- | * Objet : Créer un accès SFTP via openssh en accès à distance | + | * Objet : Créer un accès SFTP-only via OpenSsh en accès à distance |
* Niveau requis : {{tag>débutant avisé}} | * Niveau requis : {{tag>débutant avisé}} | ||
- | * Commentaires : //Réaliser sur Debian Wheezy 7.5 ( kimsufi OVH )// | + | * Commentaires : //Réalisé sur Debian Wheezy 7.5 ( kimsufi OVH )// |
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !.]] :-) | ||
- | * Suivi : {{tag>à-tester à-placer}} | + | * Suivi : |
- | * Création par [[user>Galliezb]] 08/07/2014 | + | * Création par [[user>Galliezb]] le 08/07/2014 |
- | * Testé par [[user>Galliezb]] (07/07/2014) | + | * Testé par [[user>Galliezb]] le 08/07/2014 |
- | * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?id=9376 | Lien vers le forum concernant ce tuto]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | + | * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?id=9376 | ici]] ((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) |
===== Introduction ===== | ===== Introduction ===== | ||
- | Vous souhaitez bénéficier d'un accès FTP à votre serveur, configurable rapidement sans négliger la sécurité ? \\ | + | Vous souhaitez bénéficier d'un accès //à la// FTP à votre serveur, configurable rapidement sans négliger la sécurité ? \\ |
Voyons comment cela est possible. | Voyons comment cela est possible. | ||
===== Installation ===== | ===== Installation ===== | ||
- | Il vous faudra openssh-server d'installé sur le serveur. \\ | + | Il vous faudra le [[:doc:reseau:ssh:serveur|serveur ssh]] ''openssh-server'' d'installé sur le serveur. |
- | Soyez connecté en root, ou utilisez [[:doc:systeme:sudo |sudo]]. | + | |
- | <note>Je peux vérifier qu'open-ssh est installé via la commande [[:doc:systeme:apt:aptitude |aptitude search]]</note> | + | <note>Je peux vérifier qu'OpenSsh est installé via la commande [[:doc:systeme:apt:apt-cache |apt-cache policy openssh]]</note> |
- | Installation d'openssh-server | + | Installation d'OpenSsh-server |
<code root> | <code root> | ||
- | apt-get install openssh-server | + | apt-get update && apt-get install openssh-server |
</code> | </code> | ||
Ligne 31: | Ligne 30: | ||
===== Configuration ===== | ===== Configuration ===== | ||
- | La première chose dont nous allons avoir besoin, c'est d'un utilisateur neutre. \\ | + | === Création de l'utilisateur === |
- | Par neutre j'entends "un utilisateur qui accède au FTP et à rien d'autre" | + | La première chose dont nous allons avoir besoin, c'est d'un utilisateur neutre. |
+ | Par neutre j'entends « //un utilisateur qui accède au FTP et à rien d'autre// » | ||
Créons notre [[doc:systeme:adduser|utilisateur]]. | Créons notre [[doc:systeme:adduser|utilisateur]]. | ||
- | <note>Notre utilisateur test se nommera ici debora95dftp</note> | + | <note>Notre utilisateur test se nommera ici ''debora95dftp''</note> |
+ | Pour créer notre utilisateur et lui affecter un mot de passe : | ||
<code root> | <code root> | ||
adduser debora95dftp | adduser debora95dftp | ||
</code> | </code> | ||
- | Affectez-lui un mot de passe. \\ | ||
Si le répertoire : | Si le répertoire : | ||
<code>/home/debora95dftp/ </code> | <code>/home/debora95dftp/ </code> | ||
- | n'est pas présent, utilisez [[doc:systeme:mkdir | mkdir]] pour le créer ( //dans mon cas, c'est fait automatiquement// ) | + | n'est pas présent, utilisez [[doc:systeme:mkdir | mkdir]] pour le créer (//dans mon cas, c'est fait automatiquement//) |
- | \\ | + | |
+ | === Configuration d'OpenSSH === | ||
Modifions la configuration d'openssh pour permettre à cet utilisateur de se connecter. | Modifions la configuration d'openssh pour permettre à cet utilisateur de se connecter. | ||
Ligne 56: | Ligne 58: | ||
Voici les lignes à modifier : | Voici les lignes à modifier : | ||
- | <code bash> | + | <file config Extrait de sshd_config> |
port 22 | port 22 | ||
PermitRootLogin no | PermitRootLogin no | ||
- | AllowUsers Debora95DFTP VOTRE_AUTRE_UTILISATEUR | + | AllowUsers debora95dftp vos-éventuels-autres-utilisateurs |
[...] | [...] | ||
UsePAM yes | UsePAM yes | ||
Ligne 67: | Ligne 69: | ||
ForceCommand internal-sftp | ForceCommand internal-sftp | ||
AllowTCPForwarding no | AllowTCPForwarding no | ||
- | </code> | + | </file> |
<note important> | <note important> | ||
- | Le match user doit se trouver après le UsePAM. \\ | + | Le match user doit se trouver après le UsePAM. Dans le cas contraire, vous recevrez une erreur lors de la relance du service ssh. |
- | Dans le cas contraire, vous recevrez une erreur lors de la relance du service ssh. | + | |
</note> | </note> | ||
Explications : | Explications : | ||
- | * **port 22** : la valeur d'écoute du service ssh, pensez à changer de port, c'est mieux pour la sécurité. | + | * **''Port 22''** : la valeur d'écoute du service ssh, pensez à changer de port, c'est mieux pour la sécurité. |
- | * **PermitRootLogin** : on ne se connecte pas en root sur le serveur. On passe par un utilisateur qui lui passera en root. Toujours mieux pour la sécurité. | + | |
- | * **AllowUsers Debora95DFTP VOTRE_AUTRE_UTILISATEUR** : ici on autorise uniquement debora et l'utilisateur de connexion à se connecter via ssh | + | * **''PermitRootLogin no''** : on ne se connecte pas en root sur le serveur. On passe par un utilisateur qui lui passera en root. Toujours mieux pour la sécurité. |
- | * **Match user debora95dftp** : tout ce qui va suivre ne concerne que debora95dftp | + | |
- | * **ChrootDirectory /home/debora95dftp/**: debora sera cloisonnée dans son répertoire et ne pourra pas remonter aux répertoires parents. | + | * **''AllowUsers debora95dftp vos-éventuels-autres-utilisateurs''** : ici on autorise uniquement debora (et nos éventuels autres utilisateurs) à se connecter via ssh |
- | * **ForceCommand internal-sftp**: ([[http://www.openssh.com/cgi-bin/man.cgi?query=sshd_config |doc infos]] ) | + | |
- | * **llowTCPForwarding no** : voir lien ci-dessus | + | * **''Match user debora95dftp''** : tout ce qui va suivre ne concerne que debora95dftp |
+ | |||
+ | * **''ChrootDirectory /home/debora95dftp/''**: debora sera cloisonnée dans son répertoire et ne pourra pas remonter aux répertoires parents. | ||
+ | |||
+ | * **''ForceCommand internal-sftp''**: ([[http://www.openssh.com/cgi-bin/man.cgi?query=sshd_config |doc infos]] ) | ||
+ | |||
+ | * **''AllowTCPForwarding no''** : voir lien ci-dessus | ||
<note critique> | <note critique> | ||
- | **ATTENTION !** : Si vous ne disposez pas d'un second utilisateur, __vous n'aurez plus accès à votre machine distante__. \\ | + | **ATTENTION !** : Si vous ne disposez pas d'un second utilisateur, __vous n'aurez plus d'accès SSH à votre machine distante__. \\ |
En effet, par la suite debora n'aura plus accès au shell, et avec l'accès root coupé, vous allez faire comment ? | En effet, par la suite debora n'aura plus accès au shell, et avec l'accès root coupé, vous allez faire comment ? | ||
- | Soyez sûr d'avoir **VOTRE_AUTRE_UTILISATEUR** pouvant se connecter en ssh avant de continuer. \\ | + | Soyez sûr d'avoir configuré **un autre utilisateur** pouvant se connecter en SSH avant de continuer, ou laissez **PermitRootLogin yes** (//ce qui est vivement déconseillé//) |
- | Ou laissez **PermitRootLogin yes** (//ce qui est vivement déconseillé// ) | + | |
</note> | </note> | ||
Ligne 96: | Ligne 103: | ||
</code> | </code> | ||
- | Notre debora95dftp est désormais capable de se connecter via ssh à notre serveur. Mais bizarrement, la connexion SFTP échoue. \\ | + | Notre ''debora95dftp'' est désormais capable de se connecter via ssh à notre serveur. Mais bizarrement, la connexion SFTP échoue. \\ |
C'est à cause du chroot qui a besoin [[doc:systeme:droits-unix|des droits sur le répertoire en root]]. Nous allons donc les lui accorder ainsi : | C'est à cause du chroot qui a besoin [[doc:systeme:droits-unix|des droits sur le répertoire en root]]. Nous allons donc les lui accorder ainsi : | ||
Ligne 109: | Ligne 116: | ||
<code root> | <code root> | ||
- | mkdir /home/debora95dftp/writeable/ | + | mkdir /home/debora95dftp/writeable/</code> |
- | chown debora95dftp:debora95dftp /home/debora95dftp/writeable/ | + | <code root>chown debora95dftp:debora95dftp /home/debora95dftp/writeable/</code> |
- | chmod -R 755 /home/debora95dftp/writeable/ | + | <code root>chmod -R 755 /home/debora95dftp/writeable/ |
</code> | </code> | ||
Ligne 127: | Ligne 134: | ||
Cette commande m'as été fournie par un //girafe// ([[https://debian-facile.org/profile.php?id=302 |captnfab]]), elle fermera le shell dès que Debora se connectera en SSH. \\ | Cette commande m'as été fournie par un //girafe// ([[https://debian-facile.org/profile.php?id=302 |captnfab]]), elle fermera le shell dès que Debora se connectera en SSH. \\ | ||
- | Autrement dit, Debora n'aura accès à rien qui ne la concerne pas. ( //Elle pourra prendre la maison, les gosses, la voiture mais pas mon serveur !//) | + | Autrement dit, Debora n'aura accès à rien qui ne la concerne pas. (//Elle pourra prendre la maison, les gosses, la voiture mais pas mon serveur !//) |
===== Erreur durant l'apprentissage ===== | ===== Erreur durant l'apprentissage ===== | ||
Ligne 134: | Ligne 141: | ||
* Vérifier qu'[[:doc:reseau:iptables |iptables]] ne bloque pas le port que vous souhaitez utiliser | * Vérifier qu'[[:doc:reseau:iptables |iptables]] ne bloque pas le port que vous souhaitez utiliser | ||
- | * Vérifier que votre utilisateur est bien dans AllowUsers ( dans /etc/ssh/sshd_config ) | + | |
- | * Vérifier que le répertoire de l'utilisateur est bien en root | + | * Vérifier que votre utilisateur est bien dans ''AllowUsers'' (dans ''/etc/ssh/sshd_config'') |
+ | |||
+ | * Vérifier que le répertoire de l'utilisateur est bien en ''root'' | ||
<code user>ls -l /home/</code> | <code user>ls -l /home/</code> | ||
Ligne 142: | Ligne 151: | ||
<note> | <note> | ||
- | Vous pouvez commentez les lignes à partir du "Match user debora95dftp" et redémarrer le service ssh pour savoir s'il s'agit d'un problème de droit d'accès au répertoire | + | Vous pouvez commentez les lignes à partir du //''Match user debora95dftp''// et redémarrer le service SSH pour savoir s'il s'agit d'un problème de droit d'accès au répertoire. |
</note> | </note> | ||
===== Conclusion ===== | ===== Conclusion ===== | ||
- | Voici une façon simple et rapide de créer un accès SFTP qui vaut toujours mieux qu'un accès FTP ( les mots de passe ne transitent pas en clair sur le réseau ). \\ | + | Voici une façon simple et rapide de créer un accès SFTP qui vaut toujours mieux qu'un accès FTP (les mots de passe ne transitent pas en clair sur le réseau, et cela fait toujours un service de moins d'installé). |
- | Dans le cas ou vous souhaitez gérer davantage d'utilisateurs, visitez [[http://www.openssh.com/cgi-bin/man.cgi?query=sshd_config |cette page]]. \\ | + | |
+ | Dans le cas ou vous souhaitez gérer davantage d'utilisateurs, visitez [[http://www.openssh.com/cgi-bin/man.cgi?query=sshd_config |cette page]]. | ||
En créant des groupes et en modifiant la configuration de sshd, vous pouvez gérer le tout assez simplement. | En créant des groupes et en modifiant la configuration de sshd, vous pouvez gérer le tout assez simplement. | ||