Upload FTP avec Backup-Manager

Bonjour,

Je me tourne vers vous à la suite d’infructueuses recherches au sujet de l’upload FTP avec Backup-manager.
J’ai mis en place cette sauvegarde sur un serveur Debian 6.0.
La sauvegarde fonctionne correctement.
J’ai configuré de sorte que le fichier généré soit exporté via FTP sur un serveur cible.
J’obtiens cette erreur :

Unable to transfer /var/archives_save/ks*****.kimsufi.com-20130525.md5: Could not open data connection to port 48593: Connection timed out The upload transfer "ftp" failed.
Mon soucis c’est que j’ai un script Iptable qui me bloque tous les ports qui ne sont pas censés être utilisés. A chaque essai, le port indiqué dans la log change …
J’ai donc l’impression que Backup-Manager ne fixe pas un port et que celui-ci est pris aléatoirement …
Auriez-vous des idées pour résoudre ce problème sans autoriser une large plage de ports ?

Je vous remercie pour toutes les pistes que vous pourrez m’apporter :smiley:

Salut,

Ne serait-il pas plus sain de t’orienter vers rsync ?!

C’est le principe du protocole FTP que d’ouvrir des ports quelconques et variables pour les connexions de données. Si ça te pose un problème, il ne faut pas utiliser FTP.

Là, apparemment, c’est une tentative de transfert FTP en mode passif et la connexion au port passif défini par le serveur échoue. Soit le pare-feu du client bloque en sortie, soit le pare-feu du serveur bloque en entrée (ce qui est particulièrement stupide pour un serveur FTP qui accepte le mode passif).

Quand tu parles de “script iptables qui bloque tous les ports qui ne sont pas censés être utilisés”, c’est sur le client, le serveur, en sortie, en entrée ? Dans un cas comme dans l’autre, si la connexion de commande FTP est en clair (pas de SSL/TLS), il faut :

  • charger le module du noyau nf_conntrack_ftp qui identifie à la volée le port passif utilisé pour les connexions de données ;
  • autoriser les paquets dans l’état RELATED.

Si la connexion FTP est chiffrée, il faut te débrouiller autrement. Quelques options possibles :

  • autoriser tous les ports à destination de l’adresse du serveur / en provenance de l’adresse du client
  • si blocage sur le client, autoriser tous les paquets émis par l’UID de l’utilisateur de backup manager s’il tourne sous un utilisateur particulier
  • si blocage sur le serveur, limiter la plage de ports passifs du logiciel serveur FTP et accepter cette plage de ports dans les règles iptables.

S’il n’est pas possible d’utiliser FTP, utliser un autre moyen comme scp ou sftp.

Si ça peut aider, voila ce que j’utilise comme règles pour laisser le FTP discuter de mon côté
Je l’avais récup suite à une discussion dans un des topics sur iptables du forum

	# Serveur FTP (ftp et ftp-data)
	$IPT -A INPUT -p tcp --dport 20 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
	$IPT -A OUTPUT -p tcp --sport 20 -m state --state RELATED,ESTABLISHED -j ACCEPT
	$IPT -A INPUT -p tcp --dport 21 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
	$IPT -A OUTPUT -p tcp --sport 21 -m state --state RELATED,ESTABLISHED -j ACCEPT
	$IPT -A INPUT -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state RELATED,ESTABLISHED -j ACCEPT
	$IPT -A OUTPUT -p tcp --sport 1024:65535 --dport 1024:65535 -m state --state RELATED,ESTABLISHED -j ACCEPT

NEW est en trop dans la 1e règle.
RELATED est en trop dans les 1e, 3e et 4e règles.