[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
pf avec une seule interface réseau
Bonjour,
Je possède un portable avec comme système d'exploitation FreeBSD 6.1, un
routeur/firewall netgear wpnt834 et une freebox pour me connecter à
Internet. J'ai décidé d'installer un pare-feu personnel pour cela, j'ai
choisis pf d'OpenBSD. J'ai une seule interface réseau qui est ndis0.
La méthode de filtrage est simple, je bloque tout et j'autorise ce dont
j'ai besoin. Cependant, je rencontre un problème avec la gestion du
protocole ftp. J'ai regardé du coté de ftp-proxy mais sans succès. Du
moins la rdr ne fonctionne pas.
Voici mes fichiers de configuration:
Fichier rc.conf:
inetd_enable="YES"
inetd_flags="-wW -c 60 -a 127.0.0.1"
Fichier inetd.conf
ftp-proxy stream tcp nowait root /usr/libexec/ftp-proxy ftp-proxy
-u proxy -m 49151 -M 50000
Fichier /etc/services
ftp-proxy 8021/tcp #FTP Proxy
Un sockstat -4 m'affiche ceci:
root inetd 838 5 tcp4 127.0.0.1:8021 *:*
Voici mon fichier de configuration pf.conf:
# $FreeBSD: pf.conf,v 1.0 2006/10/31 21:49:20 olivier Exp $
# ---------------------
# Macros.
# ---------------------
# Interfaces réseau
int_if_1="lo0"
int_if_2="ndis0"
# Positionnement du drapeau pour le protocole tcp
tcpflags="flags S/SFRA"
# Routeur/firewall Netgear
wpnt834="192.168.1.1"
# Proxy http
proxy_http="proxy.free.fr"
proxy_port="3128"
# Gestion du fichier de log (pflog)
logblock=""
logpass="log"
# ---------------------
# Options.
# ---------------------
# On détruit les paquets plutôt que retourner une erreur (RETURN)
# icmp ou tcp reset
set block-policy drop
# ---------------------
# Normalisation.
# ---------------------
# On normalise les paquets entrants
scrub in all
# ---------------------
# Redirection.
# ---------------------
rdr on $int_if_2 proto tcp from any to any port 21 \
-> 127.0.0.1 port 8021
# ---------------------
# Filtrage.
# ---------------------
# --------------
# défaut.
# --------------
# Par défaut, on bloque tout
block $logblock all
# Autorise le traffic en local
pass in quick on $int_if_1 all
pass out quick on $int_if_1 all
# Antispoof
antispoof for { $int_if_1 $int_if_2 }
block in $logblock quick from no-route
block out $logblock quick from no-route
# ---------------
# Utilisateur.
# ---------------
# Autorise le DHCP du routeur/firewall Netgear wpnt834
pass out $logpass quick on $int_if_2 proto tcp from ($int_if_2) to \
$wpnt834 port bootpc $tcpflags keep state
# Gestion de la résolution de noms DNS
pass out $logpass quick on $int_if_2 proto udp from ($int_if_2) to \
any port domain keep state
# Gestion du proxy
pass out $logpass quick on $int_if_2 proto tcp from ($int_if_2) to \
$proxy_http port $proxy_port $tcpflags keep state
# Gestion du protocole ICMP
# Autorise le ping vers d'autres machines
pass out $logpass quick on $int_if_2 inet proto icmp from ($int_if_2) \
to any icmp-type 8 code 0 keep state
# Autorise le traffic http et https
pass out $logpass quick on $int_if_2 proto tcp from ($int_if_2) to \
any port { http https } $tcpflags keep state
# Autorise le traffic ftp avec ftp-proxy
pass in $logpass on $int_if_2 inet proto tcp from $int_if_2 port > 49151 \
keep state
# Autorise le traffic pour la messagerie instantanée (MSN, IRC,
# ICQ et Jabber)
pass out $logpass quick on $int_if_2 proto tcp from ($int_if_2) to \
any port { 16863 6667 5190 5222 } $tcpflags keep state
# Autorise l'utilisation de l'outil cvsup (utilitaire de
# mise à jour)
pass out $logpass quick on $int_if_2 proto tcp from ($int_if_2) to \
any port 5999 $tcpflags keep state
# Fin du fichier
Lorsque je teste cette configuration avec la commande ftp, j'obtiens le
message
suivant: Trying 62.243.72.50...
ftp: connect: Operation not permitted
ftp>
Je pense que la rdr ne fonctionne pas vu que les paquets sont sortant et
qu'elle fonctionne
uniquement sur les paquets entrant. Je ne vois pas comment régler mon
problème.
Du coup, j'amerai savoir s'il est possible de redirigé ces fameux
paquets sortant ? Je suis
vraiment pommé. Merci à l'avance de votre aide.