리눅스 NFS
IT위키
더 많은 작업
- Network File System
- 네트워크로 연결된 다른 시스템의 디렉터리를 마운트해 내 파일 시스템처럼 쓰게 하는 파일 공유 서비스
- NFS 는 파일을 나눠 쓰는 서비스이지 인증 서비스가 아니다. 여러 서버의 사용자 계정·비밀번호를 한곳에서 확인하는 일은 NIS, LDAP, Active Directory, 커버로스 같은 인증·디렉터리 서비스가 맡는다. NIS 로 계정을 통일하고 NFS 로 홈 디렉터리를 공유하는 식으로 함께 쓰는 경우가 많다
- 1984년 Sun Microsystems사에서 개발한 서비스
- TCP/IP기반으로 다른 시스템의 파일 시스템을 마운트하여 사용할 수 있다.
- 사용이 편리한 대신 보안에 취약하다.
- NFSv3 까지는 사용자를 따로 인증하지 않는다. 클라이언트가 보내는 UID·GID 를 그대로 믿고, 접근은 /etc/exports 에 적은 호스트(IP·대역) 단위로만 허락한다. 그래서 클라이언트의 root 가 서버에서도 root 가 되지 않도록 기본값 root_squash 로 nobody 에 맵핑한다
- NFSv4 는 커버로스(sec=krb5, krb5i, krb5p)로 사용자 인증과 무결성·암호화를 붙일 수 있다
- 공유는 필요한 대역에만, 가능하면 ro 로 열고 no_root_squash 는 피한다
- 환경 설정 파일
- 사용 예시
#[공유할 디렉터리] [허가할 호스트1(옵션1,옵션2,..)] [허가할 호스트2(옵션)] [허가할 호스트3(옵션)] .. /nfsdata 192.168.123.0/24(rw) trustGroup(rw,no_root_squash)
주요 옵션
- ro: 읽기 전용 (기본값)
- rw: 읽기/쓰기
- no_root_squash: 클라이언트에서 접근하는 root 인정
- root_squash: 클라이언트에서 접근하는 root 무시. 서버 상의 nobody로 매핑 (기본값)
- all_squash: root를 포함하여 모든 사용자의 권한을 nobody로 매핑
- no_subtree_check: 하위 디렉터리를 검사하지 못하도록 설정
- secure: 포트 번호가 1024 이하의 요청에만 허가
- async: 데이터 변경을 비동기식으로 처리. 쓰기가능한 디스크 스토리지에 사용하면 유용
- anonuid: 접근하는 사용자 권한을 지정한 uid로 매핑
- anongid: 접근하는 그룹 권한을 지정한 gid로 매핑
- NFS에 포함되는 파일은 아니다.
- 부팅시 자동으로 마운트 되도록 하기 위해 같이 사용한다.
- 사용 예시
192.168.5.13:/nfsdata /mnt nfs timeo=15,soft,retrans=3 0 0
NFS 공유는 서버주소:공유디렉터리 꼴로 적어 마운트한다.
# showmount -e 192.168.5.13 # 서버가 공유한 디렉터리 확인 # mount -t nfs 192.168.5.13:/data /mnt # 192.168.5.13 의 /data 를 /mnt 에 마운트
- 서버 주소와 경로 사이에 콜론(:)을 쓴다.
//192.168.5.13/data는 SMB/CIFS 공유를 마운트할 때(mount -t cifs, 삼바) 쓰는 꼴이고,\\192.168.5.13\data는 윈도우 공유 폴더 경로(UNC) 꼴이다 - 부팅할 때 자동으로 붙이려면 같은 꼴을 /etc/fstab 에 적는다(위 예)