J'utilise le logiciel Packet Filter comme Firewall; Il implémente AUTHPF pour authentifier les utilisateurs sous SSH et ainsi faire de nouvelles règles de filtrage (contenue dans le fichier authpf.rules) pour chaque users. Le problème, c'est que le NAT fait partie de ces règles de filtrage, et après l'authentifcation de l'utilisateur, il me crée toutes les règles de filtrage nouvelles (même le NAT), mais ne me fait pas effectivement le NAT; ce qui fait que cet utilisateur n'a pas ensuite accès à Internet.
Quelqu'un a déjà eu ce problème ? Ou quelqu'un a-t-il une piste à me donner ???
Voici le fichier de Configuration de base pf.conf (après avoir effectué les règles de base, il fait le lien vers Authpf.rules lorsqu'il voit les ancres nat-anchor "authpf/*", rdr-anchor "authpf/*", anchor "authpf/*" )
sad.gif sad.gif sad.gif
##############
#Fichier pf.conf #
##############
#
#pf.conf - Gambetta
#11/04/2005: Creation par Bastien Rozenzwejg
#
#
####### Configuration des macros
#
# Interface interne
int_if = "xl0"
# Interface externe
ext_if = "fxp0"
# Liste des addresses privées inutilisables RFC 1918
addr_priv = "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }"
# Liste des services TCP et UDP
tcp_services = "{53, 80, 443, 110, 993, 5999}"
udp_services = "{53}"
# Liste des serveurs internes newdns, lilas, etoile
int_serv = "{ 194.167.199.12, 194.167.199.92, 194.167.199.252 }"
# Serveur GPI
gpi_serv = "{ 194.167.199.110}"
# Serveur FTP
ftp_serv = "{ 194.167.199.92 }"
# Serveur Web local sur le routeur
web_serv99 = "{ 192.168.99.1 }"
# ports Instant Messaging
# aol |---------msn---------| |----yahoo messenger----|
chat_ports = "{5190, 1863, 5060, 1503, 6901, 5050, 5101, 5100, 5001}"
####### Configuration authpf
#
table <authpf_users> persist
set block-policy return
set loginterface $ext_if
# Regles NAT apres authentification par authpf.rules
rdr-anchor "authpf/*"
nat-anchor "authpf/*"
# binat-anchor "authpf/*"
####### Configuration nat
#
#nat on $ext_if from $user_ip to any -> $ext_if
# Sur $ext_if (Exterieur)
#
# le prive ne doit pas etre route
block drop in quick on $ext_if from $addr_priv to any
block drop out quick on $ext_if from any to $addr_priv
# La passerelle (cette machine!!) s'autorise à passer
pass out quick log on $ext_if proto tcp from $ext_if flags S/SA modulate state
pass out quick log on $ext_if proto udp from $ext_if keep state
pass out quick log on $ext_if proto tcp from 127.0.0.1 flags S/SA modulate state
pass out quick log on $ext_if proto udp from 127.0.0.1 keep state
### on laisse passer le dhcp, dns, web et ssh
pass in quick on $int_if proto tcp from $int_if/24 to $int_if/32 port 22 flags S/SA keep state
pass in quick on $int_if proto tcp from $int_if/24 to lo0 port 5000 flags S/SA keep state
pass in quick on $int_if proto { tcp,udp }from $int_if/24 to $int_if/32 port 67 keep state
pass in quick on $int_if proto { tcp,udp }from $int_if/24 to $int_if/32 port 53 flags S/SA keep state
block in quick on $int_if from any to $int_if/24
# OUTGOING: pass all.
pass out quick on $int_if proto { tcp,udp } from any to $int_if/24 keep state
pass out on $int_if inet proto icmp all keep state
# --- Ping
pass quick log on { $int_if $ext_if } proto icmp from any to any
anchor "authpf/*"
______________________________________________________________________________
##################
# Fichier authpf.rules #
##################
#
#autthpf.rules - Gambetta
#11/04/2005: Creation par Bastien Rozenzwejg
#
#
####### Configuration des macros
#
# Interface interne
int_if = "xl0"
# Interface externe
ext_if = "fxp0"
# Liste des addresses privées inutilisables RFC 1918
addr_priv = "{ 127.0.0.0/8, 192.168.0.0/16, 172.16.0.0/12, 10.0.0.0/8 }"
# Liste des services TCP et UDP
tcp_services = "{53, 80, 443, 110, 993, 5999}"
udp_services = "{53}"
# Liste des serveurs internes newdns, lilas, etoile
int_serv = "{ 194.167.199.12, 194.167.199.92, 194.167.199.252 }"
# Serveur GPI
gpi_serv = "{ 194.167.199.110}"
# Serveur FTP
ftp_serv = "{ 194.167.199.92 }"
# Serveur Web local sur le routeur
web_serv99 = "{ 192.168.99.1 }"
# ports Instant Messaging
# aol |---------msn---------| |----yahoo messenger----|
chat_ports = "{5190, 1863, 5060, 1503, 6901, 5050, 5101, 5100, 5001}"
####### Config du NAt et RDR
#
#
nat on $ext_if from $user_ip to any -> $ext_if
no rdr on $int_if proto tcp from $user_ip to any port 80
####### Config Règles de filtrage utilisateur
# On laisse passer pour $user_ip (l'utlisateur authentifié) tout tcp/udp...
#
pass in quick on $int_if proto udp from $user_ip to $int_serv keep state
pass in quick on $int_if proto tcp from $user_ip to any port $tcp_services flags S/SA keep state
pass in quick on $int_if proto tcp from $user_ip to port ssh flags S/SA keep state