1) NFS 란?

- 네트워크를 통해 파티션 공유를 제공하는 서비스

- 대부분 유닉스 계열에서 사용할수 있음

- 시스템의 리소스를 직접 제공하는 서비스이므로 보안에 주의해야 한다 ( 가용성 공격에 취약 )

- UNIX 끼리만 통신할수 있다 ( unix 서버 - unix 클라이언트 )

- 두 시스템간 커널이 달라도 unix 시스템 이기만 하면 사용가능

- NFS server 와 NFS client 로 구성된다

- NFS 서버와 클라이언트의 계정이 동일해야 한다 ( UID 가 같아야함 )

- 계정명이 같아도 UID 가 다르면 동작하지 않는다 ( 권한 할당이 되지 않는다 )

- NFS 클라이언트에서 NFS 서버를 mount 해서 사용

2) 관련 파일 및 실행

1. NFS 서버 설치 확인

- 대부분 유닉스는 기본적으로 설치되어 있다

[ rpm-qa | grep nfs-utils ]

[ rpm-qa | grep rpcbind ]

2. 환경 설정 및 관리 파일

- 데몬

[ /usr/sbin/ecportfs ]

[ /usr/sbin/rpcbind ]

- 관리 스크립트

[ /usr/lib/systemd/system/nfs.service ]

[ /usr/lib/systemd/system/rpcbind.service ]

/* unix 6버전 이하에서는 rpcbind 대신 portmap 을 사용한다 */

- NFS 서버 실행

[ systemctl start nfs.service ]

[ ntsysv ] 를 실행해 설정 ( nfs-server.service , nfs-service )

- 환경 설정 파일

[ /etc/exports ]

1. 형식 : [ export 디렉터리 ] [ 허가할 클라이언트 IP주소 / 넷마스크 ] [(옵션)]

2. 옵션

- ro : 읽기 전용, rw : 읽기 쓰기 허용

- root_squash : 클라이언트의 root를 nobody로 매핑

- no_root_squash : 클라이언트의 root와 서버의 root를 일치시킨다.

- all_squash : 모든 사용자를 nobody로 매핑

- no_all_squash : 서버의 사용자와 클라이언트의 사용자를 일치시킨다.

- All_squash와 no_all_squash 설정에서 root는 어떻게 매칭되는지 확인 한다.

- anonuid=uid, anongid=gid : nobody로 매핑 될경우 지정된 계정이나 그룹으로 대상을 변경

일반 유저

root

Default

no_all_squash

root_squash

설정

all_squash

no_root_squash

* 서버-클라이언트 간 계정 매핑은 UID 기준으로 매핑된다

- NFS 클라이언트 설정

1. 명령어

mount -t nfs [ NFS 서버 IP ] : [ /공유할 디렉터리 ] [ /마운트할 디렉터리 ]

ex) ​mount 192.168.10.31:/home/pub /home/pub

2. 부팅시 자동으로 마운트 하기 위해 [ fstab ] 에 등록한다

+ Recent posts