De forma predeterminada, algunos servicios NFS (lado del servidor) usan puertos conocidos, pero otros normalmente solo usan puertos aleatorios. El uso de puertos aleatorios no funciona tan bien con reglas estrictas de firewall que bloquean puertos aleatorios aún desconocidos. Por lo tanto, a veces es mejor modificar manualmente o especificar puertos estáticos para que los usen los servicios NFS (lado del servidor).
Esta publicación describe cómo configurar los servicios NFS (del lado del servidor) para que se ejecuten en puertos estáticos como alternativa.
Resumen
Los servicios NFS (del lado del servidor) incluyen:
- NLM (administrador de bloqueo NFS o bloqueo en el núcleo)
- rpc.mountd
- rpc.nfsd
- rpc.rquotad
- rpc.estado
Tenga en cuenta que lockd y rpc.statd también se ejecutan en clientes NFS. Además, rpc.rquotad no es estrictamente parte de la familia NFS, pero se usa para verificar cuotas en sistemas de archivos compartidos por el servidor NFS y montados por uno o más clientes NFS.
Con NFSv3, rpc.nfsd interactúa con LOCKD/NLM, rpc.mountd y rpc.statd. Sin embargo, con NFSv4, todas estas interacciones ahora están incorporadas/consolidadas.
Para CentOS/RHEL 5 y 6, el RPM nfs-utils se envía /etc/sysconfig/nfs como archivo de configuración NFS (del lado del servidor) principal. Los puertos estáticos para rpc.nfsd y rpc.rquotad están predeterminados en 2049 y 875, respectivamente, ya que se consideran puertos conocidos. Otros servicios NFS (del lado del servidor), como LOCKD/NLM, rpc.mountd y rpc.statd, normalmente solo usan puertos aleatorios, pero /etc/sysconfig/nfs ofrece valores de puertos de ejemplo como referencia. Los valores de puerto de ejemplo son lo suficientemente buenos para la mayoría de los escenarios.
# cat /etc/services nfs 2049/tcp nfsd shilp # Network File System nfs 2049/udp nfsd shilp # Network File System rquotad 875/tcp # rquota daemon rquotad 875/udp # rquota daemon
# cat /etc/sysconfig/nfs # TCP port rpc.lockd should listen on. #LOCKD_TCPPORT=32803 # UDP port rpc.lockd should listen on. #LOCKD_UDPPORT=32769 # Port rpc.mountd should listen on. #MOUNTD_PORT=892 # Port rquotad should listen on. #RQUOTAD_PORT=875 # Port rpc.statd should listen on. #STATD_PORT=662 # Outgoing port statd should used. The default is port # is random #STATD_OUTGOING_PORT=2020
Ejemplos de configuración de /etc/sysconfig/nfs
Para especificar LOCKD/NLM para usar puertos estáticos libres, simplemente descomente LOCKD_TCPPORT y LOCKD_UDPPORT para establecer los nuevos valores de puerto, luego reinicie el servicio nfs o el servicio nfslock.
LOCKD_TCPPORT=32803 LOCKD_UDPPORT=32769
Para especificar rpc.mountd para usar un puerto estático libre, simplemente descomente MOUNTD_PORT para establecer el nuevo valor de puerto, luego reinicie el servicio nfs.
MOUNTD_PORT=892
Para especificar rpc.nfsd para usar un puerto estático libre que no sea 2049, simplemente elimine el comentario de RPCNFSDARGS para agregar el nuevo valor de puerto y luego reinicie el servicio nfs.
RPCNFSDARGS="-p 20499"
Para especificar rpc.rquotad para usar un puerto estático libre que no sea 875, simplemente elimine el comentario de RQUOTAD_PORT para establecer el nuevo valor de puerto y luego reinicie el servicio nfs.
RQUOTAD_PORT=8755
Para especificar que rpc.statd use puertos estáticos libres, simplemente descomente STATD_PORT y STATD_OUTGOING_PORT para establecer los nuevos valores de puerto, luego reinicie el servicio nfslock.
STATD_PORT=662 STATD_OUTGOING_PORT=2020
Control de servicios
Reinicie el servicio nfs:
# service nfs restart
Reinicie el servicio nfslock:
# service nfslock restart
Verificación:
# rpcinfo -p