IT/NCP[Naver Cloud Platform]

NFS 포트 방화벽 관련

송시 2022. 7. 26. 00:51
728x90

몇년을 봐도 한번 설정하면 눈여겨 보는게 아니라서 그런가 매번 까먹는다

 

이 내용의 카테고리는 사실 NCP 보다는 리눅스에 가깝지만

 

iptables 를 통해서 테스트한게 아니고, NCP의 VPC 환경에서 ACG로 테스트 한 내용이기에 NCP로 넣어본다.

 

NCP에서 NAS를 제공하고 있지만 가끔 서버에 블록스토리지를 추가하거나 해서 블록디바이스를 NFS로 활용하는 경우가 종종 있다.

 

이 경우 nfs를 사용할 때에 ACG 정책에 영향을 받게 된다.

 

크게 nfs 관련 포트는 111(portmapper) 과 2049(nfs) 가 있고, 그 외에 mountd 나 nlockmgr 이 존재한다.

 

nfs의 핵심 서비스 포트로는 111 / 2049 / 20048(mountd)이며, 이 핵심 서비스는 고정되어 있다.

 

그리고 비 핵심 서비스는 서비스가 재시작 될 때마다 랜덤하게 사용된다.

 

물론 어떤 입장에서 보면 status 나 nlockmgr 이 핵심 서비스이긴 하지만 nfs 버전에 따라서는 핵심이 아닐 수도 있을테다.

 

어쨌든 ACG 설정은 다음과 같이 진행하면 된다.

 

nfs 를 확인하고 마운트 하는데에는 크게 2개의 명령어를 주로 사용하게 된다.

showmount 와 mount 명령어 이 두개가 정상적으로 사용하되기 위해서는 111,2049,20048(mountd) 

 

showmount 시에는 111 과 mountd 포트 를 client 가 nfs server에 요청한다

# showmount -e hostname
client -> nfsserver:111 (rpc.portmapper)
client -> nfsserver:20048 (rpc.mountd)

즉 client 입장에서는 outbound 만 111,20048,2049 ACG를 허용하면 된다.

*VPC 환경에서는 outbound에 대해서도 ACG를 설정할 수 있다. 

 

반대로 서버의 입장에서는 inbound 만 111,2049,2048 ACG를 허용하면 된다.
# mount nfsserver:/nfsmt /test
client -> nfsserver:2049 (rpc.nfs)

NFS 버전에 따라 사용 안되는 rpc port 들도 있기에 우리가 흔히 알고 있듯이 랜덤으로 바뀌는 나머지 포트들에 대해서 고정을 해서 방화벽 설정에 허용을 해준다는 등의 행동이 무조건 필요하진 않다.

 

예를 들어 NFSv4 에서는 portmapper에 의해 nfslock 기능을 사용하지 않기에 해당 포트를 고정한다거나 고정하지 않았더라도 방화벽에 허용을 할 필요가 없게 된다.

 

뭐 아직은 NFSv3를 더 선호하는 게 있는 것 같고, 나름 그래도 오래되긴 했지만 넷앱과(NCP에서 거의 대부분 사용하는 스토리지 회사) NFSv4에 대한 몇몇 이슈도 있는 것 같기도 하여 v3를 권고하는 경우도 있더라.

728x90