duda con pf

Enrique Maldonado enrique en directemar.cl
Lun Oct 24 17:49:03 CLST 2005


Hay varios errores en esto (yo hace tiempo que no configuro pf, pero 
esto es lo que recuerdo):

desde ya muchas gracias wrote:
> hola compañeros... tengo un problema con mis reglas de pf... yo tengo
> varias pc y quiero hacer nat desde una para q todas puedan salir a la
> internez... estuve leyendo como hacerlo y defini una regla de nat:
> 
> nat on $ext_if from <mispc> to any -> ($ext_if)
> 
> donde:
> ext_if es la interfaz externa
> mispc es una variable q contiene las IP q quiero q naveguen
> 
> 
> y desp tengo las reglas de filtrado:

tu solo bloqueaste todo lo que entra

> block in all
> 
pero no lo que sale (out), por lo tanto ninguna regla de out tiene 
sentido, ya que esta todo permitido.....

en la siguiente linea estas permitiendo que todo lo que venga desde la 
red interna entre al FW sin verificar.......
(a mi no me gusta esta regla)
> pass in quick on $int_if all

por ejemplo, nada de lo siguiente nunca estuvo bloqueado y por lo tanto 
ninguna de las reglas tienen sentido practico
> pass out quick on $int_if all
> 
> pass out quick on $ext_if proto tcp from XXX to any port 22 modulate state
> pass out quick on $ext_if proto tcp from XXX to any port 80 modulate state
> pass out quick on $ext_if proto tcp from XXX to any port 443 modulate state
> pass out quick on $ext_if proto tcp from XXX to any port 25 modulate state
> pass out quick on $ext_if proto tcp from XXX to any port 53 modulate state
> 

> y mi problema esta en XXX, si pongo <mispc> no me anda, pingueando
> desde cualquier pc de las q estan en <mispc> llego solo hasta $int_if
> y si pongo $ext_if anda bien... pero no me convence q este bien una
> regla asi.

te sugiero que mantengas tu regla de NAT y cambies tus reglas de 
firewall por lo siguiente (una versión simple):

/* bloquea todo lo que llega al firewall */
block in all

/* pasa todo lo que sale del firewall, */
/* aqui estas asumiendo que lo que entro al firewall ya fue verificado*/
/* y que el firewall no esta produciendo trafico indeseable */
/* uno podria ser mas quisquilloso aqui, pero esto es aceptable */
pass out all

/* ahora permites el trafico de tus usuarios */
pass in on $int_if proto tcp from <mispc> to any port ssh modulate state
pass in on $int_if proto tcp from <mispc> to any port www modulate state
pass in on $int_if proto tcp from <mispc> to any port https modulate state
pass in on $int_if proto tcp from <mispc> to any port smtp modulate state
pass in on $int_if proto tcp from <mispc> to any port domain modulate state

/* si ademas quieres hacer ping para pruebas */
pass in on $int_if proto icmp from <mispc> to any icmp-type echoreq keep 
state

> 
> Ah! aclaro q la variable net.inet.ip.forwarding la tengo seteada en 1
> 
> chas gracias, Ceci.

Saludos,

Enrique M.


Más información sobre la lista de distribución BSD