Welcome, Guest. Please Login
FUG-FR logo
 
  HomeHelpSearchLogin  
 
pf et connection ftp sortantes (Read 4743 times)
Elrohir
Full Member
***
Offline



Posts: 180
Lyon
Gender: male
pf et connection ftp sortantes
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 !
Back to top
 
 
IP Logged
 
Sheltem
Full Member
***
Offline


Freebsders Powa

Posts: 118
Bons En Chablais Haute-Savoie
Gender: male
Re: pf et connection ftp sortantes
Reply #1 - 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.
Back to top
 
WWW WWW Sheltem  
IP Logged
 
Elrohir
Full Member
***
Offline



Posts: 180
Lyon
Gender: male
Re: pf et connection ftp sortantes
Reply #2 - 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 Smiley)
Back to top
 
 
IP Logged
 
kermitt
Full Member
***
Offline


Relax

Posts: 249
974
Gender: male
Re: pf et connection ftp sortantes
Reply #3 - 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 


et sur pf:
Edited:
#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


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.
Back to top
« Last Edit: 06. May 2008 at 17:32 by kermitt »  
WWW WWW  
IP Logged
 
Elrohir
Full Member
***
Offline



Posts: 180
Lyon
Gender: male
Re: pf et connection ftp sortantes
Reply #4 - 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 ?
Back to top
 
 
IP Logged
 
Sheltem
Full Member
***
Offline


Freebsders Powa

Posts: 118
Bons En Chablais Haute-Savoie
Gender: male
Re: pf et connection ftp sortantes
Reply #5 - 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.
Back to top
 
WWW WWW Sheltem  
IP Logged
 
jc1
God Member
*****
Offline


BSD For Ever !!

Posts: 845
Un coin en France
Gender: male
Re: pf et connection ftp sortantes
Reply #6 - 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...)
Back to top
 

"Ils ignoraient que c'était impossible, alors ils l'ont fait" Marc Twain
"Do or do not. There is no try" Yoda Senseï
WWW WWW jc1  
IP Logged
 
[BSDf]Lenine
Full Member
***
Offline


I Love BSD!

Posts: 180
Quelque part dans l'univers...
Gender: male
Re: pf et connection ftp sortantes
Reply #7 - 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.
Back to top
 

Moi j'ai plein d'amis: les ports, man et google !
 
IP Logged
 
Elrohir
Full Member
***
Offline



Posts: 180
Lyon
Gender: male
Re: pf et connection ftp sortantes
Reply #8 - 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)
Back to top
 
 
IP Logged
 
Olivier
Junior Member
**
Offline


I Love OpenBSD!

Posts: 71
Gender: male
Re: pf et connection ftp sortantes
Reply #9 - 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 


Pour démarrer ftpsesame au démarrage, il faut modifier le fichier /etc/rc.conf.

++  Smiley

PS: j'en ai déjà parlé dans un autre post  Wink
Back to top
 

OpenBSD, because security matters
 
IP Logged