Rediriger un port ftp sur debian

Bonjour a tous, voilà j’ai un pc debian qui sert de routeur entre ma box et mon LAN, j’ai réussi a rediriger tous mes ports ssh video et d’autres mais le port ftp reste bloqué sur le serveur. j’ai essayer avec rientd mais ne souci est resté. je débute sur iptables je voudrais donc etre eclairé sur sa configuration si possible que je comprenne bien sa méthode de configuration.

Merci d’avance

CDlt
Raf

Si j’ai bien compris, tu veux pouvoir accéder à ton serveur ftp via internet ? (par exemple)

Tu as pensé à ouvrir les deux ports nécessaire pour le ftp ? (21 et 20)

Pour que l’on t’aide un peu plus, tu peux nous indiquer tes configurations réseaux ? (IP de la box et serveur ?)

Rediriger le port 20 n’est pas nécessaire.
Le protocole FTP est plus compliqué que les autres (HTTP, SSH…) car il implique plusieurs connexions :

  • la connexion de commande sur le port 21
  • une connexion de données dynamiquement établie pour chaque transfert de fichier ou listage de répertoire.

Pour compliquer le tout, il existe deux modes de transfert FTP :

  • mode passif où la connexion de données est établie du client vers le serveur
  • mode actif où la connexion de données est établie du serveur vers le client.

Généralement les clients modernes utilisent le mode passif par défaut. Dans les deux modes le port destination en écoute est défini dynamiquement pour chaque connexion (et ce n’est jamais le port 20).

Il faut vérifier avec un client FTP en ligne de commande si c’est la première ou la seconde qui ne passe pas. Si la connexion de commande passe (login ok) mais pas les connexions de données (listage ko), alors il faut s’assurer que :

  • les modules de suivi de connexion nf_conntrack_ftp et NAT nf_nat_ftp sont chargés
  • les règles iptables dans la chaîne FORWARD autorisent les paquets dans les états ESTABLISHED,RELATED dans les deux sens.

lftp est un bon client ftp en console par exemple

J’ai une faiblesse pour tnftp, qui se met comme alternative de la commande ftp à la place du client ftp de base.
lftp est très polyvalent, mais ses commandes sont un peu différentes des commandes standard.

la configue est assé simple, mon debien eth0 sur ma box et eth1 sur mon LAN sur mon lan avec rinetd j’ai pu transferer les port divers pour des camera etc… tout fonctionne bien mais le ftp oui est assé complexe, j’y travail actuellement mais étant novice sur iptables…pas facile.

ETH0 192.168.1.X
ETH1 192.168.0.X

sur debian ssh, dhcp, apache2 et rinetd sont installés.
j’ai essayé la commande :
iptables -A INPUT -p tcp -i eth0 --dport 21 -j ACCEPT
mais sans succes toujours le meme souci, les logs sont ok mais pas connexion. Pour info mon serveur ftp ne gere que le ftp port 21.

Merci a vous

On ne peut pas rediriger du FTP avec un simple relais de port, à moins que celui-ci supporte explicitement le protocole FTP et se comporte donc en reverse proxy FTP. A première vue d’après la description des paquets, redir en est capable mais pas rinetd.

Sinon il faut faire la redirection avec le DNAT d’iptables.

Quels logs sont ok ?
Qu’entends tu exactement par “pas connexion” ?

les connexion ok c’est que je vois depuis filezilla par exemple que login et mot passe ok mais ensuite rien.

Je rentre d’ici une heure je vais voir avec redir et dnat d’IPTABLES, que je connais pas encore mais les apprendre les différences avec rinetd ce soir.

Vous tiens au courant dans la soirée

Merci

Re pas eu le temp de regarder hier soir, je bosse dessus cet pm

Vous tiens au courant

Cdlt

Bon, je peine a trouver la solution et par manque de temps je suis obliger d’installer le ftp sur le serveur, si je trouve le moyen de transferer le ftp depuis un debian serveur vers un pc ftp je vous le dirai.

Bon weekend a tous

Slt a tous, dit PascalHambourg serait tu m’éclairer sur REDIR car je ne trouve pas sur le net,là je viens de réinstaller mon serveur a la force de “bidouiller” je m’y suis perdu, si tu connais ou une autre personne un cour sur les redirection comme “rinetd et ou redir”

Merci d’avance

et avant de me lancer dans la configue je veux comprendre la théorie pour éviter de faire nimp

Bonne soirée a tous

Re, voilà le message précis

Login ok puis Connecté
Statut : Récupération du contenu du dossier…
Commande : PWD
Réponse : 257 “/” is the current directory
Commande : TYPE I
Réponse : 200 Type set to I
Commande : PORT 192,168,0,110,4,68
Réponse : 500 Illegal PORT command
Commande : PASV
Réponse : 227 Entering Passive Mode (192,168,0,101,194,131).
Statut : Le serveur a envoyé une réponse passive avec une adresse non routable. Adresse remplacée par celle du serveur.

Une idée pour ce probleme ?

Merci d’avance

Je l’ai trouvé en cherchant dans la liste des paquets Debian. Mais je ne l’ai jamais utilisé.

[quote]Description: Redirect TCP connections
It can run under inetd or stand alone (in which case it handles
multiple connections). It is 8 bit clean, not limited to line
mode, is small and light. Supports transparency, FTP redirects, http
proxying, and bandwidth limiting.
[/quote]

Les messages sont typiques d’une situation de NAT ou de redirection qui ne prend pas en charge le protocole FTP et ne modifie pas l’adresse IP transmise dans le canal de commande. Quelle est la configuration réseau entre le client et le serveur ?

Au passage le dernier message est erroné (comme souvent) : l’adresse privée 192.168.0.101 est une adresse parfaitement routable. Elle n’est juste pas routée sur l’internet public.

Bonjour, quand je connecte mon serveur ftp directement sur ma box et que je redirige le pot 21 sur le ftp ca fonctionne, tandis que si je connecte mon serveur ftp derriere mon debian là j’ai le message que je t’ai donné précédemment. le serveur a pour config eth0 192.168.1.X et eth1 192.168.0.X.
un partage de connexion internet et configurer sur eth0
"pre-up iptables-restore < /etc/iptables/iptables-active
post-down iptables -t nat -F" et rien de plus j’ai testé hier
"iptables -A forward -i eth0 -o ppp0 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT" j’ai eu un doute sur ppp0 que j’ai changé en eth1 mais les deux ne fonctionne pas

Cdlt

Donc le NAT de la box gère correctement les connexions FTP entrantes, c’est déjà bien.

Que contient /etc/iptables/iptables-active ?
Si tu veux faire la redirection avec le NAT d’iptables et non un relais/proxy (rinetd, redir…), alors il faut au minimum les règles suivantes (juste pour tester, à affiner ensuite) :

iptable -t nat -A PREROUTING -i eth0 -p tcp --dport 21 -j DNAT --to 192.168.0.101 # en supposant que c'est l'adresse du serveur FTP iptables -A FORWARD -j ACCEPT
Il faut aussi charger les modules de suivi de connexion et de NAT pour le protocole FTP (le premier devrait être automatiquement chargé par le second).

modprobe nf_conntrack_ftp modprobe nf_nat_ftp

Re, oui j’ai testé ca fonctionne, seulement faire du copier coller c’est bien mais je n’ai pzd compris ce que j’ai tapé,aurez tu de la doc dessus ?

Merci

pour le partage de connexion internet iptables est /etc/iptables/iptables-active, est ce que je dois mettre la configue ftp dans ce fichier?

Cdlt

J’ai trouvé le tuto sur ubuntu avec !/bin/bash j’ai appliqué le reste du tuto, redémarrer le serveur et ca fonctionne

Merci beaucoup pour ton éclairage, je vais bosser dessus maintenant pour comprendre mot par mot ce que j’ai configuré, car passionné avant tout j’aime ca

Bon weekend

Je connais cela depuis si longtemps que j’ai oublié où et comment je l’ai appris. Probablement petit à petit, en lisant plusieurs documentations, en expérimentant…

Pour bien comprendre il faut bien sûr des bases sur TCP/IP, mais ausi connaître le fonctionnement du protocole FTP, ainsi que le fonctionnement d’iptables pour le filtrage et pour le NAT, le rôle des différentes chaînes. Le document iptables-tutorial dont il existe une traduction française doit être un bon point de départ, je pense. C’est long, mais c’est bon.

Quant à ta question sur /etc/iptables/iptables-active, je ne peux y répondre sans savoir ce qu’il contient.