NFS - 개요
Ø 네트워크를 통해 파티션을 공유하도록
제공하는 서비스
Ø Sun사에서 개발되어 대부분의
유닉스에서 사용
Ø 유닉스 계열의 거의 모든 시스템에서
공유 가능
Ø 시스템의 리소스를 직접 제공하는
서비스이므로 보안에 주의한다.
• 응용을 제공하는 것이 아니라
리소스를 제공하는 서비스이다.
nfs 사용자 계정이 동일하여야함.
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
yum
list nfs-utils
yum
list nfs-utils
rpcbind 포트맵이라 불림 부가설명 넣어야함
관련
파일
•
데몬 : /usr/sbin/exportfs
/usr/sbin/rpcbind
•
관리 스크립트 : /usr/lib/systemd/system/nfs.service
/usr/lib/systemd/system/rpcbind.service
•
환경 설정 파일 : /etc/exports
이전
버전은 portmap을 이용한다.
(rpcbind 대신에)
systemctl
start nfs.service
ntsysv 를 이용해서 사용
설정
NFS로 제공될 자원과 권한 설정
Ø
형식
[export
할 디렉토리] [허가할
클라이언트][(옵션)]
•
허가할 클라이언트 지정
-
주소/넷마스크의
표현 형식으로 사용가능
ex.
203.228.182.0/24 --> 203.228.182네트워크의
모든 주소
-
하나의 IP 및
호스트의 주소로 적을 수 있다.
*,
?등의 와일드카드를 이용 여러 서버를 나타낼 수 있다.
ex.
*.msmc.or.kr --> msmc 도메인에
있는 모든 서버
파티션을 만들고 디렉토리를 만들어서 마운트를 해줘야한다.
-
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로
매핑 될경우 지정된 계정이나
그룹으로
대상을 변경한다.
-
sync : 파일 쓰기 후에 디스크 동기화
-
insecure : 인증되지 않은 접속도 허용
※
서버-클라이언트간 계정 매핑은 UID를 기준으로 한다.
root_squash 와 no_root_squash 는 같이 쓰는게 아님
NFS
클라이언트 - mount
명령
mount
–t nfs NFS서버IP:/공유디렉토리 /마운트할디렉토리
ex) mount
192.168.10.31:/home/pub /home/pub
보통 같은 디렉토리에 해둔다.
•
일반 mount와
동일하다.
•
재귀적인 mount는
불허된다.
fstab에
등록
•
부팅시에 자동으로 마운트 된다.
사전에 rpcbind(postmap)이 실행되어 있어야 한다.
NFS
– ex 예
# cat
exports
/ master(rw)
trusty(rw,no_root_squash)
/home/down
192.168.3.10(rw) 192.168.3.11(ro)
ro는 읽을 수만 있음
/home/joe
pc001(rw,all_squash,anonuid=150,anongid=100)
150번 사용자와 100그룹에 매핑시켜라 1000번 이하 계정이기 때문에 아무것도 못할 확률이 높음 근데 rw가 잇는거면 이렇게 쓰면 안된다는 것을 말한다.
/pub
(ro,all_squash)
cat exports
/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=##)
각
사용자의 디렉토리를 client에서 마운트해서 접근 권한을 확인한다.
뒤에 붙은 것을 해석해야한다.
[root@li10
~]# ll /home/a1
-rw-r--r--
1 root root 1 5월 17 10:50 root.txt
-rw-r--r--
1 st01 st 1 5월 17 10:54 st01.txt
-rw-r--r--
1 503 st 1 5월 17 10:57 st03.txt
[root@li10
~]# ll /home/a2
-rw-r--r--
1 nfsnobody nfsnobody 1 5월 17 10:50 root.txt
-rw-r--r--
1 nfsnobody nfsnobody 1 5월 17 10:55 st01.txt
-rw-r--r--
1 nfsnobody nfsnobody 1 5월 17 10:57 st03.txt
[root@li10
~]# ll /home/a3
-rw-r--r--
1 nfsnobody nfsnobody 1 5월 17 10:50 root.txt
-rw-r--r--
1 st01 st 1 5월 17 10:55 st01.txt
-rw-r--r--
1 503 st 1 5월 17 10:57 st03.txt
[root@li10
~]# ll /home/a4
-rw-r--r--
1 nfsnobody nfsnobody 1 5월 17 10:50 root.txt
-rw-r--r--
1 nfsnobody nfsnobody 1 5월 17 10:55 st01.txt
-rw-r--r--
1 nfsnobody nfsnobody 1 5월 17 10:57 st03.txt
[root@li10
~]# ll /home/a5
-rw-r--r--
1 nfsnobody nfsnobody 1 5월 17 10:50 root.txt
-rw-r--r--
1 nfsnobody nfsnobody 1 5월 17 10:55 st01.txt
-rw-r--r--
1 nfsnobody nfsnobody 1 5월 17 10:57 st03.txt
[root@li10
~]# ll /home/a6
-rw-r--r--
1 nfsnobody nfsnobody 1 5월 17 10:50 root.txt
-rw-r--r--
1 st01 st 1 5월 17 10:55 st01.txt
-rw-r--r--
1 503 st 1 5월 17 10:57 st03.txt
[root@li10
~]# ll /home/a7
-rw-r--r--
1 root root 1 5월 17 10:51 root.txt
-rw-r--r--
1 st01 st 1 5월 17 10:55 st01.txt
-rw-r--r--
1 503 st 1 5월 17 10:57 st03.txt
사용자 계정관리를 잘해야함.
댓글 없음:
댓글 쓰기