: NFS 사용 시 허가된 사용자만 접속할 수 있도록 접근제한 설정을 하여야 함. 접근제한 설정이 적절하게 이루어지지 않을 경우 비인가자의 root권한 획득이 가능하며, 해당 공유 시스템에 원격으로 마운트하여 중요 파일을 변조하거나 유출할 위험이 있음.
** 공유폴더의 사용권한 관리
폴더나 볼륨과 같은 공유 리소스에 대한 사용 권한은 해당 리소스의 로컬 NTFS 권한 및 공유 리소스에 액세스하는 데 사용하는 프로토콜에 의해 결정된다.
- SMB(서버 메시지 블록) 프로토콜 : SMB 기반 액세스 제어(Windows 기반 파일 시스템용)는 개별 사용자 및 그룹에 사용 권한을 부여하여 구현된다.
- NFS(네트워크 파일 시스템) 프로토콜 : NFS 기반 액세스 제어(UNIX 기반 파일 시스템용)는 네트워크 이름을 사용해서 특정 클라이언트 컴퓨터 및 그룹에 사용 권한을 부여하여 구현된다.
판단 기준 :
양호 - NFS 서비스를 사용하지 않거나, 사용 시 everyone 공유를 제한한 경우
취약 - NFS 서비스를 사용하고 있고, everyone 공유를 제한하지 않는 경우
조치 방법
사용하지 않는다면 NFS 서비스 중지, 사용할 경우 everyone 공유 제한
NFS 데몬 구동 여부 확인 및 NFS 데몬 중지
ps -ef | grep nfsd
kill -9 pid
[솔라리스 5.10 이상]
svcs -a | grep -i nfs
svcadm disable svc:/network/nfs/server:default
NFS 서비스가 사용되고 있을때, everyone 공유가 제한되어 있는지 확인
[유닉스의 경우]
1) everyone 으로 시스템이 마운트 되어 있는지 확인
# showmount -e hostname
2) /etc/export 파일에서 접근 통제 설정 여부 확인
#cat /etc/exports
- 취약한 설정 예 : var/www/img *(ro,all_squash)
- 양호한 설정 예 : /data 172.27.0.0/16(rw,no_root_squash)
3) everyone 마운트 제거
# umount [파일시스템명]
[솔라리스의 경우]
#cat /etc/dfs/dfstab
취약한 설정 예 : share -F nfs -o rw /export/home/test
양호한 설정 예 : share -F nfs -o rw=client1:client2 /export/home/test