NFS server

SunChan Kwon·2024년 6월 4일
0

Linux

목록 보기
14/20

네트워크로파일 공유
서버에서 공유할 디렉토리 준비
클라이언트에서 마운트 방식으로 연결

$ dnf install -y nfs-utils

/etc/exports파일

형식

#directiry Target Option
/share 192.168.10.100/32(rw,sync)
수정 후 exportfs -r로 reload

옵션설명
roread only 공유
rwread write
no_root_squash활성화 시원격 클라이언트의 root 사용자를 "nobody"의 UID, GID가 할당되지않도록 한다.클라이언트의 root 사용자와 서버의 root를 동일하게 설정합니다.
sync이전 요청 사항이 스퇴지에 저장되기 전에 다른 요청에 답장하지 않는다. 반대는 async나 미지정
sec보안 방법 지정, 기본값 sys

보안 방식

방법설명
noneroot 사용자가 공유 디렉토리에 접근하면 nfsnobody 사용자의 UID, GID 할당
sys접근한 사용자의 UID, GID 기준으로 리눅스 표준 권한 체계 적용
krb5사용자 인증을 위해 로컬 사용자의 UID, GID 대신 kerberos 사용, NFS 서버는 kerberos서비스에 연결되어있고, keytab 파일을 가지고 있어야 한다.
krb5i사용자 인증을 위해 keberos를 사용하며 데이터 조작을 방지하기 위해 check-sum을 사용해 무결성 검증
krb5p사용자 인증을 위해 keberos를 사용하며 check-sum을 사용한 데이터 조작 방지와 네트워크 트래픽을 스니핑 하여 데이터를 훔쳐볼 수 없도록 암호화 지원, 가장 안전하지만 시스템의 성능을 저하시킬 수 있음

nfs service, firewall

nfs-server.service를 활성화하고, 방화벽에 nfs 서비스를 추가한다.

systemctl enable nfs-server.service
firewall-cmd --add-service=nfs --permanent

mount(nfs server)

1. mount 할 디렉토리, 파일 생성

$ mkdir /nfs
$ touch /nfs/{1..5}
$ ls /nfs/
1  2  3  4  5

2. exports 파일 수정

$ vi /etc/exports
/nfs            192.168.10.100/32(rw,sync)   

$ exportfs -r

mount(client server)

1. mount 할 server에 package install

2. mount

mount <option> server-address:path mount-point

$ mount -t nfs rw,sync ns.sckwon.com:/share /mnt


자동 마운트

직접 매핑 방식

nfs server

$ vi /etc/exports
/autofs/direct  192.168.10.0/24(rw,sync)

$ exportfs -r

$ touch /autofs/direct/testfile

client server

path mount-option server-address:path

$ dnf install -y autofs

$ vi /etc/auto.master.d/direct.autofs 
/-    /etc/auto.direct

$ vi /etc/auto.direct
/mnt/nfs	-rw,sync	192.168.10.20:/autofs/direct

$ mkdir /mnt/nfs

$ systemctl enable --now autofs.service 

$ ls /mnt/nfs
testfile

간접 매핑 방식

nfs server

$ vi /etc/exports
/autofs/indirect        192.168.10.0/24(rw,sync)

$mkdir /autofs/indirect

$ exportfs -r

client server

path mount-option server-address:path

$ vi /etc/auto.master.d/indirect.autofs
/nfs    /etc/audo.indirect

$ vi /etc/auto.indirect
indirect	-rw,sync	192.168.10.20:/autofs/indirect

$ cd /nfs

# 접근해야 마운트 확인 가능
$ cd indirect

[root@rocky9 nfs]# ls
indirect

$ ls indirect/
testfile

wild 매핑 방식

nfs server

$ vi /etc/exports
/autofs/dirA            192.168.10.0/24(rw,sync)
/autofs/dirB            192.168.10.0/24(rw,sync)

$ mkdir /autofs/{dirA,dirB}
$ touch /autofs/{dirA,dirB}/testfile

$ exports -r

client server

$ vi /etc/auto.master.d/wild.autofs
/wild   /etc/auto.wild

$ vi /etc/auto.wild
*       -rw,sync        192.168.10.20:/autofs/&

# 접근해야 마운트 확인 가능
$ cd /wild/
$ ls
$ cd dirA
$ cd ..
$ cd dirB
$ cd ..
$ ls
dirA  dirB

0개의 댓글