Information Security

32-1 NFS(Network File System) 본문

Linux

32-1 NFS(Network File System)

leeeeye321 2017. 10. 31. 15:27

NFS(Network File System)

-네트워크를 통하여 공유된 원격지 호스트의 자원을 로컬 호스트에 마운트하여 공유하는데 사용되는 프로그램

-RPC(Remote Procedure Call)를 이용하여 네트워크상에 위치한 다른 컴퓨터의 프로그램에게 서비스를 요청하는데 사용되는 프로토콜

-대형 서비스 환경 구축 시 공유 파일 서버를 사용하여 데이터 일관성을 유지하기 위하여 사용된다.

 

NFS 서버 설정에 사용되는 파일

/etc/exports

-NFS 주 설정 파일

-NFS 서버에서 공유하는 디렉터리의 정보가 저장되어 있는 파일

 

/etc/fstab

NFS 서버가 제공하는 디렉터리를 클라이언트에서 부팅 후에도 사용하기 위한 정보를 저장하고 있는 파일

 

/etc/sysconfig/nfs

NFS 서버에서 제공하는 NFS 관련 프로그램들이 사용하는 포트 번호를 저장하고 있는 파일

 

NFS Server

Server-A

<->

NFS Client

Client-Linux

 

Server-A (NFS Server)

nfs 패키지 설치

 

클라이언트에게 공유할 디렉터리 생성 후 허가권 부여

 

nfs 주 설정 파일에 위의 내용 추가

 

/var/server_share    

클라이언트에게 공유할 디렉터리 경로

100.100.100.0/24    

공유 디렉터리에 접근 가능한 클라이언트의 IP주소/네트워크주소/도메인

 

옵션

rw    

클라이언트에게 읽기, 쓰기를 허용

sync    

파일의 내용이나 공유 디렉터리의 파일이 변경되면 즉시 변경된 내용 동기화

no_root_squash    

-사용자가 클라이언트 시스템의 root 계정으로 접근했을 경우 서버에서도 root 권한 가지게 한다.

-만약 서버에서 nobody 권한으로 지정하려 할 경우 root_squash 옵션 사용

no_all_squash    

각 사용자의 권한을 공유 디렉터리에서도 동일하게 인식

 

exportfs

-nfs 서버(데몬)를 다시 시작하지 않고도 공유 목록(/etc/exports) 파일의 변경된 내용을 적용시킬 수 있는 명령어

-a    /etc/exports 파일을 읽어들임(처음 한번 사용)

-r    /etc/exports 파일을 다시 읽어들임

-u [ip]:/[디렉터리]    입력한 디렉터리를 공유 목록에서 제외

-v    현재 공유된 디렉터리의 목록 출력

 

NFS 서버 시작

nfs 데몬은 rpc 프로토콜을 기반으로 동작하기 때문에 먼저 rpc를 동작시킨 후에 nfs 데몬을 활성화한다.

 

-현재 공유된 디렉터리 목록 출력

-설정한 옵션외에 기본적으로 추가되어 있는 옵션이 있다.

 

rpc 기반으로 동작하는 nfs 프로그램들이 사용하는 포트 번호 확인

 

NFS에 사용된 프로그램 목록

rpc.portmapper (111번 포트)

RPC를 사용하는 모든 프로그램이 지정된 포트에서 동작하도록 도와주는 프로그램

rpc.mountd (유동 포트)

클라이언트의 마운트 요청을 처리하는 프로그램

rpc.rquotad (유동 포트)

NFS 파일 시스템에서 quota(쿼터)를 할 때 사용되는 프로그램

rpc.nfsd (2049번 포트)

rpc.mountd에 의해 마운트된 디렉터리에 대해 읽기, 쓰기 작업 등을 할 때 사용되는 프로그램

rpc.lockd (유동 포트)

파일 잠금을 통해 여러 사용자가 동시에 한 파일을 수정하는 것을 방지하는 프로그램

rpc.statd (유동 포트)

nfs.lockd와 함께 동작하며 비정상적으로 nfs가 종료, 재부팅 되었을 때 복구를 하는 프로그램

 

 

유동적인 포트 번호는 방화벽에 의해 접근이 차단되기 때문에 접속에 사용되는 포트를 고정시키고, 고정된 포트를 방화벽에 등록하여 클라이언트가 프로그램에 원활하게 접속할 수 있도록 설정해야 한다.

 

nfs 서버 재시작

 

유동 포트를 사용하는 프로그램의 포트가 설정한 대로 고정되었는지 확인

 

Client-Linux (NFS Client)

nfs 패키지 설치

 

마운트 포인트 생성

 

nfs 서버 100.100.100.110가 공유하고 있는 디렉터리 정보 출력

 

nfs 타입으로 100.100.100.110 컴퓨터가 제공하고 있는 /var/server_share 디렉터리를 로컬 /mnt/client_share에 연결

 

마운트 확인

 

마운트 포인트로 이동 -> 파일 하나 생성해보기

 

nfs 서버에서 공유 중인 디렉터리로 이동 -> 마운트 포인트에서 생성했던 파일이 있다.

 

재부팅 후에도 nfs 통하여 마운트한 디렉터리가 해제되지 않도록 /etc/fstab에 등록

 

재부팅 후 자동으로 마운트 되었는지 확인

※ NFS 서버를 종료시키고 클라이언트를 재부팅 시키면

NFS 클라이언트 입장에서는 서버에 마운트하기 위하여 부팅 시 지속적으로 자원을 요청하지만

서버가 종료되어 있거나 데몬(rpcbind, nfs)이 동작하지 않는다면 자원을 사용할 수 없어 연결이 되지 않는다.

(실습만 하고 /etc/fstab에 추가한 내용을 주석 처리한다.)

'Linux' 카테고리의 다른 글

35 KICKSTART  (0) 2017.11.02
34 KICKSTART  (0) 2017.11.01
31-3 CHROOT (change root) + TCP_WRAPPER  (0) 2017.10.31
31-2 PAM을 이용한 로그인 제한  (0) 2017.10.30
31-1 FTP 서버 접속을 허용하기 위한 설정  (0) 2017.10.29