Laburo España: 250.000 ofertas de empleo

Sputnik

NFS e IPTABLES

Jueves, 10 de febrero de 2005

Se me planteó un problema ayer en clase... tenia que hacer un firewall con iptables estableciendo una politica por defecto de INPUT (entrada de paquetes a mi maquina) a DROP y que funcionase con NFS...

En principio lo pensé facil... abrimos la entrada al servicio RPC (sunrpc) que corre por el puerto 111 y abro el NFSD (puerto 2079) y listo... pero luego se me iba complicando, porque tenemos varios servicios más: lockd, mountd y statd... ¿que hacemos con estos? Como todos sabeis, tanto statd, como mountd y lockd, se mueven por el primer puerto disponible que el mapeador de puertos les indique. Esto nos complica la tarea, ya que si no sabemos porqué puerto se mueven estos servicios, y tenemos una politica DROP por defecto, ¿como vamos a aceptar algo que no sabemos por donde se mueve?. ´

La única solución que se me ocurrió, fue mapear los puertos de estos servicios a un puerto fijo, ejecutando:

# statd -p 32765 -o 32766
# mountd -p 32767


El problema es lockd, ya que es iniciado por el kernel cuando es necesitado. Lo que sugieren los chicos de NFS, es cambiar nuestros parametros de arranque del kernel para fijarle un puerto fijo al servicio lockd, lo cual, me parece un poco chapuzilla, pero funcionaria:

vmlinuz 3 root=/dev/hda1 lockd.udpport=32768 lockd.tcpport=32768

Asi quedaria en mi caso...

Una vez tenemos todo ligado, solo nos quedaria hacer las reglas:

iptables -A INPUT -f -j ACCEPT -s 192.168.0.0/24
iptables -A INPUT -s 192.168.0.0/24 -d -s 192.168.0.2 32765:32768 -p tcp -j ACCEPT
iptables -A INPUT -s 192.168.0.0/24 -d 192.168.0.2 32765:32768 -p udp -j ACCEPT
iptables -A INPUT -s 192.168.0.0/24 -d 192.168.0.2 2049 -p tcp -j ACCEPT
iptables -A INPUT -s 192.168.0.0/24 -d 192.168.0.2 2049 -p udp -j ACCEPT
iptables -A INPUT -s 192.168.0.0/24 -d 192.168.0.2 111 -p tcp -j ACCEPT
iptables -A INPUT -s 192.168.0.0/24 -d 192.168.0.2 111 -p udp -j ACCEPT


Esto es, en primer lugar aceptamos todos los fragmentos de paquetes (excepto el primero, ya que sería un paquete normal) solo de los que vengan de nuestra lan. Y a continuación abrimos los puertos que hemos dicho anteriormente.

Esta solucion funciona, vale, pero me parece un poco chapuza, ¿se os ocurre alguna forma de habilitar NFS sobre IPTABLES sin mapear los puertos de statd y compañia?


Comentarios

Gracias muy buen consejo, me funciono a la perfeccion

utilizo fedora 3 y la unica modificacion es la siguiente: en el siguiente orden
service iptables restart
service nfs restart
service portmap restart

rpc.statd -p 32765 -o 32766
rpc.mountd -p 32767

Silverado (N) | 19-07-2005 02:23:38

Comentar


Recordar datos

Miniblog

Favoritos

Tira e.c.o.l.*

Tira e.c.o.l.*

sputnik 2004-2005
Algunos derechos reservados.


Suscribir este blog en Bloglines

Blogarama

No a las patentes de software

LaInformacion.com lainformacion.com - Medio Oficial de los Premios Bitacoras 2009