qdsqsdqds
Pour pouvoir établir une connexion en SFTP, si SSH est activé, le serveur FTP ne rencontrera pas de problème particulier, cependant pour une connexion en FTPS il faudra au préalable créer des certificats.
Configuration une connexion en SFTP
Si SSH est activé sur votre serveur il ne devrait y avoir aucun problème particulier pour se connecter en SFTP via FilleZilla par exemple.
Il est cependant important de préciser qu’avec les droits par défaut les répertoires de tous les utilisateurs seront accessibles en lecture et vous pourrez remonter jusqu’au répertoire racine
SFTP et FTPS étant deux choses bien distinctes, un serveur FTP n’est pas nécessaire pour se connecter en SFTP
Empêcher la connexion en SFTP
@ TODO
Configuration vsFTPd pour une connexion en FTPS
Création du certificat pour vsFTPD
Pour créer un certificat :
# /usr/bin/openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout /etc/ssl/private/vsftpd.pem -out /etc/ssl/private/vsftpd.pem |
-x509
: le type de certificat-req
: Nouvelle requête-days
: Validité du certificat en nombre de jours-in
: Indique le fichier de la requête-signkey
: Indique la clé à utiliser-out
: Indique le fichier de sortie-req
: Gestionnaire de requête-new
: Nouvelle requête-key
: Indique la clé à utiliser-out
: Indique le fichier de sortie
Résultat de la commandes et procédure
Generating a 1024 bit RSA private key |
Il est important de correctement renseigner le FQDN de votre serveur, sans quoi le certificat sera considéré comme suspect et votre client FTP, comme FileZilla par exemple vous le signalera.
Question : Comment faire Lorsque le serveur héberge plusieurs site ? Existe-t-il un nom générique ?
Notes : La bannière d’accueil sur le client FTP (comme fileezilla) n’apparaît plus en TLS
Configuration du fichier /etc/vsftpd
Ajouter les éléments suivant (ou rectifier-les)
# Autoriser les connexion en FTPS |
Incompatibilités avec le pare-feu
Si vous utiliser un firewal qui fonctionne sur liste blanche vous devriez avoir ce genre d’erreur :
Statut : Résolution de l'adresse de ec****ne.fr |
(Note : le serveur à l’adresse IP 198.xxx.xxx.xxx a ouvert le port 51*256+40=13096 pour les données)
On pourrait éventuellement autoriser les adresses IP, ou une plage à se connecter, mais il n’est pas pertinent de proceder de cette façon là :
iptables -A INPUT -s @IPkiSeConnecte -j ACCEPT |
Détails du problème
Il faut savoir que que pour établir une connexion en FTPS, le serveur FTP à besoin d’un port aléatoire, de ce fait il faudrait ouvrir une large plage de port pour pouvoir utiliser le FTPS, ce qui, à mon avis, n’est pas cohérent avec le principe de sécurité.
Étant donné que FTP utilise un port secondaire dynamique pour les flux de données et même si de nombreux pare-feu ont été conçus pour surveiller les messages de contrôle du protocole FTP afin de déterminer les connexions de données secondaires à autoriser, ils ne pourront pas déterminer le numéro de port TCP d’une connexion négocié entre le client et le serveur FTP si la connexion de contrôle FTP est chiffrée à l’aide de TLS/SSL.
Par conséquent, dans de nombreux réseaux protégés par un pare-feu, un déploiement FTPS échouera alors qu’un déploiement FTP non chiffré fonctionnera. Ce problème peut être résolu en utilisant un nombre limité de ports pour les données et en configurant le pare-feu pour ouvrir ces ports.
Solution pour faire fonctionner le FTPS
J’ai trouvé une solution pour utiliser le FTPS sans ouvrir une plage trop grande (pour VSftpd)
Config de vsftp.conf
, rajouter par exemple un port range de 10 ports:
pasv_enable=Yes |
Dans iptables, autoriser la plage :
iptables -I INPUT -p tcp --destination-port 10090:10100 -j ACCEPT |
Piste de réflexion
Utiliser SSH
- Facile, pas de serveur à configurer (sauf SSH éventuellement)
- Enlever le droit r sur other à toute l’arborescence et les sous dossier
Utiliser FTPS
- Les Accès et droits sont directement paramétrables dans le serveur FTP
- Ne supprimera pas le SFTP (SSH)
- Comment uniquement désactiver SFTP ? Possible
- Fichier de configuration
/etc/ssh/sshd_config
Documentation
http://slacksite.com/other/ftp.html
https://en.wikipedia.org/wiki/FTPS#Firewall_incompatibilities
https://www.it-connect.fr/quelle-est-la-difference-entre-ftps-et-sftp
https://craym.eu/tutoriels/ftp/configuration_filezilla.html#SFTP_filezilla
https://serverfault.com/questions/421161/how-to-configure-vsftpd-to-work-with-passive-mode(modifié)