Ftps très très lent

Bonjour,
j’ai un problème!!! Je suis passé en FTPS pour sécurisé l’accès FTP a mon serveur, mais c’est super super lent. Avant c’était quasiment instantanée et maintenant rien que pour envoyer un fichier ça prend 3 pige et ça rend les pages inutilisables de mon site pendant ce temps et ça va pas.
Quelqu’un sait il comment régler ce problème ? Limite j’ai envie d’enlevé et de revenir comme avant

Bonjour,

Au pif, ce qui peut provoquer des lenteurs sur ftp, as-tu verifié que tu es dans le bon mode entre actif et passif, as-tu ouvert les ports correspondants. La lenteur peut venir d’un port qui n’est plus ouvert et donc ftp ne voit pas tout de suite qu’il doit s’y prendre autrement.

Sinon, tu as peut-être ton accès à Internet qui est ralenti, as-tu essayé d’utiliser d’autres protocoles sur le même serveur et le même protocole sur d’autres serveurs ?

Pour finir, as-tu essayé le sftp qui, je trouve, est un peu plus facile à mettre en place ?

Bonjour,

Ce n’est pas très facile de répondre sans avoir de détails.

Cependant, les symptômes que tu décris ressemblent fortement à une incapacité à établir la connexion de données du protocole FTP/FTPS.
Or un problème très fréquent vis à vis du FTPS est décrit ici . Accompagné de la solution.


AnonymousCoward

Je ne suis pas chez moi pardon pour la mise en page si un modo passe autrement je modifie ce soir.

voici ma conf iptable:

#!/bin/sh

# INPUT ENTREE
# OUTPUT SORTIE

# On vide iptables(flush)
iptables -t filter -F
iptables -t filter -X

# On bloque toute les connexion
iptables -P OUTPUT DROP
iptables -P INPUT DROP
iptables -P FORWARD DROP

# On autorise les connexions déjà établie
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A OUTPUT -m state --state RELATED,ESTABLISHED -j ACCEPT

############################### 
# On ouvre les ports utilises # 
############################### 

#### RTM OVH :
iptables -t filter -A INPUT -p udp --dport 6100 -j ACCEPT 
iptables -t filter -A OUTPUT -p udp --dport 6100 -j ACCEPT 
iptables -t filter -A INPUT -p udp --dport 6200 -j ACCEPT 
iptables -t filter -A OUTPUT -p udp --dport 6200 -j ACCEPT 

#### DNS : 
iptables -t filter -A INPUT -p tcp --dport 53 -j ACCEPT 
iptables -t filter -A OUTPUT -p tcp --dport 53 -j ACCEPT
iptables -t filter -A INPUT -p udp --dport 53 -j ACCEPT 
iptables -t filter -A OUTPUT -p udp --dport 53 -j ACCEPT 

# On autorise le SSH (à adapter suivant votre cas)
iptables -t filter -A INPUT -p tcp --dport 28655 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 28655 -j ACCEPT

# On autorise le loop-back (localhost)
iptables -t filter -A INPUT -i lo -j ACCEPT
iptables -t filter -A OUTPUT -o lo -j ACCEPT

# On autorise le ping
iptables -t filter -A INPUT -p icmp -j ACCEPT
iptables -t filter -A OUTPUT -p icmp -j ACCEPT

# NTP (pour avoir un serveur à l'heure)
iptables -t filter -A OUTPUT -p udp --dport 123 -j ACCEPT

# HTTP 443=HTTPS
iptables -t filter -A OUTPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 443 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 443 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 8443 -j ACCEPT

#Passive port ftps
# Autorisation port 56000 a 57000 pour monter des ftps
iptables -A INPUT -p tcp -m state -m tcp --dport 56000:57000 --state NEW -j ACCEPT
iptables -A INPUT -p udp -m state -m udp --dport 56000:57000 --state NEW -j ACCEPT

# FTP
iptables -t filter -A OUTPUT -p tcp --dport 21 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 20 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 20 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 21 -j ACCEPT
iptables -t filter -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# MAIL
## SMTP
iptables -t filter -A INPUT -p tcp --dport 25 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 25 -j ACCEPT

## POP3
iptables -t filter -A INPUT -p tcp --dport 110 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 110 -j ACCEPT

## IMAP
iptables -t filter -A INPUT -p tcp --dport 143 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 143 -j ACCEPT

## POP3S
iptables -t filter -A INPUT -p tcp --dport 995 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 995 -j ACCEPT

# GPS
iptables -t filter -A INPUT -p tcp --dport 13242 -j ACCEPT

# Minecraft - Rcon 25567
iptables -t filter -A INPUT -p tcp --dport 25565 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 25565 -j ACCEPT
iptables -t filter -A INPUT -p tcp --dport 25567 -j ACCEPT
iptables -t filter -A OUTPUT -p tcp --dport 25567 -j ACCEPT

La conf de proftpd:

TLSEngine on
TLSRequired on
TLSRSACertificateFile /etc/proftpd/ssl/proftpd-rsa.pem
TLSRSACertificateKeyFile /etc/proftpd/ssl/proftpd-key.pem
TLSLog /var/log/proftpd/tls.log
PassivePorts 56000 57000
                            

Voilà ce que je peux déjà donné depuis mon téléphone.

C’est depuis le je fais du ftps que c’est lent avant j’avais vraiment aucun problème de lenteur d’où ma supposition que ça vient de la.
Pour le lien je ne comprends pas bien l’anglais

Bonjour LeRoutard

Comme demandé, j’ai modifié la mise en forme de ton message.

C’est quoi le mode entre actif ou passif ? J’ai lu que c’est soit le serveur qui gère le truck soit le client FTP, mais j’ai pas trop comprit c’est quoi le mieux car dans FlashFXP j’ai:
FTP que j’utilise plus
SFTP over SSH que j’utilise pas
FTP using Implicit SSL
FTP using Explicit SSL (Auth SSL)
FTP using Explicit SSL (Auth TLS)

Les 3 dernier fonctionnent par contre le dernier est vraiment le plus lent des 3.
D’après ce que j’ai comprit du lien, le fait de crypter le FTP gène la connexion, mais je sais pas trop comment régler le problème si c’est vraiment ça.

Salut;

As tu testé:

  • En désactivant ton firewall
  • En désactivant “PassivePorts”

et en redémarrant Proftpd pour prise en charge des modifs.

Ps: Sur mon dédié OVH, pas de “PassivePorts” d’activé, ni de règles firewall non plus d’ailleurs, et je n’ai pas constaté de ralentissements en SSL/TLS par rapport au Sftp, même si je préfère l’usage du Sftp.

A+++

Mais si je désactive les PassivePorts, ça ne fonctionne pas vu que je bloque tout les ports ? En tout qu’a ça n’a pas fonctionné quand j’ai essayé. Qu’est ce que firewall ?

Salut,

Tes règles iptables

J’avais un doute, moi je dis juste iptable^^. Ca serait donc iptable qui fait chier ? Je trouve pas comment régler.
J’ai essayé un peut le SFTP et ça ne LAG PAS DU TOUT, c’est a en déprimer^^.

Sinon on peut faire du sftp avec des utilisateurs virtuel stocké en bdd ? Car la ca utilisé des comptes linux.

https://doc.ubuntu-fr.org/mysecureshell_sftp-server#gestion_des_utilisateurs:

Ne gère pas les utilisateurs virtuels, ce qui est logique en SSH. Un utilisateur virtuel, c’est un utilisateur qui ne possède pas de dossier personnel dans le répertoire “/home”. Un utilisateur virtuel peut être lié à un autre compte déjà existant et télécharger vers lui des données, mais ne pourra pas en envoyer sur le serveur sftp, peu importe les droits qu’on lui attribuera au moyen de la configuration de MySecureShell. Pour des droits d’accès complet, il faut absolument que l’utilisateur possède son répertoire dans “/home”.

Il faut donc que les utilisateurs de sftp soient des utilisateurs déclarés sur le serveur sftp.

J’ai vu ça dans la conf:

LoadModule mod_sftp.c
LoadModule mod_sftp_pam.c
# Install one of the previous SQL backends and decomment
# the previous mod_sql.c module to use this
LoadModule mod_sftp_sql.c

Donc je pensais que c’était possible dommage

T’emmerdes pas avec des utilisateurs virtuels, ou autres artifices bien moins surs que des trucs basiques et facile à mettre en place (du moins c’est mon avis…) :

1: Une connexion Sftp avec des utilisateurs linux, si ceux ci sont chrootés et sans accès console ssh:

https://mondedie.fr/d/8070-Aide-a-la-mise-en-place-d-un-acces-sftp-chroote
https://kdecherf.com/blog/2009/03/01/creer-un-chroot-sftp-natif-avec-openssh

2: Connexion Ssh et Sftp uniquement par clefs de 2048, voir 4096 si t’es un peu parano…, et une fois la connexion par clefs testée, tu bannie la possibilité de connexion par mot de passe en mettant “PasswordAuthentication no” dans le fichier sshd_config.

Sache qu’une clef même 2048, n’est pas craquable dans une durée raisonnable de 10 ans, et en se donnant des moyens disproportionnés:


Alors, avant que des moyens disproportionnés veuillent bien te consacrer 10 ans !!! déjà je ne pense pas que le contenu de ton serveur en vaille la peine, et de plus d’ici là t’auras changé de serveur, de clefs…

+1 @nestor; pourquoi vouloir installer ftps alors que sftp est embarqué au moment de l’installation de ssh et se configure dans le même fichier sshd_config.

J’ai juste un problème avec ce sftp. J’ai créé un compte utilisateur avec son dossier dans home et un mot de passe.
Quand je me connecte avec Flashfxp sans rien changer j’arrive dans le dossier mais on peut voir le path /home/users et l’utilisateur peut en sortir ce qui me va pas quelqu’un sait pourquoi ? Manque de config ?

Au début je l’avais mis comme ça:
adduser --home /var/www/admins/users users

Mais ça ce disais que c’était pas son dossier donc je l’ai déplacé:
usermod --login camera --home /home/users --move-home usersw

Moi ce que j’aimais bien c’est qu’on pouvait gérer les comptes FTP depuis la BDD et c’était top d’où ma volonté de passé en FTPS.

Salut;

Il te faut suivre les tutos plus haut pour les droits /home/user…

Dans le home de chaque utilisateur tu crées les dossier avec les droits d’accès de ton choix, ou il pourra lire, écrire.
Puis

chown root:<user> /home/<user> chmod 755 /home/<user>

Rentrer tous utilisateurs à chrooter dans le groupe stfpusers par exemple (il te faut le créer), et modifier ton sshd_config, voir tuto, pour avoir un truc du genre:

#UsePAM yes
Subsystem sftp internal-sftp
Match Group sftpusers
ChrootDirectory /%h
         ForceCommand internal-sftp
         AllowTcpForwarding no
         GatewayPorts no
         X11Forwarding no

Et si tu fais çà bien, il ne pourra sortir de son home…

Ok. J’avais pas encore regardé les liens au moment où j’ai écris le message.
J’avoue que je pensais que l’utilisateur était bloqué naturellement dans son dossier sauf si on lui permettait de sortir et pas le contraire^^, car avec Flashfxp j’arrive directement dans le dossier de l’utilisateur alors quand me connectant en ligne de commande j’arrive à la racine du serveur.
Je testerai ça ce soir par contre je trouve ça moins pratique avec mec utilisateur virtuels, car avant si j’avais besoin de créer un ftp sur un dossier particulier c’était facile et rapide depuis ma bdd. Javais meme creer un site pour les gérer et comme j’avais vu un module proftpd sftp_sql j’ai cru que c’était possible.

%h Te chrootera tes utilisateurs dans leur propre home et quelque soit le chemin de leur home (/home/user1 sera chrooté dans le dossier user1; mais le 2° user peut très bien avoir son home autre part, par exemple /var/www/user2, et lui aussi ne pourra sortir de son dossier user2)

Sinon, tu peux aussi matcher par user, si tu trouves ça plus clair ou plus lisible (mais le résultat est le même):

#UsePAM yes
Subsystem sftp internal-sftp
Match User user1
ChrootDirectory /home/user1
         ForceCommand internal-sftp
         AllowTcpForwarding no
         GatewayPorts no
         X11Forwarding no
Match User user2
ChrootDirectory /var/www/user2
         ForceCommand internal-sftp
         AllowTcpForwarding no
         GatewayPorts no
         X11Forwarding no

Qu’est-ce qui prend du temps ? Le démarrage du transfert ou le transfert lui-même ? A tester avec un gros fichier.

Sur le serveur, je suppose. Et sur le client ou son routeur d’accès ?

Inutile si la machine ne fait pas tourner de serveur DNS accessible de l’extérieur.

Inutile, FTP n’utilise pas UDP.

Inutile, le port 20 n’est utilisé que comme pour source pour des connexions de données sortantes (en mode actif).

Fait doublon avec une règle identique plus haut.[quote=“LeRoutard, post:6, topic:73275”]
C’est quoi le mode entre actif ou passif ?
[/quote]
En mode passif, c’est le client qui établit une connexion de données vers le serveur lors d’un transfert. En mode actif, c’est l’inverse. (Cela n’a rien à voir avec le sens de transfert des données.)
C’est le client qui choisit le mode de transfert, selon ce que le serveur supporte. Tes règles iptables n’autorisent pas le mode actif avec FTPS. Il manque une règle comme celle-ci (pour explicit TLS/SSL) :
iptables -t filter -A OUTPUT -p tcp --sport 20 -j ACCEPT

Vraiment ? Il ne devrait pas y avoir de différence significative entre “FTP using Explicit SSL (Auth SSL)” et “FTP using Explicit SSL (Auth TLS)”. Et je suis surpris que “FTP using Implicit SSL” fonctionne, car cela passe normalement par le port 990 qui n’est pas autorisé par tes règles iptables.

Le chiffrement de la connexion de commande (sur le port 21) empêche le suivi de connexion de lire son contenu afin de savoir qu’une connexion de données va avoir lieu et l’autoriser automatiquement (si le module nf_conntrack_ftp est chargé). D’où l’ajout de règles pour les connexions de données FTPS.

Comme déjà dit, désactive tout filtrage avec iptables sur le serveur, tu sauras si la lenteur vient d’iptables ou autre chose. Tes règles peuvent bloquer mais pas ralentir, c’est tout ou rien.

Par contre à mon avis … la solution la plus sécurisé c’est celle-ci (hors SSL).

VSFTP (par ex) avec des Utilisateurs virtuels et leur home directory enfermée (chrootée) c’est bien plus sécurisé.

1 - Les utilisateurs ne peuvent pas remonté dans l’arborescence de la machine.
2 - Les utilisateurs n’ont accès qu’au(x) protocoles FTP(s).

Je pense.

Bonne soirée :slight_smile:

Cordialement,
Romain