[NFS(Network FileSystem)]
- 네트워크를 통한 다른 장치의 파티션을 마운트
- 정보
패키지 : nfs-utils
데몬 : nfs
방화벽 : service=nfs
설정파일 : /etc/exports (파일은 이미 존재하지만 안에 내용은 없는 크기가 0짜리 파일임)
- 설정파일 내용 입력 형식
<공유할 디렉토리> <서버에 접근할 ip주소>(옵션)
ex) /nfs_server 192.168.X.X(rw,root_squash,sync)
* 옵션
rw : 권한
root_squash : client가 root로 로그인했을 때 root로 취급 안해주고 nobody 취급
sync : 양쪽 동기화 옵션
- Client 접속 형식
mount -t nfs <NFS 서버 ip>:<서버 공유 디렉토리> <마운트 할 Client 디렉토리>
showmount -e <NFS서버 ip>
- nfs 가능한 목록을 보여줌
exportfs -v
- 적용된 exports 설정 정보를 보여줌
rpcinfo -p
- RPC Service들의 정보를 출력
- portmapper, mountd, nfs, nfs_acl, nlockmgr이다.
* RPC(Remote Procedure Call) : 원격 프로세스 호출을 의미
rpc.mountd
- 클라이언트가 마운트를 요청하면 /etc/exports 파일 설정에 따라 마운트 요청을 처리
rpc.nfsd
- 클라이언트가 rpc.mountd에 의해 마운트 되면, rpc.nfsd를 사용하여 클라이언트의 요구에 따라 처리
(/etc/exports에 설정에 따라 작업을 할 수 있다)
rpc.statd
- rpc.rockd와 함께 파일 잠금 해제와 비정상적으로 종료 시 복구를 담당
rpc.lockd
- 파일 잠금을 통해 클라이언트에서 여러 사용자가 한 파일을 수정하는 것을 방지
Portmap
- RPC(Remote Procedure Call) 프로그램을 Port에 Mapping 시킴
1번 CentOS7(10.0.0.1)을 서버로 사용할 것이다
nfs 패키지 설치 후 진행한다
공유할 디렉토리를 생성 해준다
nfs 서버가 공유 할 디렉토리를 설정 파일에 추가 해준다
서버에 접근 가능한 client는 ip주소가 10.0.0.X 인 client들이다
방화벽을 열어주고 설정파일을 제대로 작성했는지 확인한다
이제 Client에서 nfs를 확인 해본다
마찬가지로 nfs 패키지를 설치 후 진행한다
client는 서버에서 공유한 디렉토리를 마운트 시킬 포인트를 만들고 nfs로 마운트 시킨다
server에서 공유한 디렉토리에 파일을 생성하면
client의 마운트 포인터에도 생성된 것을 통해 nfs가 성공적으로 동작하는 것을 확인할 수 있다
root_squash 옵션으로 client가 nfs 연결 시 root 취급을 받지 못하는데
서버가 공유한 디렉토리에 other의 w 권한이 없기 때문에 client에서 파일 생성이 불가능 하다
서버에서 공유할 디렉토리에 other의 w 권한을 추가 해주면
client에서도 파일 생성 및 삭제가 가능하다
하지만 nfs는 랜덤 port를 사용하기 때문에 방화벽 문제가 발생할 수 있다
그렇기 때문에 nfs port를 고정해서 사용하는 것이 좋다
nfs 설정 파일에 rpc.locd, rpc.mountd, rpc.statd의 port를 주석 해제 후 수정해서 고정해준다
nfs 포트가 고정 된것을 확인할 수 있다 이제 해당 포트의 방화벽을 열어준다
(111, 2049, 50001 - 50003/ tcp,udp)
nfs server에서 공유 디렉토리에 파일을 생성 해주면
client에서도 확인이 가능하다
이제 마운트 시 설정 해준 고정 포트로 마운트 되었는지를 확인하면 된다
설정 했던 rpc.mountd port는 50002였다
서버에서 확인 해보면 설정해준 고정포트로 마운트 된것을 확인할 수 있다
'Linux' 카테고리의 다른 글
Proxy 서버 (0) | 2022.10.12 |
---|---|
Sendmail & Dovecot (0) | 2022.10.11 |
HTTP - 인증, 접근 제어 (0) | 2022.10.10 |
주, 보조 DNS + VirtualHost (0) | 2022.10.09 |
DNS + HTTP (0) | 2022.10.09 |