nfs에서 사용하는 데몬은 다음과 같습니다.
portmap, mountd, rquotad, lockd
nfs는 연결을 할때 사용하는 데몬입니다.
mountd는 연결 후 데이터를 전송하게 됩니다.
port 정보는 다음과 같습니다.
데 몬 | 기 본 포 트 | 추 천 포 트 |
portmap | 111 | 111 |
rpc.nfs | 2049 | 2049 |
rpc.statd | random | random |
rpc.lockd | random | random |
rpc.mountd | random | random |
rpc.rquotad | random | random |
port가 4가지 데몬이 random이므로 해당 port를 고정해 주어야 방화벽을 open할 수 있습니다.
데몬 이름을 보 면 모두 rpc가 앞에 있습니다.
즉, 모든 데몬은 rpc 통신을 하는 것을 의미합니다.
rpcinfo -p
위의 명령어를 수행하면 rpc가 통신하는 내용을 확인할 수 있습니다.
서비스를 재기동해보면 port가 변경되는 것을 확인할 수 있다.
그러면 포트를 어떻게 고정하는것인가?
1) lockd 데몬 포트 고정
vi /etc/init.d/nfslock
daemon rpc.lockd -p 4000
4000 포트로 lockd가 올라오도록 수정
2) lockd, mountd 포트 수정
vi /etc/sysconfig/nfs
LOCKD_TCPPORT=4001
LOCKD_UDPPORT=4001
MOUNTD_PORT=4002
3) rquotad
vi /etc/services
rquotad 4003/tcp #rpc.rquotad tcp port
rquotad 4003/udp #rpc.rquotad udp port
위와 같이 port를 고정 후 해당 서비스들을 리스타트한다.
service nfslock restart
service nfs restart
해당 서비스 리스타트 후 port를 확인한다.
rpcinfo -p
해당 port가 4000, 4001, 4002, 4003, 4004로 올라온 것을 확인할 수 있습니다.
이제 방화벽을 오픈해줘야합니다.
4000:4004
client 서버에서 showmount 서버ip로 정상적으로 가지고 오는지 확인한다.
rquotad 4003/udp #rpc.rquotad udp port
위와 같이 port를 고정 후 해당 서비스들을 리스타트한다.
service nfslock restart
service nfs restart
해당 서비스 리스타트 후 port를 확인한다.
rpcinfo -p
해당 port가 4000, 4001, 4002, 4003, 4004로 올라온 것을 확인할 수 있습니다.
이제 방화벽을 오픈해줘야합니다.
4000:4004
client 서버에서 showmount 서버ip로 정상적으로 가지고 오는지 확인한다.