Welcome, Guest. Please Login
FUG-FR logo
 
  HomeHelpSearchLogin  
 
PF (Packet filter) sous FreeBSD (Read 7119 times)
Olivier
Junior Member
**
Offline


I Love OpenBSD!

Posts: 71
Gender: male
PF (Packet filter) sous FreeBSD
24. Nov 2006 at 21:34
 
Bonjour,  Smiley

Il y a quelques jours, j'ai configuré avec un ami, le célèbre pf (Packet Filter) d'OpenBSD sous FreeBSD. Nous avons réalisé un fichier de configuration très strict pour une station de travail (utilisateur final). Nous nous sommes heurtés à un problème très connu, la gestion du protocole FTP.

Je précise que la politique adoptée est la suivante: on ferme tout et on ouvre ce dont on a besoin. Il existe une solution pour palier à ce problème. Il faut utiliser ftpsesame, disponible uniquement dans les ports. Il est tout à fait possible d'en créer un paquetage. Sa fonction, permet de se connecter en utilisant le protocole ftp en passant par le pare-feu.
Il se configure de cette façon:

Code:
# Autorise le traffic ftp via le filtre de paquet automatique ftpsesame
anchor "ftpsesame/*" on $int_if
pass out quick on $int_if proto tcp from ($int_if) to any port 21 $tcpflags keep state  


Vous devez ajouter ces lignes dans votre fichier de configuration appelé pf.conf.

Pour qu'il s'exécute dès le démarrage de votre système, veuillez ajouter ces lignes:

Code:
ftpsesame_enable="YES"
ftpsesame_flags="-i ndis0" 


à votre fichier rc.conf. Ndis0 est pour moi mon interface réseau.

Vous pouvez tester le ftp, ftpsesame se chargera d'ouvrir le(s) port(s) besoin pendant la durée de l'opération.

Je tenais juste à partager ma petite aventure avec pf  Wink

++  Smiley
Back to top
 

OpenBSD, because security matters
 
IP Logged
 
fgudin
Global Moderator
*****
Offline


PouetPouetBSD roul3z

Posts: 1552
Thonon (74)
Gender: male
Re: PF (Packet filter) sous FreeBSD
Reply #1 - 25. Nov 2006 at 13:04
 
Ca ferait un joli petit article pour le coin "Sécurité" du wiki, non ? Wink
Back to top
 
 
IP Logged
 
Olivier
Junior Member
**
Offline


I Love OpenBSD!

Posts: 71
Gender: male
Re: PF (Packet filter) sous FreeBSD
Reply #2 - 30. Nov 2006 at 00:11
 
Je ne sais pas si ftpsesame mérite un article, une petite explication pourquoi pas. Il est vraiment utile dans le cas d'une station de travail isolée. Si notre réseau utilise un routeur ou un pare-feu sous OpenBSD, dans ce cas, il est recommandé d'utiliser ftp-proxy ou pftpx.

++  Smiley
Back to top
 

OpenBSD, because security matters
 
IP Logged
 
kermitt
Full Member
***
Offline


Relax

Posts: 249
974
Gender: male
Re: PF (Packet filter) sous FreeBSD
Reply #3 - 26. Jan 2007 at 15:33
 
Olivier wrote on 24. Nov 2006 at 21:34:
Bonjour,  Smiley

Il y a quelques jours, j'ai configuré avec un ami, le célèbre pf (Packet Filter) d'OpenBSD sous FreeBSD. Nous avons réalisé un fichier de configuration très strict pour une station de travail (utilisateur final). Nous nous sommes heurtés à un problème très connu, la gestion du protocole FTP.

Je précise que la politique adoptée est la suivante: on ferme tout et on ouvre ce dont on a besoin. Il existe une solution pour palier à ce problème. Il faut utiliser ftpsesame, disponible uniquement dans les ports. Il est tout à fait possible d'en créer un paquetage. Sa fonction, permet de se connecter en utilisant le protocole ftp en passant par le pare-feu.
Il se configure de cette façon:

Code:
# Autorise le traffic ftp via le filtre de paquet automatique ftpsesame
anchor "ftpsesame/*" on $int_if
pass out quick on $int_if proto tcp from ($int_if) to any port 21 $tcpflags keep state  


Vous devez ajouter ces lignes dans votre fichier de configuration appelé pf.conf.

Pour qu'il s'exécute dès le démarrage de votre système, veuillez ajouter ces lignes:

Code:
ftpsesame_enable="YES"
ftpsesame_flags="-i ndis0" 


à votre fichier rc.conf. Ndis0 est pour moi mon interface réseau.

Vous pouvez tester le ftp, ftpsesame se chargera d'ouvrir le(s) port(s) besoin pendant la durée de l'opération.

Je tenais juste à partager ma petite aventure avec pf  Wink

++  Smiley

Autre proposition sans ports  suplémentaires
A la sauce BSD..
Exemple
Station Freebsd qui sert de passerelle et de pare feu pour le lan!

1) Activer inetd => /etc/rc.conf
inetd_enable="YES"              # Run the network daemon dispatcher (YES/NO)

2) Modifier /etc/inetd.conf
ftp-proxy       stream  tcp     nowait  proxy   /usr/libexec/ftp-proxy  ftp-proxy -m 49551 -M 51552

Notes - Options:
      ftp-proxy écoute sur le port 8021
      Par défaut, le serveur FTP natif d'OpenBSD ftpd(8) utilise la plage 49152 à 65535
        - Remplacement de root par proxy
        - Restriction sur le nombre de ports qui seront ouvert en cas de besoin
user = [proxy] , -m = [départ du 1er port ouvert]  , -M= [dernier port choisi]

3) Ajouter dans /etc/pf.conf
# nat
nat on $ext_if from $int_if:network to any -> $ext_if
# redirection
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

# Filtrage  ftp-proxy
pass in quick on $ext_if proto tcp from any \
       to $ext_if port 21 \
       keep state

pass in quick on $ext_if proto tcp from any \
       to $ext_if user proxy \
       keep state
Back to top
« Last Edit: 26. Jan 2007 at 16:11 by kermitt »  
WWW WWW  
IP Logged
 
jc1
God Member
*****
Offline


BSD For Ever !!

Posts: 845
Un coin en France
Gender: male
Re: PF (Packet filter) sous FreeBSD
Reply #4 - 26. Jan 2007 at 18:39
 
Bonjour,

+1 pour un article sur le wiki.

Dans un premier temps je propose de faire simple.
Un copier coller  sur le wiki de ces deux messages.
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