TEngo una duda

INF. Jefe Div. Ingenieria (Enrique Maldonado) enrique en directemar.cl
Lun Sep 16 18:10:10 CLT 2002


> 
> fxp0 externa
> fxp1 interna
> 
> PF.CONF
> -----------
> block in on fxp0 all
> pass  in on fxp0 inet proto tcp from any to any port 20
> pass  in on fxp0 inet proto tcp from any to any port 21
> pass  in on fxp0 inet proto tcp from any to any port 25
> pass  in on fxp0 inet proto tcp from any to any port 53
> pass  in on fxp0 inet proto tcp from any to any port 80
> pass  in on fxp0 inet proto tcp from any to any port 110
> pass  in on fxp0 inet proto tcp from any to any port 443
> pass out on fxp0 all
> pass  in on fxp1 all
> pass out on fxp1 all
> 

Primero, entiendo que lo que quieres hacer es que los usuarios internos
puedan salir a hacer lo que quieran y que los externos solo entren a tu red
a los protocolos http, https, pop3, nntp, ftp y smtp.

Si entiendo bien, entonces tienes un problema, ya que como estas haciendo
NAT los usuarios externos no pueden llegar a tus equipos internos sin
importar lo que hagas con las reglas, por lo tanto lo único que estas
logrando es que se pueda tener acceso con los protocolos mencionados al
firewall, lo cual estaría bien si haces una cuantas reglas de "rdr" (man
nat.conf)

Nota además que para simplificar la lectura he usado macros que me permiten
definir constantes que uso después en las reglas, esto es útil especialmente
para los casos en los que cambia la IP de una interfaz o el nombre de la
tarjeta.

Te sugiero para lo mismo:
--------------------------------------------
#def. de interfaces
NIC_ext = "fxp0"
NIC_int = "fxp1"
#Def. de IP
#nota que pongo /32 porque me refiero solo al FW y no a toda la red /24
FW_ext = "200.xx.xx.xx/32"
FW_int = "192.168.1.x/32"
#Definiciones de Servicios (repites lo mismo con los otros)
WEB = "{ http, https }"
MAIL = "{ pop3, smtp }"
#reglas
#deja salir todo del FW (es una forma simple pero no 100% segura)
pass out all keep state
#Bloquea todo lo que llega al FW
block in all
#Ahora dejas entrar solo lo que te interesa
#Primero todo lo de la red interna
pass in on $NIC_int all keep state
#luego lo de afuera hacia adentro (esto no funciona porque estas haciendo
NAT)
pass in on $NIC_ext proto tcp from any to $FW_ext port $WEB
pass in on $NIC_ext proto tcp from any to $FW_ext port $MAIL
----------------------------------------------------------------------------
---------


> NAT.CONF
> -----------
> nat on fxp0 from 192.168.1.0/24 to any -> 200.xx.xx.xx
> 

Como te decía aquí tendrías que hacer unos rdr para redireccionar los
paquetes que lleguen al FW hacia los servidores correspondientes.

Ej:

rdr on fxp0 proto tcp from any to 200.xx.xx.xx/32 port 80 -> 192.168.0.1
port 80

En este caso me parece que no se pueden usar macros para simplificar la
lectura 

Para el caso del FTP el problema es un poco más complicado y por lo tanto te
suguiero usar el "ftp-proxy", lee la documentación en "man ftp-proxy" y si
te va mal me cuentas....


Saludos,

Enrique M.