콘텐츠로 이동

U-11: 사용자 shell 점검

분류: 01_unix

중요도: 하


개요

점검 내용

로그인이 불필요한 계정(adm, sys, daemon 등)에 쉘 부여 여부 점검

점검 목적

로그인이 불필요한 계정에 부여된 쉘을 제거하여, 로그인이 필요하지 않은 계정을 통한 시스템 명령어를 실행하지 못하게 하기 위함

보안 위협

로그인이 불필요한 계정에 쉘이 부여될 경우, 비인가자가 해당 기본 계정으로 시스템에 접근 위험이 존재함

참고

쉘(Shell)

대화형 사용자 인터페이스로써, 운영체제(OS) 가장 외곽계층에 존재하여 사용자의 명령어를 이해하고 실행함

/bin/false

시스템 접근을 항상 실패로 처리해 로그인을 차단하고, 사용자에게 메시지를 출력하지 않으며, 서비스 계정의 직접 접근 차단에 사용됨

/sbin/nologin

로그인 시 “This account is currently not available” 메시지를 출력하며 접근을 차단하고, FTP와 같은 일부 서비스의 접근은 허용됨

점검 대상 및 판단 기준

대상

SOLARIS, LINUX, AIX, HP-UX 등

판단 기준

✅ 양호: 로그인이 필요하지 않은 계정에 /bin/false(/sbin/nologin) 쉘이 부여된 경우

❌ 취약: 로그인이 필요하지 않은 계정에 /bin/false(/sbin/nologin) 쉘이 부여되지 않은 경우

조치 방법

로그인이 필요하지 않은 계정에 대해 /bin/false(/sbin/nologin) 쉘 부여 설정

조치 시 영향

일반적인 경우 영향 없음

점검 및 조치 사례

SOLARIS, LINUX, AIX, HP-UX

  1. /etc/passwd 파일을 참고하여 로그인이 불필요한 계정에 /bin/false(/sbin/nologin) 쉘 부여 여부 확인

    # cat /etc/passwd | grep –E “^daemon|^bin|^sys|^adm|^listen|^nobody|^nobody4|^noaccess|^diag|^operator|^ games|^gopher” | grep -v admin
    
  2. 로그인이 불필요한 계정에 /bin/false 또는 /sbin/nologin 쉘 부여

    # usermod -s /bin/false <계정명>
    # usermod –s /sbin/nologin <계정명>
    
    • 로그인이 불필요한 계정 목록: deamon, bin, sys, adm, listen, nobody, nobody4, noaccess, diag, operator, games, gopher