Forums FUG-FR
https://forums.fug-fr.org/cgi-bin/yabb2/YaBB.pl
FreeBSD >> Réseau et sécurité >> pf et connection ftp sortantes
https://forums.fug-fr.org/cgi-bin/yabb2/YaBB.pl?num=1210064941

Message started by Elrohir on 06. May 2008 at 11:09

Title: pf et connection ftp sortantes
Post by Elrohir on 06. May 2008 at 11:09
Hello.

Certains d'entre-vous ont réussi à configurer un PF pour que *cette machine locale* puisse faire des connexions FTP sortantes ? (et sans ouvrir tous les ports en out).
Les tutos sur pf (genre ici) ne semblent être valable que pour des clients *derrière* le pf. Moi, je voudrais que cette machine (qui contient le pf) puisse se connecter à des serveurs distants en FTP (passif).
Tout ce que j'ai trouvé sur internet ne concerne que pour des clients derrière un pf... avec ftp-proxy.

Si vous avez une solution, qui en plus, éviter d'ouvrir une plage monstrueuse de ports, je suis preneur.

Merci !

Title: Re: pf et connection ftp sortantes
Post by Sheltem on 06. May 2008 at 11:35
Salut,

je m'avance peut être, mais si un client FTP situé derrière ton PF tente de se connecter a un serveur en mode passif, ça ne peut effectivement pas fonctionner. en admettant que tu te connecte à un serveur FTP utilisant le port 21, tu vas donc autoriser ce port en sortie, la connexion va s'établir,  mais ensuite le serveur distant va choisir un port pour les données, et aucun moyen de savoir à l'avance dans qu'elle plage de ports il va faire son choix. donc par conséquent aucun moyen de savoir non plus ce que tu dois laisser passer au travers de PF.

En somme, soit tu laisses tout ouvert en "IN" ce qui me parait impensable d'un point de vue sécurité, soit tu utilise ftp-proxy.

enfin à mon avis.

Title: Re: pf et connection ftp sortantes
Post by Elrohir on 06. May 2008 at 11:56
Oui, d'où mon post : savez-vous si on peut utiliser ftp-proxy pour se connecter à des serveurs FTP distants en passif depuis le serveur pf lui-même.

Je réprécise que je parle d'une machine seule, qui a un pf. Aucune machine n'est derrière le pf. C'est juste une machine qui a un pf, et j'aimerais savoir si c'est possible avec ftp-proxy (ou autres, je ne connais que celui-ci) de faire ça. Parce que moi, tout ce que j'ai essayé, ne marche pas. Alors, je commence à me demander si c'est possible, comme rien n'en parle explicitement...

Bref, est-il possible qu'un client FTP se connecte à un serveur FTP en passif avec un pf local ? (sans tout laisser ouvert, car on peut pas savoir sur quel port on devra écouter :))

Title: Re: pf et connection ftp sortantes
Post by kermitt on 06. May 2008 at 17:09

Elrohir wrote on 06. May 2008 at 11:56:
savez-vous si on peut utiliser ftp-proxy pour se connecter à des serveurs FTP distants en passif depuis le serveur pf lui-même

Oui c'est possible
Je l'avais fait sur une machine (qui était le firewall) en limitant un nombre de ports ouverts via 'inetd".
Il faut obligaoirement ouvrir les ports 21/20 + un certains nombres de ports  en entrées > 1024 si tu veux travailler en passif.

j'avais quelque chose dans ce genre dans inedt.conf
[code]ftp-proxy       stream  tcp     nowait  proxy   /usr/libexec/ftp-proxy  ftp-proxy -m 49551 -M 51552[/code]
et sur pf:
[edit]#rdr des connex. de controle ftp (sortantes) -> localhost
## ftp-proxy port 8021
nat-anchor "ftp-proxy/*"
rdr-anchor "ftp-proxy/*"
rdr on int_if proto tcp from <mylan> to any port 21 \
       -> 127.0.0.1 port 8021
## ftp-proxy
pass in quick on $ext_if proto tcp from <mylan> \
       to $ext_if port 21 \
       flags S/SA modulate state
pass in quick on $ext_if proto tcp from <mylan> \
       to $ext_if user proxy \
       flags S/SA modulate state
# == ftp passif [Compléments] == #
pass out quick on $ext_if inet proto tcp from $ext_if port $unPrivPorts to \
       any port $unPrivPorts flags S/SA modulate state

[/edit]
Je ne sais plus si tout est complet, c'est une vieille config que j'avais archivée. J'espère que cela pourra t'aider.

Title: Re: pf et connection ftp sortantes
Post by Elrohir on 06. May 2008 at 17:25
Ben je cherche justement à éviter d'ouvrir tous ces ports. C'est pas le but de ftp-proxy, ça, non ?

Title: Re: pf et connection ftp sortantes
Post by Sheltem on 06. May 2008 at 17:32

Quote:
Il faut obligaoirement ouvrir les ports 21/20 + un certains nombres de ports  en entrées > 1024 si tu veux travailler en passif.


Le port 21 (sauf erreur) c'est celui utilisé pour les commandes, le 20 est ensuite utilisé pour les données, mais ça c'est justement dans le cas d'un serveur fonctionnant en mode "actif", en mode "passif" il va négocier un ports pour les données dans une plage qui à été défini par l'admin du serveur et qui peut avoir n'importe qu'elle valeur entre 1024 et 65535, le plus courant étant situé entre 49152 et 65535.

et Elrohir ne veut "justement pas" ouvrir en permanence des centaines de ports, en même temps il a raison, ensuite ftp-proxy paraît être une solution mais il est vrai qu'on ne trouve aucune doc pour l'utiliser dans ce contexte mais plutôt dans l'autre sens.

je donne ma langue.

Title: Re: pf et connection ftp sortantes
Post by jc1 on 06. May 2008 at 23:25
Bonjour,

FTP est un protocole complexe au niveau des ports.
Là, ce qu'il faudrait pour limiter le problème, c'est un firewall applicatif.
Tu ouvres en fonction de l'application tes ports.
Si pour une application, c'est ouvert, pour les autres cela est fermé.
J'avais commencer à regarder pour linux et c'était pas simple, pas encore regardé pour BSD.

Autrement, (je ne sais pas si cela est faisable), en fonction du message du serveur, ouvrir dynamique les ports


Une autre solution, certains clients peuvent limiter les ports pour FTP (pas top, mais bon...)

Title: Re: pf et connection ftp sortantes
Post by [BSDf]Lenine on 14. May 2008 at 09:21
Bonjour,

Pour FTP , c'est effectivement le Bronx..

Tu as 2 modes Passif et Actif, le plus facile à régler au niveau de PF c'est l'actif :

Port 21 en sorti vers n'importe qui avec un keep state pour la réponse.
Port 20 en entrée depuis nimporte qui (ftp-data)

21 c'est le canal de commande, 20 c'est le canal de données.

En passif c'est effectivement une négociation de port entre le client et le serveur. Personnelement je n'ai pas eu de succès avec ftp-proxy.
J'ai je n'ai jamais eu le temps d'approfondir la chose.

Title: Re: pf et connection ftp sortantes
Post by Elrohir on 14. May 2008 at 09:50
ftp-proxy marche super bien dans le cadre d'un PF qui fait office de passerelle, avec deux interfaces. Par contre, pour autoriser ce firewall lui-même, pas possible, dixit pas mal de personnes avec qui j'ai parlé.
La solution pour ce serveur : n'autoriser l'output > 1024 que pour des serveurs FTP autorisés.

(je parle bien sûr pour le protocole FTP passif)

Title: Re: pf et connection ftp sortantes
Post by Olivier on 14. May 2008 at 13:06
Vous vous prenez la tête pour rien avec le mode, actif et passif. Pour utiliser correctement FTP sur une station de travail seule, il faut tout simplement utiliser ftpsesame.

Exemple:
[code]tcp_services="{ www, https, ftp, ssh }"

# www, https, FTP & SSH
anchor "ftpsesame/*" on $int_if
pass out $log_pass quick on $int_if proto tcp from ($int_if) to \
any port $tcp_services $tcpflags keep state[/code]
Pour démarrer ftpsesame au démarrage, il faut modifier le fichier /etc/rc.conf.

++  :)

PS: j'en ai déjà parlé dans un autre post  ;)

Forums FUG-FR » Powered by YaBB 2.5.2!
YaBB Forum Software © 2000-2026. All Rights Reserved.