NFS란?
컴퓨터 사용자가 원격 컴퓨터에 있는 파일을 마치 자신의 컴퓨터에 있는 것 처럼 검색하고 사용하며 수정할 수 있다.
SMB와 거의 흡사하지만 Linux와 Windows간 파일공유에는 대부분 SMB를 쓰고, Linux간에는 대부분 NFS를 쓰는 경우가 많은 것 같다. NFS는 TCP/IP 프로토콜을 사용하며, 포트번호는 고정되어있지 않다.
NFS의 단점
NFS는 앞서 말했다시피 포트번호가 고정되어있지 않기때문에, 방화벽을 사이에 두고 사용하기에 굉장히 취약하다.
기본적으로 NFS는 사용하지 않는 포트를 임의로 사용할 수 있도록 해주는 RPC를 사용하기때문에 특정 포트를 사용하지 않고 무작위로 사용한다.
NFS 패키지 설치 후 rpcinfo -p 명령어를 사용하면 현재 사용중인 포트를 볼 수 있다.
만약 방화벽을 거친다면 사용하는 포트를 모두 뚫어줘야 하기에 보안에 취약하다. 물론 거의 방화벽을 거쳐서 쓰는 일은 없겠지만!
NFS 통신과정
NFS클라이언트들은 NFS 서버와 통신을 할 때 rpc program number를 이용하여 통신한다.
rpc program number들은 /etc/rpc 에 지정되어있다.
NFS server에서는 portmap이 111port에서 정보를 받아서 해당 서버 프로세스와 연결을 해준다. portmap과 rpcbind는 중계역할을 해준다. nfs서버의 nfsd는 2049에서 listen하지만 그 외의 다른 서버 프로세스는 임의의 포트에서 실행되고 nfs server쪽에 실행되는 daemon들과 port에 대한 정보는 portmap에 등록된다.
rpcinfo 명령어로 portmap에 등록된 정보를 볼 수 있고,
rpcinfo -p 명령어로 nfs서버에서 실행되는 서버 daemon들의 port를 볼 수 있다.
iptables 이론 (0) | 2020.01.02 |
---|
댓글 영역