리눅스 NFS 서버
기본 구성
사진첨부
방법
- 퍼미션 설정
L11)
# cd /var/named
# chown root.named x.com.zone*
# chmod 777 x.com.zone*
# service named restart
결과
> ping 192.168.20.1
> ping 192.168.20.2
> ping 192.168.20.3
> ping 192.168.30.1
http:// www.x.com
사진첨부
사진첨부
NFS (Network File System)
- NFS는 1985년 썬 마이크로시스템즈가 처음 개발했다. 원래는 디스크가 없는 클라이언트를 위한 대체 파일 시스템으로 개발했으나 우수한 프로토콜 덕분에 범용 파일 공유 시스템으로 발전했다.
- NFS는 상태 정보를 저장하지 않으므로 어느 클라이언트가 마운트 했었는지 기억할 수없다. 이를 위해 NFS서버는 마운트 요청이 성공적으로 받아들여졌을 때 쿠키를 부여하는 방법을 사용한다. 쿠키는 NFS 서버에 마운트된 디렉토리를 인식해 클라이언트가 사 용하게 만든다.
- 마운트를 해제하고 다시 마운트를 하면 쿠키가 갱신된다. 부팅을 다시 하더라도쿠키가 갱신되지 않는 이유는 서버에 문제가 생기더라도 예전 상태로 돌아갈 수 있어야하기 때문이다.
- 현재 NFS는 리눅스와 유닉스 시스템 간의 파일 공유를 위해서만 사용하며, 윈도우 사용자는 CIFS/삼바를 사용해야 한다.
- portmap은 NIS나 NFS 같은 RPC 기반 서비스에서 사용하는 동적 포트 할당 데몬이다.
사진첨부
NFS 서버 명령어
# rpm -qa nfs-utils
# rpm -qa portmap
# yum -y install *nfs*
# vi /etc/exports
/share 192.168.239.182(rw,sync)
# mkdir /share
# chmod 707 /share/
# /etc/init.d/portmap start
# /etc/init.d/nfs start
# rpcinfo -p localhost
# exportfs -a
# exportfs -r
# exportfs -v
명령어 | 내용 |
---|---|
-a | /etc/exports 파일을 읽어 들인다. |
-r | /etc/exports 파일을 다시 읽어 들인다. |
-v | 현재의 공유 목록을 출력한다. |
NFS 클라이언트 명령어
# rpcinfo -p 서버IP | grep portmap ;portmap서비스 정상동작 확인
# rpcinfo -p 서버IP | grep nfs ;nfs서비스 정상동작 확인
# showmount -e 192.168.239.181
# mkdir /dir1
# mount -t nfs 192.168.239.181:/share /dir1
# cd /dir1
# ls
# touch 11
# ls -al
↓ 참고 ↓
# vi /etc/fstab
[서버IP]:[공유 폴더] [마운트 폴더] nfs defaults 1 2
192.168.189.181:/share /dir1 nfs defaults 1 2
# init 6 // 재부팅
Ex. NFS 서버, 클라이언트
사진첨부
NFS 서버 방법
# rpm -qa nfs-utils
# rpm -qa portmap
# yum -y install *nfs*
# vi /etc/exports
/sales 192.168.10.20(rw,sync)
# mkdir /sales
# touch /sales/1.txt
# touch /sales/1.txt
# chmod 707 /sales/
# /etc/init.d/portmap start
# /etc/init.d/nfs start
# service portmap restsart
# service nfs restart
# exportfs -a
# exportfs -r
# exportfs -v
NFS 클라이언트 방법
# rpcinfo -p 192.168.10.1 | grep portmap
# rpcinfo -p 192.168.10.1 | grep nfs
# showmount -e 192.168.10.1
# mkdir /dir1
# mount -t nfs 192.168.10.1:/sales /dir1
# df -h
# cd /dir1
# ls -l
# touch 3.txt
# ls -l
사진첨부
[공유할 디렉토리] [접근할 호스트 IP 또는 이름 (접근권한)]
- ex1. /share 라는 폴더를 192.168.6.200 컴퓨터에서 읽기만 허용하기
/share 192.168.6.200(ro)
- ex2. /share2 라는 폴더를 192.168.6.x 모든 컴퓨터에서 읽기/쓰기 허용하기
/share2 192.168.6.0/255.255.255.0(rw)
/share4 192.168.10.*(rw)
- ex 3. /share3 라는 폴더를 john.com 도메인 아래의 모든 호스트에게 읽기만 허용하기
/share3 *.john.com(ro)
명령어 | 내용 |
---|---|
rw | 읽기, 쓰기 가능 |
ro | 읽기만 가능 |
secure | 클라이언트 마운트 요청시 포트를 1024 이하로 한다. |
noaccess | 액세스 거부 |
root_squash | 익명계정으로 연결 허용 |
no_root_squash | root 계정으로 연결 허용 |
sync | 파일시스템이 변경되면 즉시 동기화 한다. |
all_squash | 익명계정으로 연결 허용 |
no_all_squash | 서버에 동일한 계정이 있으면 동일한 계정으로 연결 허용 (root=nonfsroot :nonfsroot / user1=user1:user1) |
NFS 서버 접속하는 컴퓨터 제한하는 파일
/etc/hosts.deny
/etc/hosts.allow
- ex. 모든 컴퓨터의 NFS 접속을 거부하되 192.168.6.0 컴퓨터만 접속 허용하기
# vi /etc/hosts.deny
portmap: ALL
# vi /etc/hosts.allow
portmap: 192.168.6.0/255.255.255.0
리눅스 서버 간 공유접근
- NFS 퍼미션은 네트워크로 접근할 경우만 적용되며, 리눅스 표준 퍼미션은 무조건 적용된다.
- 네트워크로 접근하는 경우 NFS 퍼미션과 표준 퍼미션 중 가장 제한적인 퍼미션이 적용됨.
Ex.
사진첨부
- 방법
L9)
# vi /etc/exports
/share1 192.168.10.20(rw,root_squash)
# mkdir /share1
# chmod 707 /share1
# cd /share1
# touch 1
# service portmap restart
# service nfs restart
L10)
# vi /etc/exports
/share1 192.168.10.20(rw,no_root_squash)
# mkdir /share2
# chmod 707 /share2
# cd /share2
# touch 2
# service portmap restart
# service nfs restart
L11)
# vi /etc/exports
/share1 192.168.10.20(ro)
# mkdir /share3
# chmod 707 /share3
# cd /share3
# touch 3
# service portmap restart
# service nfs restart
L7)
# mkdir /dir1
# mkdir /dir2
# mkdir /dir3
# mount -t nfs 192.168.20.1:/share1 /dir1
# mount -t nfs 192.168.20.2:/share2 /dir2
# mount -t nfs 192.168.20.3:/share3 /dir3
# cd /dir1
# touch 11
# cd /dir2
# touch 22
# cd /dir3
# touch 33
L9, 10, 11)
# service nfs restart
- 재부팅해도 똑같이 마운트 되게
L8)
# vi /etc/fstab
[서버IP]:[공유 폴더] [마운트 폴더] nfs defaults 1 2
192.168.20.1:/share1 /dir1 nfs defaults 1 2
192.168.20.2:/share2 /dir2 nfs defaults 1 2
192.168.20.3:/share3 /dir3 nfs defaults 1 2
# init 6 // 재부팅
사진첨부
사진첨부
Ex. 윈도우와 리눅스 서버 간 NFS 공유
사진첨부
- W200813)
파일서비스 -> 네트워크 파일 시스템용 서비스 설치하기
-> mount \1.1.1.2\share1 G:
-> 탐색기에서 확인
- W200813)
-> umount G:
- L9)
# vi /etc/exports
/share1 192.168.30.1(rw,root_squash)
# mkdir /share1
# chmod 707 /share1
# cd /share1
# touch 1
# service portmap restart
# service nfs restart
사진첨부
- W200812)
- 파일서비스 -> 네트워크 파일 시스템용 서비스 설치하기
C:\mount1 -> NFS 공유하기: 권한 -> 루트 액세스 허용
- W200812)
사진첨부
- L10)
# mkdir /dir1
# mount -t nfs 192.168.10.100:/sales /mount1
# cd /mount1
# touch 1.txt
Ex.
사진첨부