Maj sections SFTP
This commit is contained in:
parent
47fa26b44f
commit
21a0f6112f
|
@ -512,9 +512,7 @@ Si l'on peut lire le contenu du répertoire, alors la connexion est fonctionnell
|
|||
|
||||
## SFTP (FTP over SSH)
|
||||
|
||||
Note : A Evolix, nous ne proposons pour l'instant pas, sauf exception, les protocoles SFTP et FTPS.
|
||||
|
||||
[OpenSSH propose aussi le protocole SFTP](HowtoOpenSSH#sftp).
|
||||
A Evolix, sauf exception, nous préférons utiliser OpenSSH, [qui propose lui aussi le protocole SFTP](HowtoOpenSSH#sftp).
|
||||
|
||||
Généralement, on souhaite conserver un service FTP "classique" en parallèle de SFTP.
|
||||
On met donc sa configuration dans un VirtualHost, pour pouvoir écouter sur un deuxième port :
|
||||
|
@ -549,7 +547,12 @@ LoadModule mod_sftp.c
|
|||
</VirtualHost>
|
||||
~~~
|
||||
|
||||
Les clés SSH doivent être au format de compatibilité défini dans la RFC 4716, qui n'est pas le format par défaut de SSH.
|
||||
Note : Les clés publiques SSH des comptes SFTP dans le répertoire indiqué dans la directive [`SFTPAuthorizedUserKeys`](http://www.proftpd.org/docs/contrib/mod_sftp.html#SFTPAuthorizedUserKeys) doivent être au format de la RFC 4716, qui n'est pas le format par défaut de SSH.
|
||||
|
||||
|
||||
**Si votre version de ProFTPd est antérieur à la 1.3.7 :**
|
||||
|
||||
Les clés SSH indiquées dans ler directives `SFTPHostKey` doivent être au format de la RFC 4716, qui n'est pas le format par défaut de SSH.
|
||||
|
||||
Pour créer les clés privées compatibles côté serveur :
|
||||
|
||||
|
@ -558,52 +561,55 @@ Pour créer les clés privées compatibles côté serveur :
|
|||
# ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key -t ecdsa -N '' -m PEM
|
||||
~~~
|
||||
|
||||
Testez la configuration et rechargez la configuration :
|
||||
|
||||
### Ajouter un compte SFTP avec clé SSH
|
||||
|
||||
Suivre d'abord la section [Ajouter un compte](#ajouter-un-compte).
|
||||
|
||||
Puis, convertir la clé publique au format de la RFC 4716 et ajuster les droits :
|
||||
|
||||
~~~{bash}
|
||||
$ ssh-keygen -e -f <PUBLIC_KEY> > /etc/proftpd/sftp.authorized_keys/<FTP_USER>
|
||||
$ chmod 600 /etc/proftpd/sftp.authorized_keys/<FTP_USER>
|
||||
~~~
|
||||
|
||||
Dans la configuration SFTP (`/etc/proftpd/conf.d/sftp.conf`), ajouter le nouvel utilisateur à la directive `AllowUser` .
|
||||
|
||||
Tester la configuration et la recharger :
|
||||
|
||||
~~~{bash}
|
||||
# proftpd -t && systemctl reload proftpd.service
|
||||
~~~
|
||||
|
||||
Testez la connexion via un mot de passe :
|
||||
Tester la connexion via un mot de passe :
|
||||
|
||||
~~~{bash}
|
||||
# host=... # IP ou domaine
|
||||
# lftp $host
|
||||
lftp host:~> set ftp:ssl-force true
|
||||
lftp host:~> login $ftp_user
|
||||
# lftp <HOST>
|
||||
lftp <HOST>:~> set ftp:ssl-force true
|
||||
lftp <HOST>:~> login <FTP_USER>
|
||||
Mot de passe :
|
||||
lftp $ftp_user@host:~> ls
|
||||
lftp <FTP_USER>@<HOST>:~> ls
|
||||
~~~
|
||||
|
||||
Si l'on peut lire le contenu du répertoire, alors la connexion est fonctionnelle.
|
||||
|
||||
|
||||
### Authentification par clé SSH
|
||||
### Troobleshooting clés SSH
|
||||
|
||||
On peut gérer des clés SSH avec la directive [SFTPAuthorizedUserKeys](http://www.proftpd.org/docs/contrib/mod_sftp.html#SFTPAuthorizedUserKeys) et vérifier que la directive suivante contient bien l'option `publickey` :
|
||||
* Dans la configuration SFTP (`/etc/proftpd/conf.d/sftp.conf`), vérifier que la directive `SFTPAuthMethods` inclue `publickey` et que l'utilisateur est dans la liste des `AllowUser`.
|
||||
|
||||
* Vérifier les permission du répertoire des clés publique SSH :
|
||||
|
||||
~~~
|
||||
SFTPAuthMethods password publickey
|
||||
SFTPAuthorizedUserKeys file:/etc/proftpd/sftp.authorized_keys/%u
|
||||
chmod 700 /etc/proftpd/sftp.authorized_keys/
|
||||
~~~
|
||||
|
||||
Attention, la clé publique à mettre dans le fichier doit être au format RFC4716, on peut convertir une clé ainsi :
|
||||
* Les fichiers de clés doivent être accessibles par l'utilisateur sous lequel ProFTPd tourne. Si les directives `User` et/ou `Group` sont utilisées, il faut ajuster les droits. Par exemple, avec `User=proftpd` et `Group=proftpd`, il faut (au minimum) que le dossier soit en `root:proftpd 0750` et les fichiers soient en `root:proftpd 0640`.
|
||||
|
||||
* Les clés publiques SSH des comptes SFTP dans le répertoire indiqué dans la directive [`SFTPAuthorizedUserKeys`](http://www.proftpd.org/docs/contrib/mod_sftp.html#SFTPAuthorizedUserKeys) doivent être au format de la RFC 4716, qui n'est pas le format par défaut de SSH.
|
||||
|
||||
~~~{bash}
|
||||
$ ssh-keygen -e -f ~/.ssh/id_rsa.pub
|
||||
~~~
|
||||
* Si votre version de ProFTPd est antérieur à la 1.3.7, les clés SSH indiquées dans ler directives `SFTPHostKey` doivent être au format de la RFC 4716, qui n'est pas le format par défaut de SSH.
|
||||
|
||||
Il faut ajuster les droits :
|
||||
|
||||
~~~
|
||||
# chmod 700 /etc/proftpd/sftp.authorized_keys/
|
||||
# chmod 600 /etc/proftpd/sftp.authorized_keys/foo
|
||||
~~~
|
||||
|
||||
> Les fichiers de clés doivent être accessible par l'utilisateur sous lequel proftpd tourne, donc si il y a une directive User il faut ajuster les droits, par exemple avec `User=proftpd` et `Group=proftpd` dans la config proftpd, il faut (au minimum) que le dossier soit en `root:proftpd 0750` et les fichiers soient en `root:proftpd 0640`.
|
||||
|
||||
Enfin vérifier que la directive SFTPAuthMethods inclus publickey et que l'utilisateur soit dans la liste des AllowUser
|
||||
|
||||
## Logs
|
||||
|
||||
|
|
Loading…
Reference in a new issue