돌할우밤 공부방

1. 2개의 가상머신에서 한개는 nfs 서버 한개느 nfs 클라이언트로 설정해서 연결(읽고, 쓰기만 가능) 시켜주기

- NFS란? (Network File System)라고 하며 분산파일 시스템 프로토콜이다. 특징은 윈도우의 공유 폴더처럼 파일을 공유하여 사용할 수 있어 일관성을 가지며 윈도우에서도 가능하고 공유된 파일에 데이터를 보관하여 서로 다른 시스템에서 동일 데이터에 접근할 수 있다 또한 규모가 큰 소프트웨어를 배포할 때 시스템의 부하를 감소시킬 수 있다.

 

1. NFS 서버 구성

먼저 서버를 구성하고 파일을 공유하려면 시스템에 nfs-utils패키지를 설치해야 한다.

yum -y isntall nfs-utils

성공적으로 설치한 모습

2. export 파일 작성

NFS 서버에서 디렉토리를 공유하려면 /etc/exports 파일 또는 /etc/exports.d

디렉토리에 파일을 생성하여 일정한 형식에 맞게 등록해야 한다.

- 공유 디렉토리 생성

일단 공유하기 위한 디렉토리를 먼저 생성하여 파일 권한도 같이 설정해주자

이거 완전 짜잔!형이다 생성과 권한도 성공적으로 된 모습

- /etc/exports 작성

/etc/exports 작성할 때 필요한 요소는 디렉토리의 경로, 접근 제어 리스트, 옵션이다. vi 편집기로 작성해보자

 

공유 디렉토리 경로와 호스트 접근제어 리스트 작성(*를 써서 192.168.247.*에 해당하는 호스트 접근 허용 후 서버 공유 옵션을 rw:읽기 쓰기 권한을 가지며 디렉토리 일이 변경되면 즉시 동기화 설정을 주었고 1017은 커버러스라는 보안을 설정했다)

()의 내용은 NFS의 공유 옵션이 되겠다.

옵션 설명
ro 읽기 전용으로 공유
rw 읽기,쓰기로 공유
no_root_squash 클라이언트가 root 권한 획득가능, 파일 생성시 클라이언트의 권한으로 생성됨
sync 변경 사항이 커밋된 후에만 요청에 응답(안정적인 저장), 디폴트 값
sec 보안 방법을 지정 기본 값은 sys이다

-보안 방식

NFS 서버에서 공유 디렉토리를 내보낼 때 보안 방식을 지정해야 한다. 보안 방식을 지정하지 않으면 해킹과 같은 공격을 당할 수 있기 때문. 그래서 '커버로스'라는 보안 방식을 사용하며 데이터 무결성 검증과 암호화 통신까지 가능하다.

보안 방식 설명
none 클라이언트가 접속시 root사용자가 공유 디렉토리에 접근하면 nfsnobody의 UID와 GID가 할당될 때 사용
sys 클라이언트가 NFS서버의 연결해 접근한 사용자의 UID,GID를 기준으로 리눅스의 표준 권한 체계 적용
kb5 사용자 인증 방식이며 접속할 때 UID와 GID대신 커버로스 사용
kb5i 커버러스를 사용하며 체크섬을 사용하여 무결성 체크
kb5p kb5i에서 네트워크 트래픽을 스니핑하여 데이터를 보호해 주는 암호화를 지원한다

위 명령어는 export테이블 관리명령이며 -r옵션은 테이블을 다시 불러오는 옵션이다 실행해주자

-커버로스 사용

커버로스를 인증을 사용하려면 커버로스 서버 또는 FreeIPA 서버에 연결되어 있어야 한며

nfs-secure-server 서비스를 실행해야한다 그러므로 FreeIPA서버에 연결하기 위해 설치를 해보자

하지만 이번에는 사용을 하지 않을거기 때문에 설치법만.

ipa연결을 위해 클라이언트 설치

3. NFS 서시스 실행 및 방화벽 설정

NFS 서비스를 실행해 보자 명령어는 아래 사진 참고.

systemctl start로 nfs서버를 실행 enable로 연결

 

이어서 커버로스 인증을 사용한 공유 디렉토리를 만들었지만 나는 sys로 설정한 공유 디렉토리를 사용하겠다.

 

nfs방화벽 설정한 모습

추가로 클라이언트에서 NFS서버의 공유 디렉토리에 접근할 수 있는 목록을 확인할 수 있게

rpc-bind와 mountd 서비스를 추가하자

바인드 방화벽 추가
mountd 추가 후 리로드
nfs방화벽이 잘 작동중이다

4. NFS 클라이언트 연결

지금은 수동 마운트를 사용해 NFS클라이언트에서 NFS서버로 연결해보자

-NFS 서버 탐색 

NFS 공유 디렉토리를 확인하기 위해 'showmount'명령을 사용할 것이다 저 명령어를 위해 방화벽 규칙 rpc-bind와 mountd를 추가한 것이다

추가로 저 명령에 '-e'옵션을 사용하여 서버에서 export파일에 등록된 디렉토리를 확인 할 수 있다

잘 확인 된 모습

이제 클라이언트에서 마운트할 포인트를 생성(/mnt/ubam) 후 mount 명령을 사용해 마운트를 해보자

마운트 포인트 생성

mount [option] [server-address:path] [mount-point]

옵션 부분에는 -o옵션을 사용해  서버에서 공유할 때 export에서 지정한 옵션과 동일하게 해주며 서버의 공유 디렉토리 경로를 지정해주고 클라이언크에서 생성한 마운트 포인트 경로를 작성해주면 된다

마운드가 제대로 된 것을 확인 한 모습
서버에서 파일을 생성하면?
클라이언트에서 확인해보니 생성된걸 확인한 모습

반면에 서버에서 권한을 775로 해놨기 때문에 클라이언트에서는 파일을 만들수가 없다.

 

- /etc/fstab 파일에 등록

파일시스템과 마찬가지로 NFS도 재부팅하면 마운트가 해제되기 때문에

클라이언트에서 /etc/fstab에 부팅할 때 마운트를 해야한다

작성!
후 마운트

2. AutoFS를 설정하여 자동마운트 하기

-AutoFS란? 자동 마운트 데몬의 작동을 제어하는 프로그램이며 자동 마운트 데몬은 자동으로 파일 시스템을 마운트하며 파일 시스템이 사용되지 않고 일정 시간이 흐르면 자동으로 언마운트 시켜준다.

 

- 자동 마운트 구성 - 직접 맵

서버에서는

이렇게 설정해주자

필자는 직접 맵으로 자동 마운트를 시킬것이다 여기서 자동 마운트를 구성하려면 클라이언트에서 autofs패키지를 설치해야 한다.

설치 명령어

- 마스터 맵 파일 생성

마스터 맵은 /etc/auto.master.d 디렉토리 아래에 생성 파일 이름은 상관없지만 이름 뒤의 확장자는 '.autofs'를 반드시 지정해야 autofs서비스가 인식할 수 있다

위와 같이 vi편집기를 이용해 마스터 맵 파일을 생성했다

-직접 맵 파일 생성

이제 클라이언트에서 마스터 맵 파일의 두번째 필드에 지정한 경로에 직접 맵 파일을 생성하자 옵션을 붙여주고 경로도 잘 지정해 주자

마운트 포인트 까지 만든 모습

이제 클라이언트에서 autofs서비스를 시작해 보자

성공적..

이제 클라이언트에서 마운트 포인트로 접근하면 바로 마운트가 이뤄질 것이다.

mount명령어로 확인해보면 끝

 

'IT_공부 > Linux' 카테고리의 다른 글

/Linux/RHCSA/9일차(예제 풀기)  (0) 2021.07.03
/Linux/RHCSA/8일차(예제 풀기)  (0) 2021.07.02
/Linux/RHCSA/6일차  (0) 2021.06.28
/Linux/RHCSA/5일차  (0) 2021.06.27
/Linux/RHCSA/4일차  (1) 2021.06.22

>