Per impostazione predefinita, alcuni servizi NFS (lato_server) utilizzano porte note, ma alcuni normalmente utilizzano solo porte casuali. L'uso di porte casuali non funziona così bene con le rigide regole del firewall che bloccano le porte casuali ma sconosciute. Pertanto, a volte è meglio modificare o specificare manualmente le porte statiche da utilizzare per i servizi NFS (lato_server).
Questo post descrive come configurare i servizi NFS (lato server) per l'esecuzione su porte statiche in alternativa.
Panoramica
I servizi NFS (lato server) includono:
- NLM (gestione blocco NFS o blocco nel kernel)
- rpc.mountd
- rpc.nfsd
- rpc.rquotad
- rpc.statd
Si noti che lockd e rpc.statd vengono eseguiti anche su client NFS. Inoltre, rpc.rquotad non fa strettamente parte della famiglia NFS ma viene utilizzato per controllare le quote sui file system condivisi dal server NFS e montati da uno o più client NFS.
Con NFSv3, rpc.nfsd interagisce con LOCKD/NLM, rpc.mountd e rpc.statd. Tuttavia, con NFSv4, tutte queste interazioni sono ora incorporate/consolidate.
Per CentOS/RHEL 7, l'RPM nfs-utils ora fornisce /etc/modprobe.d/lockd.conf, /etc/sysconfig/nfs e /etc/sysconfig/rpc-rquotad come configurazione principale NFS (lato server) File. Inoltre, c'è anche /etc/nfs.conf, che, in un prossimo futuro, potrebbe deprecare altri file di configurazione.
Per CentOS/RHEL 7, le porte statiche per rpc.mountd, rpc.nfsd e rpc.rquotad sono rispettivamente 20048, 2049 e 875, poiché sono considerate porte note. Altri servizi NFS (lato_server), come LOCKD/NLM e rpc.statd, normalmente usano solo porte casuali, ma /etc/modprobe.d/lockd.conf e /etc/sysconfig/nfs offrono valori di porta di esempio come riferimento. I valori delle porte di esempio sono abbastanza buoni per la maggior parte degli scenari.
# cat /etc/services mountd 20048/tcp # NFS mount protocol mountd 20048/udp # NFS mount protocol 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/modprobe.d/lockd.conf # Set the TCP port that the NFS lock manager should use. # port must be a valid TCP port value (1-65535). #options lockd nlm_tcpport # # Set the UDP port that the NFS lock manager should use. # port must be a valid UDP port value (1-65535). #options lockd nlm_udpport
# cat /etc/sysconfig/nfs # Port rpc.mountd should listen on. #MOUNTD_PORT=892 # Port rpc.statd should listen on. #STATD_PORT=662 # Outgoing port statd should used. The default is port # is random #STATD_OUTGOING_PORT=2020
# cat /etc/sysconfig/rpc-rquotad # -I, --autofs Ignore autofs mount points # -p port, --port port Listen on alternative port # -s, --no-setquota Don't allow setting quotas with RPC (default) # -S, --setquota Allow setting quotas with RPC # -x path, --xtab path Use alternative NFSD export table RPCRQUOTADOPTS=""
Esempi di configurazione di /etc/modprobe.d/lockd.conf
Per specificare LOCKD/NLM per utilizzare le porte statiche libere, decommenta nlm_tcpport e nlm_udpport per impostare i nuovi valori delle porte, quindi ricarica il modulo del kernel bloccato o semplicemente riavvia.
options lockd nlm_tcpport=32803 options lockd nlm_udpport=32769
Esempi di configurazione di /etc/sysconfig/nfs
Per specificare rpc.mountd per utilizzare una porta statica libera diversa da 20048, è sufficiente rimuovere il commento da MOUNTD_PORT per impostare il nuovo valore della porta, quindi riavviare il servizio nfs-mountd o il servizio nfs-server.
MOUNTD_PORT=892
Per specificare rpc.nfsd per utilizzare una porta statica libera diversa da 2049, è sufficiente rimuovere il commento da RPCNFSDARGS per aggiungere il nuovo valore della porta, quindi riavviare il servizio nfs-server.
RPCNFSDARGS="-p 20499"
Per specificare rpc.statd per l'utilizzo di porte statiche libere, è sufficiente rimuovere il commento da STATD_PORT e STATD_OUTGOING_PORT per impostare i nuovi valori di porta, quindi riavviare il servizio rpc-statd.
STATD_PORT=662 STATD_OUTGOING_PORT=2020
Esempi di configurazione di /etc/sysconfig/rpc-rquotad
Per specificare rpc.rquotad per l'utilizzo di una porta statica libera diversa da 875, è sufficiente rimuovere il commento da RPCRQUOTADOPTS per aggiungere il nuovo valore della porta, quindi riavviare il servizio rpc-rquotad.
RPCRQUOTADOPTS="-p 8755"
Controllo del servizio
Riavvia il servizio nfs-mountd:
# systemctl restart nfs-mountd.service
Riavvia il servizio nfs-server:
# systemctl restart nfs-server.service
Riavvia il servizio rpc-rquotad:
# systemctl restart rpc-rquotad.service
Riavvia il servizio rpc-statd:
# systemctl restart rpc-statd.service
Verifica:
# rpcinfo -p