Je tente de configurer un OpenBSD 3.8 en tant que firewall pour un petit
réseau local.
L'usage est assez particulier puisque je voudrais ne laisser passer _que_ le
FTP passif.
Or si j'ai bien compris cela implique de laisser les machines du LAN se
connecter à l'extérieur sur n'importe quel port.
J'ai défini un pf.conf (ci-dessous) qui fonctionne à ceci près qu'il laisse
evidemment passer tous les protocoles du LAN vers l'extérieur.
Bien sûr, si je désactive la règle #2, mon FTP Passif ne fonctionne plus.
J'ai beau retourner le problème, je ne vois pas comment n'autoriser que le
FTP...
Si quelqu'un pouvait m'expliquer comment faire (ou me confirmer que c'est
impossible !)...
----
Emmanuel
Voilà mon pf.conf :
# Les interfaces
if_local="re0"
if_wan="fxp0"
# Ignore le trafic sur lo0
set skip on lo0
# Le NAT
nat on $if_wan from $if_local:network to any -> $if_wan
# Redirection pour le FTP Actif
rdr on $if_local proto tcp to any port 21 -> 127.0.0.1 port 8021
# 0 : Bloque les entrées
block in log all
# 1 : Bloque les sorties
block out log all
# 2 : LAN-> FW
pass in on $if_local inet proto tcp to any flags S/SA keep state
# 3 : LAN->Proxy FTP
pass in on $if_local inet proto tcp to 127.0.0.1 port 8021 flags S/SA keep
state
# 4 : WAN-> FW : FTP Actif, connexion de données
pass in on $if_wan proto tcp from port 20 to $if_wan user proxy flags S/SA
keep state
# 5 : DNS
pass in on $if_local inet proto udp to any port 53 keep state
# 6 : FW -> WAN tcp
pass out on $if_wan inet proto tcp to any flags S/SA keep state
# 7 : FW -> WAN udp
pass out on $if_wan inet proto udp to any keep state
# 8 : FW -> LAN tcp
pass out on $if_local inet proto tcp to any flags S/SA keep state
# 9 : FW-> LAN udp
pass out on $if_local inet proto udp to any keep state
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Paul Gaborit
À (at) Thu, 26 Jan 2006 17:58:14 +0100, "Emmanuel Bernat" écrivait (wrote):
Je tente de configurer un OpenBSD 3.8 en tant que firewall pour un petit réseau local. L'usage est assez particulier puisque je voudrais ne laisser passer _que_ le FTP passif.
Pourquoi pas...
Or si j'ai bien compris cela implique de laisser les machines du LAN se connecter à l'extérieur sur n'importe quel port.
Ça, c'est pour le FTP "actif".
En FTP passif, c'est *toujours* le client qui se connecte : 1 fois sur le port FTP puis une deuxième fois sur le port de données choisi par le serveur.
De plus c'est une FAQ. En cherchant par exemple "pf openbsd ftp passive", on trouve rapidement :
<http://www.openbsd.org/faq/pf/fr/ftp.html>
Vous devriez y trouver votre bonheur ;-)
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
À (at) Thu, 26 Jan 2006 17:58:14 +0100,
"Emmanuel Bernat" <ebernat_nospam@free.fr> écrivait (wrote):
Je tente de configurer un OpenBSD 3.8 en tant que firewall pour un petit
réseau local.
L'usage est assez particulier puisque je voudrais ne laisser passer _que_ le
FTP passif.
Pourquoi pas...
Or si j'ai bien compris cela implique de laisser les machines du LAN se
connecter à l'extérieur sur n'importe quel port.
Ça, c'est pour le FTP "actif".
En FTP passif, c'est *toujours* le client qui se connecte : 1 fois sur
le port FTP puis une deuxième fois sur le port de données choisi par
le serveur.
De plus c'est une FAQ. En cherchant par exemple "pf openbsd ftp
passive", on trouve rapidement :
<http://www.openbsd.org/faq/pf/fr/ftp.html>
Vous devriez y trouver votre bonheur ;-)
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
À (at) Thu, 26 Jan 2006 17:58:14 +0100, "Emmanuel Bernat" écrivait (wrote):
Je tente de configurer un OpenBSD 3.8 en tant que firewall pour un petit réseau local. L'usage est assez particulier puisque je voudrais ne laisser passer _que_ le FTP passif.
Pourquoi pas...
Or si j'ai bien compris cela implique de laisser les machines du LAN se connecter à l'extérieur sur n'importe quel port.
Ça, c'est pour le FTP "actif".
En FTP passif, c'est *toujours* le client qui se connecte : 1 fois sur le port FTP puis une deuxième fois sur le port de données choisi par le serveur.
De plus c'est une FAQ. En cherchant par exemple "pf openbsd ftp passive", on trouve rapidement :
<http://www.openbsd.org/faq/pf/fr/ftp.html>
Vous devriez y trouver votre bonheur ;-)
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
Paul Gaborit
À (at) Thu, 26 Jan 2006 18:20:40 +0100, Paul Gaborit écrivait (wrote):
À (at) Thu, 26 Jan 2006 17:58:14 +0100, "Emmanuel Bernat" écrivait (wrote):
Je tente de configurer un OpenBSD 3.8 en tant que firewall pour un petit réseau local. L'usage est assez particulier puisque je voudrais ne laisser passer _que_ le FTP passif.
Pourquoi pas...
Or si j'ai bien compris cela implique de laisser les machines du LAN se connecter à l'extérieur sur n'importe quel port.
Ça, c'est pour le FTP "actif".
En FTP passif, c'est *toujours* le client qui se connecte : 1 fois sur le port FTP puis une deuxième fois sur le port de données choisi par le serveur.
En relisant votre question et ma réponse, je m'aperçois que la suite de ma réponse ne doit pas vous convenir car ce que vous voulez c'est n'autoriser le FTP passif qu'entre un serveur FTP WAN et un client LAN.
Effectivement dans ce cas, vous ne pouvez pas maîtriser le choix du serveur pour le port de données... Vous devez donc autoriser (en sortie) tous les ports. C'est embêtant. Habituellement, pour ce genre de trucs, on passe par un serveur proxy FTP (seul autorisé à sortir).
Je ne suis pas sûr que 'pf' seul puisse répondre à ce besoin : il ne faudrait autoriser une sortie sur un autre port que pendant la durée d'une connexion sur le port FTP du même couple client/serveur. C'est un peu ce que fait authpf mais pour un autre besoin...
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
À (at) Thu, 26 Jan 2006 18:20:40 +0100,
Paul Gaborit <Paul.Gaborit@invalid.invalid> écrivait (wrote):
À (at) Thu, 26 Jan 2006 17:58:14 +0100,
"Emmanuel Bernat" <ebernat_nospam@free.fr> écrivait (wrote):
Je tente de configurer un OpenBSD 3.8 en tant que firewall pour un petit
réseau local.
L'usage est assez particulier puisque je voudrais ne laisser passer
_que_ le FTP passif.
Pourquoi pas...
Or si j'ai bien compris cela implique de laisser les machines du LAN se
connecter à l'extérieur sur n'importe quel port.
Ça, c'est pour le FTP "actif".
En FTP passif, c'est *toujours* le client qui se connecte : 1 fois sur
le port FTP puis une deuxième fois sur le port de données choisi par
le serveur.
En relisant votre question et ma réponse, je m'aperçois que la suite
de ma réponse ne doit pas vous convenir car ce que vous voulez c'est
n'autoriser le FTP passif qu'entre un serveur FTP WAN et un client
LAN.
Effectivement dans ce cas, vous ne pouvez pas maîtriser le choix du
serveur pour le port de données... Vous devez donc autoriser (en
sortie) tous les ports. C'est embêtant. Habituellement, pour ce genre
de trucs, on passe par un serveur proxy FTP (seul autorisé à sortir).
Je ne suis pas sûr que 'pf' seul puisse répondre à ce besoin : il ne
faudrait autoriser une sortie sur un autre port que pendant la durée
d'une connexion sur le port FTP du même couple client/serveur. C'est
un peu ce que fait authpf mais pour un autre besoin...
--
Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
À (at) Thu, 26 Jan 2006 18:20:40 +0100, Paul Gaborit écrivait (wrote):
À (at) Thu, 26 Jan 2006 17:58:14 +0100, "Emmanuel Bernat" écrivait (wrote):
Je tente de configurer un OpenBSD 3.8 en tant que firewall pour un petit réseau local. L'usage est assez particulier puisque je voudrais ne laisser passer _que_ le FTP passif.
Pourquoi pas...
Or si j'ai bien compris cela implique de laisser les machines du LAN se connecter à l'extérieur sur n'importe quel port.
Ça, c'est pour le FTP "actif".
En FTP passif, c'est *toujours* le client qui se connecte : 1 fois sur le port FTP puis une deuxième fois sur le port de données choisi par le serveur.
En relisant votre question et ma réponse, je m'aperçois que la suite de ma réponse ne doit pas vous convenir car ce que vous voulez c'est n'autoriser le FTP passif qu'entre un serveur FTP WAN et un client LAN.
Effectivement dans ce cas, vous ne pouvez pas maîtriser le choix du serveur pour le port de données... Vous devez donc autoriser (en sortie) tous les ports. C'est embêtant. Habituellement, pour ce genre de trucs, on passe par un serveur proxy FTP (seul autorisé à sortir).
Je ne suis pas sûr que 'pf' seul puisse répondre à ce besoin : il ne faudrait autoriser une sortie sur un autre port que pendant la durée d'une connexion sur le port FTP du même couple client/serveur. C'est un peu ce que fait authpf mais pour un autre besoin...
-- Paul Gaborit - <http://perso.enstimac.fr/~gaborit/>
espie
In article , Paul Gaborit <Paul.Gaborit+ wrote:
Je ne suis pas sûr que 'pf' seul puisse répondre à ce besoin : il ne faudrait autoriser une sortie sur un autre port que pendant la durée d'une connexion sur le port FTP du même couple client/serveur. C'est un peu ce que fait authpf mais pour un autre besoin...
La commande ftp-proxy, disponible depuis 3.8, fait tres exactement cela.
Assuming the FTP control connection is from $client to $server, the proxy connected to the server using the $proxy source address, and $port is ne- gotiated, then ftp-proxy adds the following rules to the various anchors. (These example rules use inet, but the proxy also supports inet6.)
In case of active mode (PORT or EPRT):
rdr from $server to $proxy port $port -> $client pass quick inet proto tcp from $server to $client port $port flags S/SAFR keep state
In article <r7slra98u8.fsf@vaugirard.enstimac.fr>,
Paul Gaborit <Paul.Gaborit+news@enstimac.fr> wrote:
Je ne suis pas sûr que 'pf' seul puisse répondre à ce besoin : il ne
faudrait autoriser une sortie sur un autre port que pendant la durée
d'une connexion sur le port FTP du même couple client/serveur. C'est
un peu ce que fait authpf mais pour un autre besoin...
La commande ftp-proxy, disponible depuis 3.8, fait tres exactement cela.
Assuming the FTP control connection is from $client to $server, the proxy
connected to the server using the $proxy source address, and $port is ne-
gotiated, then ftp-proxy adds the following rules to the various anchors.
(These example rules use inet, but the proxy also supports inet6.)
In case of active mode (PORT or EPRT):
rdr from $server to $proxy port $port -> $client
pass quick inet proto tcp
from $server to $client port $port flags S/SAFR keep state
Je ne suis pas sûr que 'pf' seul puisse répondre à ce besoin : il ne faudrait autoriser une sortie sur un autre port que pendant la durée d'une connexion sur le port FTP du même couple client/serveur. C'est un peu ce que fait authpf mais pour un autre besoin...
La commande ftp-proxy, disponible depuis 3.8, fait tres exactement cela.
Assuming the FTP control connection is from $client to $server, the proxy connected to the server using the $proxy source address, and $port is ne- gotiated, then ftp-proxy adds the following rules to the various anchors. (These example rules use inet, but the proxy also supports inet6.)
In case of active mode (PORT or EPRT):
rdr from $server to $proxy port $port -> $client pass quick inet proto tcp from $server to $client port $port flags S/SAFR keep state