보안 명세 구현(NFS 서버)

2020. 2. 10. 11:43Security/물리보안&보안 요구 분석&거버넌스

목차

1. 보안 명세 요구 사항 확인

1-1. 보안 명세 요구 사항 확인

2. 사전 설정

2-1. NFS 설치 확인 및 시작

3. 보안 명세 구현

3-1. 자료 배포 디렉토리 생성

3-2. exports 설정

3-3. nfs mount 설정

3-4. 리눅스 모든 사용자가 /home/ftp에서 자료 다운로드가 가능하도록 설정

4. 보안 명세 구현 확인

4-1. 계정별 사용자 인식 확인 

4-2. 모든 계정의 파일 복사 가능 여부 확인

 

1. 보안 명세 요구사항 확인

1-1. 보안 명세 요구사항 확인(master 서버(NFS Server)와 slave 서버(NFS client)간) 

- master 서버는 192.168.111.14, slave 서버는 192.168.112.21로 가정 

- master의 /home/down 디렉토리는 slave 서버 사용자들에게 프로그램을 배포하는 디렉토리.
- master의 /home/down은 slave의 /home/down로 mount.
- root : master에서도 동일한 사용자로 인식(slave 서버의 사용자 목록)

- st01 : master에서도 동일한 사용자로 인식(slave 서버의 사용자 목록) 
- st02 : 무명 사용자(guest)로 인식(slave 서버의 사용자 목록) 
- 어떤 사용자라도 /home/down/ 에서 파일 복사 가능.

 

2. NFS 설치

2-1. NFS 설치 확인 및 시작

# rpm -qa | grep nfs-utils
# rpm -qa | grep rpcbind
// nfs는 리눅스를 설치할때 같이 설치되기때문에 위의 명령어로 설치 되어있는지 확인.

 

# systemctl start nfs.service

// nfs 시작. 또는 ntsysv에서도 설정 가능

 

2-2. 사용자 생성

# groupadd -g 2000 nfs

// master와 slave에 gid가 2000번인 nfs 그룹 생성

# useradd -g 2000 -u 2001 st01

# cat /etc/passwd | grep st0

// master 서버에는 st01 계정만 생성

# useradd -g 2000 -u 2001 st01

# useradd -g 2000 -u 2002 st02

# cat /etc/passwd | grep st0

// slave에는 st01, st02 계정 생성

 

3. 보안 명세 구현

3-1. 자료 배포 디렉토리 생성

# mkdir /home/down

// master 서버의 /home/down 디렉토리는 slave 서버 사용자들에게 프로그램을 배포하는 디렉토리. 

// master와 slave 서버 모두 /home/down 생성

# chmod 705 /home/down

// down 디렉토리에 접속할때 root 또는 other로 접속하기때문에 퍼미션을 705로 변경

 

3-2. exports 설정(/etc/exports)

<사용 명령어>

[export 할 디렉토리] [허가할 클라이언트][(옵션)]

- server에서 공유를 허용할 디렉토리를 설정하는 파일.

- 허가할 client 지정은 주소/넷마스크의 표현 형식으로 사용 가능

- 서버-클라이언트간 계정 매핑은 UID를 기준.

- ro : 읽기 전용

- rw : 읽기 쓰기 허용
- root_squash : 클라이언트의 root를 nobody로 매핑(가지고 있는 권한이 없음) 
- no_root_squash : 클라이언트의 root와 서버의 root를 일치시킨다.
- all_squash : 모든 사용자를 nobody로 매핑
- no_all_squash : 서버의 사용자와 클라이언트의 사용자를 일치.

vi /etc/exports

 

/home/down 192.168.112.21(rw,no_all_squash,no_root_squash)

 

추가

 

// root는 동일한 사용자로 인식해야 하기 때문에 no_root_squash

// st01도 동일한 사용자로 인식해야 하기 때문에 no_all_squash

# systemctl restart nfs.service

// nfs 재시작

 

3-3. nfs 마운트 설정

<사용 명령어>

mount –t nfs NFS서버IP:/공유 디렉토리 /마운트 할 디렉토리

# mount -t nfs 192.168.111.14:/home/down /home/down

// master의 /home/down은 slave의 /home/down로 mount 설정

// slave에서 실행

 

4. 보안 명세 구현 확인

4-1. 계정별 사용자 인식 확인

// master 서버에는 st02가 없기때문에 파일 소유자가 st02가 아닌 uid인 2002로 나오는 것을 확인

 

4-2. 모든 계정의 파일 복사 가능 여부 확인

// st01과 st02 모두 문제없이 파일을 복사할 수 있는 것을 확인 가능