2019. 12. 19. 14:06ㆍSecurity/리눅스
* NFS
- 파티션을 공유하도록 제공하는 서비스로 대부분의 유닉스에서 사용.
- NFS server는 클라이언트를 UID로 인식하기 때문에 UID가 일치하지 않으면 NFS는 작동하지 않음.
- samba는 서버가 리눅스 클라이언트는 윈도우고, NFS는 서버와 리눅스 모두 유닉스이다.
- 10.33에서 10.31에 되어있는 디렉토리를 마운트해서 사용한다.
설치
#rpm -qa | grep nfs-utils
#rpm -qa | grep rpcbind
nfs는 리눅스를 설치할때 무조건 같이 설치되기때문에 위의 명령어로 설치 되어있는지 확인해본다.
#systemctl start nfs.service 또는 ntsysv에서 체크해준다.
export
형식 : [export 할 디렉토리] [허가할 클라이언트][(옵션)]
서버쪽에서 공유를 허용할 디렉토리를 설정하는 파일.
허가할 클라이언트 지정은 주소/넷마스크의 표현 형식으로 사용가능
ex) 203.228.182.0/24 --> 203.228.182네트워크의 모든 주소
※ 서버-클라이언트간 계정 매핑은 UID를 기준으로 한다.
ro : 읽기 전용
rw : 읽기 쓰기 허용
root_squash : 클라이언트의 root를 nobody로 매핑(가지고 있는 권한이 없음)
no_root_squash : 클라이언트의 root와 서버의 root를 일치시킨다.
all_squash : 모든 사용자를 nobody로 매핑
no_all_squash : 서버의 사용자와 클라이언트의 사용자를 일치시킨다.
All_squash와 no_all_squash 설정에서 root는 어떻게 매칭되는지 확인한다.
mount
mount –t nfs NFS서버IP:/공유 디렉토리 /마운트 할 디렉토리
ex) mount 192.168.10.31:/home/pub /home/pub
# cat 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)
/home/a1 192.168.1.12(rw, no_root_squash)
/home/a2 192.168.1.12(rw, all_squash)
/home/a3 192.168.1.12(rw, no_all_squash)
/home/a4 192.168.1.12(rw, all_squash,root_squash)
/home/a5 192.168.1.12(rw, all_squash,no_root_squash)
/home/a6 192.168.1.12(rw, no_all_squash,root_squash)
/home/a7 192.168.1.12(rw, no_all_squash,no_root_squash)
/home/a8 192.168.1.12(rw,anonuid=##,anongid=##) // ##에 각각 uid, gid 번호
서버와 클라이언트에 공통 계정과 공통 uid, 공통 gid를 만들어 놓고 실습해봐야 한다.
[실습] server(192.168.10.204)와 client(192.168.10.202)에서 nfs 테스트 해보기
1. server와 client에 gid가 1100번인 nfs 그룹 생성
#groupadd -g 1100 nfs
2. server와 client에 uid가 1101인 계정 nfs1 생성 후에 확인
#useradd -g 1100 -u 1101 nfs1
#cat /etc/passwd | grep nfs
3. server와 client의 /home에 a1~a8까지 폴더 생성
4. server의 /etc/exports에
#/home/a1 192.168.10.202(rw,no_root_squash)
#/home/a2 192.168.10.202(rw,all_squash)
#/home/a3 192.168.10.202(rw,no_all_squash)
#/home/a4 192.168.10.202(rw,all_squash,root_squash)
#/home/a5 192.168.10.202(rw,all_squash,no_root_squash)
#/home/a6 192.168.10.202(rw,no_all_squash,root_squash)
#/home/a7 192.168.10.202(rw,no_all_squash,no_root_squash)
#/home/a8 192.168.10.202(rw,anonuid=1101,anongid=1100)
의 내용 추가
띄어쓰기를 해서는 안 된다
5. a1~a8에 접속할때 root 또는 other로 접속하기 때문에 퍼미션을 변경해준다
#chmod -R 757 a1~a8
6. nfs 재시작
systemctl restart nfs.service
7. client에서 mount –t nfs NFS서버IP:/공유 디렉토리 /마운트 할 디렉토리의 형태로 마운트 해준다.
#mount -t nfs 192.168.10.204:/home/a1 /home/a1
#mount -t nfs 192.168.10.204:/home/a2 /home/a2
#mount -t nfs 192.168.10.204:/home/a3 /home/a3
#mount -t nfs 192.168.10.204:/home/a4 /home/a4
#mount -t nfs 192.168.10.204:/home/a5 /home/a5
#mount -t nfs 192.168.10.204:/home/a6 /home/a6
#mount -t nfs 192.168.10.204:/home/a7 /home/a7
#mount -t nfs 192.168.10.204:/home/a8 /home/a8
8. 각각 폴더의 권한 확인
a1 : no_root_squash
root와 nfs1, bst15에서 모두 접속한 계정 소유로 파일 생성
a2 : all_squash
root, nfs1, bst15 모두 nfsnobody 소유로 파일 생성
a3 : no_all_squash
root는 nfsnobody로 나머지는 각자 계정 소유로 파일이 생성된다.
a4 : all_squash, root_squash
모두 nfsnobdy 소유로 파일이 생성된다.
a5 : all_squash, no_root_squash
모두 nfsnobdy 소유로 파일이 생성된다.
a6 : no_all_squash, root_squash
root는 nfsnobody로 나머지는 각자 계정 소유로 파일이 생성된다.
a7 : no_all_squash, no_root_squash
root와 nfs1, bst15에서 모두 접속한 계정 소유로 파일 생성
a8 : anonuid=1101, anongid=1100
모든 계정이 지정해준 uid와 gid로 계정을 생성해준다.
'Security > 리눅스' 카테고리의 다른 글
netstat 간단한 정리 (0) | 2020.03.16 |
---|---|
Day22-SSH (0) | 2020.01.21 |
DAY20-samba(2) (0) | 2019.12.17 |
DAY19-samba (0) | 2019.12.16 |
Day18-DNS 복습 (0) | 2019.12.13 |