리눅스 - NFS (Network File System)

OS/Linux 2016. 2. 29. 11:30

<NFS>

네트워크 통신이 가능한 곳이면 리눅스 등의 운영체제에서 NFS를 사용하여 파일 시스템을 공유할 수 있다. 주로 공유할 때 NFS를 사용하게 된다. 쉽게말해 멀리 떨어져 있는 특정 서버의 디렉토리를 내 PC와의 마운트를 통해 파일을 공유받는 것이다.

 

1. NFS를 설치한다.

nfs-utils-lib, nfs-utils, nfs4-acl-tools를 설치하자.



 

2. /etc/exports파일을 열고 다음과 같이 넣어준다.



[공유할 디렉토리(서버측 디렉토리)]  [접근을 허가할 호스트/네트워크]  [옵션]

[옵션]

ro(기본값) : 읽기 전용으로만 연결 허용

rw : 읽기 쓰기 가능하게 연결 허용

root_squash(기본값) : 클라이언트 측에 관리자가 접속을 요청했을 때 익명계정으로 연결을 허용

no_root_squash : 클라이언트 측에 관리자가 접속 요청을 했을 때 서버 측에서의 관리자 계정으로 매핑시켜 연결을 허용

no_all_squash(기본값) : 클라이언트 측에 사용자가 접속 요청을 했을 때 서버 측에 동일한 사용자가 있으면 동일한 계정으로 연결을 허용

all_squash : 클라이언트 측에서 사용자로 접근 요청했을 때 익명 계정으로 연결을 허용(관리자 제외)

sync : 동기화

 

위를 해석하면 다음 설정하고 있는 서버의 디렉토리 /nfs1을 공유하겠다. 접근을 허용할 호스트는 192.168.1.20이고, 읽기 전용으로만 허용된다. 접속할 때 root계정으로 연결하여도 매핑시켜 연결을 허용하겠다 라는 의미이다.

다음은 해석해 보시길..!

 

3. 해당 디렉토리 생성 후(nfs1, nfs2, nfs3), NFS 데몬을 실행하자




exportfs -raNFS의 설정 정보가 변경되었을 경우 NFS데몬의 재시작 할 필요 없이 exportfs -ra명령어로 변경된 내용을 적용할 수 있다.

 

4. rpcinfo -pnfsport번호를 확인

111번인 것을 확인할 수 있다.



 

5. system-config-firewall을 열어 방화벽을 풀어주자. nfs4를 열어주고, 111번 포트도 열어주자

 

6. 자 이제, 서버에서 아무 파일을 만들고 client PC에서 연결한 후 Remote마운트가 잘 되는지 알아보자.

[Server]





[Client] 



 

7. 클라이언트 pc에서 내용을 수정하려 했지만 오류가 떳다.



이유는 서버측에서 아까 위에서 /etc/exports 파일을 수정하였을 때, /nfs1디렉토리의 파일들은 접근을 허용할 호스트는 192.168.1.20이고, 읽기 전용으로만 허용된다. 라고 해놨기 때문이다.

 

이번에는 어떻게 될까??

[server]


[client] 



결과는 허가 거부다. 위에서 설정을 보면 /nfs2192.168.1.0 대역의 모든 사용자에게 rw의 권한을 주지만 사용자에 대한 특별한 지시어가 없다. 그럴땐 옵션에서 기본값이라고 되어있는 root_squash가 된다. root_squash은 관리자로 접속했을 때, 익명으로 접속하게 하는 것으로 보안을 위한 것이다. 그러므로 파일 자체를 rw권한으로 했어도 root권한이 아니기 때문에 파일에 대한 허가 거부가 된것이다.

 

두번째 예를 정상적으로 하려면 어떻게 할까?

[server]

서버측 설정을 이렇게 바꿔준다. , 루트 접속 허용을 해준다.



 [client] 



 

'OS > Linux' 카테고리의 다른 글

리눅스 - 아파치(Apache) 구성하기  (0) 2016.03.02
리눅스 - autofs  (0) 2016.03.01
리눅스 - VNC  (0) 2016.02.29
리눅스 - ssh, sftp의 원격접속과 서버간의 파일전송 scp  (0) 2016.02.28
리눅스 - IP 설정하기  (0) 2016.02.27
posted by 경원구