Infomation

[Ubuntu] NFS 설치 및 설정

DarkSoul.Story 2013. 1. 4. 12:34
반응형

1. NFS 정의

- Network File System의 약자로, 네트워크상에서 다른 컴퓨터에 있는 파일 시스템을 마운트시켜 자료를 공유할 수 있게 해주  
   는 서버 시스템이다.
- 리눅스 운영체제간에 파일을 공유하기 위해 많이 사용되고 있다.
- 삼바는 리눅스-윈도간의 파일및 하드웨어 공유인 반면 리눅스를 비롯한 유닉스 운영체제에서는 삼바보다는 NFS를 많이 사용 
  한다.
- 서버에 의해 마운트되는 것이 아닌 클라이언트가 파일 시스템 서버를 마운트하여 자신의 파일 시스템처럼 사용한다.
- NFS는 보안에 허점이 존재하기 때문에 사용에 주의를 기울려야 한다.

2. NFS 설치 (서버)

- NFS 커널 서버와 NFS 포트맵 설치

[출처] 우분투 nfs|작성자 magu

 root# sudo apt-get install nfs-common nfs-kernel-server portmap


* Portmap


 - RPC(Remote Procedure Call) 프로그램을 port(tcp/udp)에 매핑시켜주는 데몬으로,  NFS를 사용하려면 꼭 필요

   한  데몬이다.

RPC를 사용하는 프로그램(NFS)이 시작되면 Portmap은 서비스를 제공할 Port를 Portmap에 등록시킴

- Portmap은 Time Service를 필요로 함 (Time Service는 xinetd 데몬에 포함되어 있음.)

  


- NFS에 사용될 디렉토리 생성 및 권한 부여

root# mkdir /home/share/nfs

root# chmod 777 nfs

[출처] 우분투 nfs|작성자 magune



3. NFS 설정 파일 변경 (서버)


root# vi /etc/exports


/etc/exports 파일에서 마지막 부분에 아래 내용 추가

형식 : [/공유 디렉터리] [접근 IP] [옵션] 

/home/share/nfs *(rw,no_root_squash,async)

[출처] 우분투 nfs|작성자 magune



* 부분에 특정 IP만 등록 가능


[옵션]

ro                                 파일 시스템을 읽기전용으로 마운트 
rw                                파일시스템을 읽기/쓰기 로 마운트

no_root_squash : NFS 서버와 NFS 클라이언트의 root 사용자를 같도록 설정

no_all_squash : root 이외 모든 사용자에 대해 똑같은 UID를 가진 사용자는 모두 동일한 권한을 줌

                       (모든 UID - nobody) : 기본값

sync : NFS 서버와 클라이언트 사이에 SYNC를 맞춤

insecure : 인증되지 않은 액세스도 가능
link_relative : 서버에 있는 루트와의 링크를 포함하는 디렉토리에서 얻는 "../" 만큼 링크 앞에 두어 절대 심볼릭 링크를 상대 심볼릭 링크로 바꿀때 사용



4. NFS 커널 서버 및 NFS 포트맵 재 시작


root# sudo /etc/init.d/nfs-kernel-server restart

root# sudo /etc/init.d/portmap restart


5. NFS 주요 데몬 


* rpc.mountd

   - NFS 마운트 데몬

   - /etc/exports 설정에 따라 클라이언트의 마운트 요청을 처리


* rpc.nfsd

   - 클라이언트가 rpc.mountd에 접속이 유지되면, rpc.nfsd를 사용하여 클라이언트의 요구에 따라 처리

   - /etc/exports 설정에 따라 클라이언트는 다양한 작업을 할 수 있음


* rpc.lockd

  - 파일 잠금과 관련된 데몬으로 현재 사용 중인 파일을 다른 사람이 사용할 수 없게 잠금 역할을 함.


*rpc.startd

 - 파일 잠금과 해제의 역할을 함


6. NFS 클라이언트 설정


* 마운트하여 사용할 디렉토리 생성


 root# mkdir /mnt/nfs


* NFS 서버와 마운트


형식 : root# mount -t nfs [호스트명 또는 IP]:[/NFS 서버에서 설정한 공유 디렉터리] [/마운트 포인트]

root# mount -t nfs -o nolock 192.168.119.140:/home/share/nfs /mnt/nfs


* NFS 마운트에서 사용되는 옵션


rsize = n        : NFS 서버로부터 읽어 들이는 바이트 수 지정, 기본값은 1024 바이트
wsize = n       : NFS 서버에 쓰기할때 사용하는 바이트 수 지정, 기본값은 1024 바이트
timeo = n        : RPC 타임아웃이 발생되고 나서 첫번째 재전송 요구를 보낼때 사용되는 시간 ( 기본값:7*1/10초)
retrans = n      : 주 타임아웃을 발생시키는 부 타임아웃과 재전송 횟수 (기본값: 3)
port = n          :  NFS 서버와 연결할 수 있는 포트 번호를 지정
fg                  : 첫번째 NFS 마운트 시도에서 타임아웃이 발생되면 즉시 중단 (기본값)
intr                : 주 타임아웃이 발생되었을때 신호를 보내 NFS 호출을 인터럽트함.
hard              : 주 타임아웃이 발생되면 server not responding 출력하고 무한정 재시도
soft               : 주 타임아웃이 발생되면 프로그램에게 I/O 에러를 보고


[참고] 

만일 부팅시 마운트를 시키고자 할 때


/etc/fstab에 등록 시킴 



반응형

'Infomation' 카테고리의 다른 글

ssh filtering with android usb-modem  (0) 2013.01.07
securesolutions  (0) 2013.01.07
[Ubuntu] Apache UserDir 모듈 사용하기  (0) 2013.01.04
2013년 보안 위협 - 벤더사별 정리  (0) 2013.01.02
[무선랜 스캐너] inSSIDer 테스트  (0) 2012.12.27