TEngo una duda

Jorge Severino jorge en opentrade.cl
Lun Sep 16 20:13:07 CLT 2002


envio un extracto de la salida de:

tcpdump -n -e -ttt -i pflog0


----- Original Message -----
From: "INF. Jefe Div. Ingenieria (Enrique Maldonado)"
<enrique en directemar.cl>
To: <bsd en inf.utfsm.cl>
Sent: Monday, September 16, 2002 6:10 PM
Subject: RE: TEngo una duda


> >
> > 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.