더북(TheBook)

NFS 서버 준비하기

6장에서 생성한 가상 게스트 server01에 NFS 서버를 설치해서 디렉터리를 공유합니다. server02에서 공유 디렉터리를 마운트해서 사용해보겠습니다.

그림 7-3 NFS 서버에서 마운트한 공유 디렉터리 사용하기

디렉터리를 공유할 게스트 server01을 시작하고 ssh로 로그인합니다.

shinjaehun@losttemple:~$ virsh start server01
shinjaehun@losttemple:~$ ssh administrator@192.168.122.201

먼저 NFS 서버를 설치합니다. apt-get install 명령으로 nfs-common와 nfs-kernel-server 패키지를 함께 설치합니다.

administrator@server01:~$ sudo apt-get update
administrator@server01:~$ sudo apt-get install nfs-common nfs-kernel-server

런레벨 편집기 sysv-rc-conf를 실행합니다.

administrator@server01:~$ sudo sysv-rc-config

nfs-kernel-server 서비스를 런레벨 2부터 5까지 활성화시킵니다. 설정이 끝나면 q를 눌러 런레벨 vi를 종료합니다.

그림 7-4 nfs-kernel-server 서비스 런레벨 2~5 활성화

클라이언트로 내보낼 공유 디렉터리를 생성합니다. 시스템 보안을 고려해 디렉터리 소유권을 nobody:nogroup으로 설정했습니다. 공유 디렉터리에 대한 접근 권한은 755로 설정했습니다.

administrator@server01:~$ sudo mkdir -p /srv/nfs/public
administrator@server01:~$ sudo chown nobody:nogroup /srv/nfs/public/
administrator@server01:~$ sudo chmod 755 /srv/nfs/public/
administrator@server01:~$ ls -l /srv/nfs/
drwxr-xr-x 2 nobody nogroup 4096 Apr 6 23:26 public

NFS로 공유할(내보낼) 디렉터리는 /etc/exports에서 설정합니다. vi로 설정 파일을 편집합니다.

administrator@server01:~$ sudo vi /etc/exports

[공유할 디렉터리] 호스트 형식으로 입력합니다. 공유 디렉터리에 접근을 허용할 호스트 목록으로 IP 주소(192.168.122.202)를 입력해서 특정 호스트를 지정합니다. 192.168.122.0/24와 같이 네트워크 주소가 192.168.122.0인 호스트 목록을 함께 지정할 수도 있습니다. all_squash 옵션을 부여해서 공유 디렉터리에 접근하는 사용자 권한을 익명 사용자 nobody로 지정합니다.

/srv/nfs/public 192.168.122.0/24(rw,all_squash,no_subtree_check)
Tip

괄호 안에 옵션을 입력할 때 ‘,’ 전후로 공백 없이 입력해야 합니다.

설정 내용을 적용하기 위해 exportfs -ra 명령을 실행합니다.

administrator@server01:~$ sudo exportfs -ra

-v 옵션으로 공유한 디렉터리 정보를 확인합니다.

administrator@server01:~$ sudo exportfs -v
/srv/nfs/public
192.168.122.0/24(rw,wdelay,root_squash,all_squash,no_subtree_check,sec=sys,rw,root_squash,all_squash)

NFS 서비스를 재시작합니다.

administrator@server01:~$ sudo service nfs-kernel-server restart

netstat 명령을 실행하면 NFS 서버가 접속 요청을 기다리는 상태를 확인할 수 있습니다.

administrator@server01:~$ netstat -a | grep nfs
tcp     0    0 *:nfs                *:*                   LISTEN
tcp6    0    0 [::]:nfs             [::]:*                LISTEN
udp     0    0 *:nfs                *:*
udp6    0    0 [::]:nfs             [::]:*

다음은 방화벽 설정입니다. 보안을 위해 내부 네트워크에서 접근만 허용( allow from 192.168. 122.0/24)하고 NFS 서버가 사용하는 2049포트와 111포트를 개방합니다.

administrator@server01:~$ sudo ufw allow from 192.168.122.0/24 to any port 2049
administrator@server01:~$ sudo ufw allow from 192.168.122.0/24 to any port 111
administrator@server01:~$ sudo ufw status
...
2049                       ALLOW       192.168.122.0/24
111                        ALLOW       192.168.122.0/24
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.