Globedia.com

×
×

Error de autenticación

Ha habido un problema a la hora de conectarse a la red social. Por favor intentalo de nuevo

Si el problema persiste, nos lo puedes decir AQUÍ

×
cross

Suscribete para recibir las noticias más relevantes

×
Recibir alertas

¿Quieres recibir una notificación por email cada vez que Claudio Concepción Certad escriba una noticia?

Permitir NFS y servicios relacionados a través del Firewall (iptables)

15/06/2014 18:10 0 Comentarios Lectura: ( palabras)

NFS es un servicio que nos permite compartir recursos de nuestro equipo en la red local. Ya lo hemos configurado antes mientras hacíamos la guía del Servidor PXE. Sin embargo, para el mismo consideramos que habríamos de tener tanto el Firewall como SELinux deshabilitados para evitar inconvenientes a los clientes para arrancar correctamente las diferentes distribuciones servidas mediante PXE (y todos los demás servicios que implica, a parte de NFS).

Ahora pretendamos servir cualquier recurso con NFS pero con el Firewall habilitado. Muchos piensan que solo basta con permitir el paso a través de los puertos 2049 (NFS) y 111 (rpcbind).

No obstante hay otros servicios de los cuales también depende el correcto funcionamiento de NFS. Ellos son rpc.statd, rpc.lockd, rpc.mountd y rpc.quotad. Para visualizar los puertos que están usando NFS y los demás servicios relacionados, lo haremos con el comando rpcinfo.

[fraterneo@rainbow ~]$ rpcinfo -p | awk -F " " '{print $3 ", " $4 ", " $5}' | uniq

proto, port, service

tcp, 111, portmapper

udp, 111, portmapper

udp, 37007, status

tcp, 40452, status

tcp, 2049, nfs

tcp, 2049, nfs_acl

udp, 2049, nfs

udp, 2049, nfs_acl

udp, 47974, nlockmgr

tcp, 59089, nlockmgr

udp, 875, rquotad

tcp, 875, rquotad

udp, 20048, mountd

tcp, 20048, mountd

udp, 20048, mountd

tcp, 20048, mountd

udp, 20048, mountd

tcp, 20048, mountd

Ahora bien, permitir el paso por los puertos listados ahí no resolverá la situación, puesto que muchos de esos servicios usan puertos aleatorios al iniciar/reiniciarse. Por lo que si permitimos entrada por el puerto 20048 de mountd, funcionará ahora, pero al reiniciar el servicio o el equipo, no lo hará por estar usando un puerto diferente al de ahora.

El fichero /etc/sysconfig/nfs guarda los parámetros de inicio de dichos servicios o daemons y es ahí donde le indicaremos qué puertos usar para que sean siempre los mismos. Dentro de dicho fichero identificamos los siguientes parámetros, quedando como sigue. Los números de puertos que elegí son los recomendados para estos casos.

[fraterneo@rainbow ~]$ sudo nano /etc/sysconfig/nfs 

# TCP port rpc.lockd should listen on.

LOCKD_TCPPORT=32803

# UDP port rpc.lockd should listen on.

LOCKD_UDPPORT=32769

# Optional arguments passed to rpc.mountd. See rpc.mountd(8)

RPCMOUNTDOPTS="--port 2000"

# Optional arguments passed to rpc.statd. See rpc.statd(8)

STATDARG="-p 4000"

# Enable usage of gssproxy. See gssproxy-mech(8).

GSS_USE_PROXY="no"

Reiniciamos los servicios y verificamos que los cambios surtan efecto.

[fraterneo@rainbow ~]$ sudo systemctl restart nfs-idmap.service 

[fraterneo@rainbow ~]$ sudo systemctl restart nfs-lock.service

[fraterneo@rainbow ~]$ sudo systemctl restart nfs-mountd.service

[fraterneo@rainbow ~]$ sudo systemctl restart nfs-rquotad.service

[fraterneo@rainbow ~]$ sudo systemctl restart nfs-idmap.service

[fraterneo@rainbow ~]$ sudo systemctl restart nfs-server.service

Verificamos nuevamente con el comando rpcinfo.

[fraterneo@rainbow ~]$ rpcinfo -p | awk -F " " '{print $3 ", " $4 ", " $5}' | uniq

proto, port, service

tcp, 111, portmapper

udp, 111, portmapper

udp, 4000, status

tcp, 4000, status

tcp, 2049, nfs

tcp, 2049, nfs_acl

udp, 2049, nfs

udp, 2049, nfs_acl

udp, 32769, nlockmgr

tcp, 32803, nlockmgr

udp, 875, rquotad

tcp, 875, rquotad

udp, 2000, mountd

tcp, 2000, mountd

udp, 2000, mountd

tcp, 2000, mountd

udp, 2000, mountd

tcp, 2000, mountd

Finalmente permitimos la entrada a dichos puertos a través del Firewall (iptables).

[fraterneo@rainbow ~]$ sudo iptables -t filter -A INPUT -m state --state NEW -m tcp -p tcp --dport 2049 -j ACCEPT

[fraterneo@rainbow ~]$ sudo iptables -t filter -A INPUT -m state --state NEW -m tcp -p tcp --dport 111 -j ACCEPT

[fraterneo@rainbow ~]$ sudo iptables -t filter -A INPUT -m state --state NEW -m udp -p udp --dport 111 -j ACCEPT

[fraterneo@rainbow ~]$ sudo iptables -t filter -A INPUT -m state --state NEW -m tcp -p tcp --dport 2000 -j ACCEPT

[fraterneo@rainbow ~]$ sudo iptables -t filter -A INPUT -m state --state NEW -m udp -p udp --dport 2000 -j ACCEPT

[fraterneo@rainbow ~]$ sudo iptables -t filter -A INPUT -m state --state NEW -m udp -p udp --dport 32769 -j ACCEPT

[fraterneo@rainbow ~]$ sudo iptables -t filter -A INPUT -m state --state NEW -m tcp -p tcp --dport 32803 -j ACCEPT

[fraterneo@rainbow ~]$ sudo iptables -t filter -A INPUT -m state --state NEW -m tcp -p tcp --dport 4000 -j ACCEPT

[fraterneo@rainbow ~]$ sudo iptables -t filter -A INPUT -m state --state NEW -m udp -p udp --dport 4000 -j ACCEPT

[fraterneo@rainbow ~]$ sudo iptables -t filter -A INPUT -m state --state NEW -m tcp -p tcp --dport 875 -j ACCEPT

[fraterneo@rainbow ~]$ sudo iptables -t filter -A INPUT -m state --state NEW -m udp -p udp --dport 875 -j ACCEPT

[fraterneo@rainbow ~]$ sudo iptables-save


Sobre esta noticia

Autor:
Claudio Concepción Certad (682 noticias)
Fuente:
fraterneo.blogspot.com
Visitas:
2815
Tipo:
Reportaje
Licencia:
Creative Commons License
¿Problemas con esta noticia?
×
Denunciar esta noticia por

Denunciar

Comentarios

Aún no hay comentarios en esta noticia.