[2026 주요정보통신기반시설] U-39 불필요한 NFS 서비스 비활성화

불필요한NFS서비스사용여부점검

U-39 불필요한 NFS 서비스 비활성화

가이드라인 원문

항목내용
항목코드U-39
점검내용불필요한NFS서비스사용여부점검
점검대상SOLARIS, LINUX, AIX, HP-UX등
양호기준불필요한NFS서비스관련데몬이비활성화된경우
취약기준불필요한NFS서비스관련데몬이활성화된경우
조치방법NFS서비스를사용하지않는경우서비스중지및비활성화설정 (로컬서버에마운트되어있는디렉터리제거및공유디렉터리제거후서비스중지가능)

상세 설명

1. 판단 기준

기본 판단 기준

  • 양호: NFS 서비스(nfsd, rpcbind, mountd 등)가 비활성화된 경우
  • 취약: NFS 서비스가 활성화되어 있는 경우

경계 케이스 (Edge Case) 처리 방법

상황판단 기준설명
파일 공유가 필요한 서버주의NFSv4 + Kerberos 권장
내부 네트워크에서만 사용주의방화벽 접근 제어 필요
로컬에 마운트된 NFS 존재취약사용 중인 NFS 서비스
rpcbind만 활성화주의다른 RPC 서비스 사용 가능성
NFSv4 사용양호암호화 지원 (Kerberos)

권장 설정값

환경항목권장 설정비고
Linuxnfs-serverdisabled (systemctl)NFS 서버
Linuxrpcbinddisabled (systemctl)RPC 매핑 서비스
Linuxrpc-statddisabled (systemctl)파일 잠금 상태
Linuxrpc-idmapddisabled (systemctl)ID 매핑
Solarisnetwork/nfs/serverdisabled (svcadm)NFS 서버

2. 점검 방법

Linux 점검

NFS 서비스는 암호화되지 않은 평문 통신을 하며 IP 기반 인증만 수행하므로 취약점이 많습니다. 사용하지 않는다면 반드시 비활성화해야 합니다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
# 1. NFS 서비스 상태 확인
echo "=== 1. NFS Services Status ==="
systemctl is-active nfs-server rpcbind rpc-statd rpc-idmapd 2>/dev/null
systemctl is-enabled nfs-server rpcbind rpc-statd rpc-idmapd 2>/dev/null

# 2. 프로세스 확인
echo "=== 2. NFS Processes ==="
ps -ef | grep -E "nfsd|rpcbind|rpc.mountd|rpc.statd" | grep -v grep

# 3. 포트 listening 확인
echo "=== 3. NFS Ports ==="
netstat -tuln | grep -E ":(111|2049|20048)"
# 111: rpcbind, 2049: nfs, 20048: mountd

# 4. 마운트된 NFS 확인
echo "=== 4. Mounted NFS ==="
mount | grep nfs
df -h -t nfs4 2>/dev/null

양호 출력 예시:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
=== 1. NFS Services Status ===
nfs-server: inactive (dead)
rpcbind: inactive (dead)
rpc-statd: inactive (dead)
nfs-server: disabled
rpcbind: disabled
=== 2. NFS Processes ===
(프로세스 없음)
=== 3. NFS Ports ===
(해당 포트에서 listening하지 않음)

취약 출력 예시:

1
2
3
4
5
6
7
8
=== 1. NFS Services Status ===
nfs-server: active (exited)
rpcbind: active (running)
nfs-server: enabled
=== 2. NFS Processes ===
root   1234  1  0  Jan20 ?  00:00:00 [nfsd]
=== 3. NFS Ports ===
tcp        0      0 0.0.0.0:2049            0.0.0.0:*                   LISTEN

Solaris 점검

1
2
3
4
5
6
# SMF 서비스 상태 확인
svcs -a | grep -E "nfs|rpc"

# 또는
svcs network/nfs/server
svcs network/rpc/bind

3. 조치 방법

Linux (systemd) 설정

  1. NFS 마운트 해제

    1
    2
    3
    4
    5
    6
    7
    8
    
    # 현재 마운트된 NFS 확인
    mount | grep nfs
    
    # 마운트 해제
    umount /mnt/nfs/share
    
    # /etc/fstab에서 NFS 항목 제거
    vi /etc/fstab
    
  2. NFS 서비스 중지

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    
    # 서비스 중지
    systemctl stop nfs-server
    systemctl stop rpcbind
    systemctl stop rpc-statd
    systemctl stop rpc-idmapd
    
    # 부팅 시 비활성화
    systemctl disable nfs-server
    systemctl disable rpcbind
    systemctl disable rpc-statd
    systemctl disable rpc-idmapd
    
  3. 서비스 재시작

    1
    2
    3
    
    # 서비스 재시작 (비활성화 확인)
    systemctl status nfs-server
    systemctl status rpcbind
    

Linux (SysVinit) 설정

  1. 서비스 중지
    1
    2
    3
    4
    5
    6
    
    service nfs stop
    service rpcbind stop
    
    # 부팅 시 비활성화
    chkconfig nfs off
    chkconfig rpcbind off
    

Solaris (SMF) 설정

  1. NFS 서비스 비활성화
    1
    2
    3
    4
    5
    6
    
    svcadm disable network/nfs/server
    svcadm disable network/rpc/bind
    
    # 상태 확인
    svcs network/nfs/server
    svcs network/rpc/bind
    

4. 참고 자료

  • CIS Benchmark for Linux: NFS 서비스 비활성화 권고
  • NIST SP 800-53: CM-7 (시스템 최소화)
  • NFSv4 RFC 5661: 보안 개선 사항
  • man pages: nfsd(8), exportfs(8), exports(5)

5. 스크립트

  • 취약점 점검 스크립트
    • 이 스크립트는 KISA 주요정보통신기반시설 기술적 취약점 분석·평가 가이드라인(2026)을 준수하여 제작된 자동 점검 도구입니다. 복잡한 단일 파일 방식이 아닌 모듈화된 구조로 설계되어 유지보수가 쉽고 확장이 용이합니다.
    • 다양한 환경에서 테스트를 진행했으나, 혹시 점검 로직에 이슈가 발견되거나 개선이 필요한 경우 적극적인 제보를 부탁드립니다.
Hugo로 만듦
JimmyStack 테마 사용 중