NFS

• 네트워크를 통해 파티션을 공유하도록 제공하는 서비스
• Sun사에서 개발되어 대부분의 유닉스에서 사용
• 유닉스 계열의 거의 모든 시스템에서 공유 가능
• 시스템의 리소스를 직접 제공하는 서비스이므로 보안에 주의한다.
  - 응용을 제공하는 것이 아니라 리소스를 제공하는 서비스이다.

 

 

 

 

 

NFS 설치

이미 설치되어 있다.

NFS 서버 설치 확인
# rpm -qa | grep nfs-utils
nfs-utils-1.2.3-64.el6.x86_64
nfs-utils-lib-1.1.5-11.el6.x86_64
# rpm -qa | grep rpcbind
rpcbind-0.2.0-13.el6_9.1.x86_64


관련 파일

• 데몬 : /usr/sbin/exportfs
/usr/sbin/rpcbind
• 관리 스크립트 : /usr/lib/systemd/system/nfs.service  //ntsysv 에서 nfs.service 선택하기
/usr/lib/systemd/system/rpcbind.service
• 환경 설정 파일 : /etc/exports
이전 버전은 portmap을 이용한다. (rpcbind 대신에)

 

NFS 서버 실행

# systemctl start nfs.service
• 관련 패키지인 nfs-server.service는 자동으로 실행된다.

 

NFS 서버 - exports

NFS로 제공될 자원과 권한 설정
형식
[export 할 디렉토리] [허가할 클라이언트][(옵션)]
• 허가할 클라이언트 지정
 - 주소/넷마스크의 표현 형식으로 사용가능
  ex. 203.228.182.0/24 --> 203.228.182네트워크의 모든 주소
 - 하나의 IP 및 호스트의 주소로 적을 수 있다.
  *, ?등의 와일드카드를 이용 여러 서버를 나타낼 수 있다.
  ex. *.msmc.or.kr --> msmc 도메인에 있는 모든 서버

 

NFS 서버 – exports 옵션

- ro : 읽기 전용, rw : 읽기 쓰기 허용
- root_squash : 클라이언트의 root를 nobody로 매핑
- no_root_squash : 클라이언트의 root와 서버의 root를 일치시킨다.
- all_squash : 모든 사용자를 nobody로 매핑
- no_all_squash : 서버의 사용자와 클라이언트의 사용자를 일치시킨다.
- All_squash와 no_all_squash 설정에서 root는 어떻게 매칭되는지 확인한다.

  일반 유저 root
Default no_all_squash root_squash
설정 all_squash no_root_squash

- anonuid=uid, anongid=gid : nobody로 매핑 될경우 지정된 계정이나
그룹으로 대상을 변경한다.
- sync : 파일 쓰기 후에 디스크 동기화
- insecure : 인증되지 않은 접속도 허용
※ 서버-클라이언트간 계정 매핑은 UID를 기준으로 한다.

 

NFS 클라이언트 - mount

• 명령
mount –t nfs NFS서버IP:/공유디렉토리 /마운트할디렉토리
ex) mount 192.168.10.31:/home/pub /home/pub
 - 일반 mount와 동일하다.
 - 재귀적인 mount는 불허된다.

• fstab에 등록
 - 부팅시에 자동으로 마운트 된다.

 

NFS – ex 예

# cat /etc/exports
/                                   master(rw) trusty(rw,no_root_squash)
/home/down          192.168.3.10(rw) 192.168.3.11(ro)
/home/joe                pc001(rw,all_squash,anonuid=150,anongid=100)
/pub                            (ro,all_squash)

 

 

NFS 실습

 

+ Recent posts