[인프라진단] #U-11 사용자 shell 점검
1. 항목 설명
데몬과 서비스 계정처럼 대화형 로그인이 필요하지 않은 계정에 /bin/bash 등의 셸이 부여되면 계정 탈취 시 명령 실행 통로로 악용될 수 있습니다.
판단 기준: 로그인이 불필요한 계정에 /bin/false 또는 /usr/sbin/nologin 셸이 부여되면 양호, 대화형 셸이 부여되면 취약입니다.
2026 가이드 근거

2. 점검 목적
서비스 계정의 대화형 로그인을 차단하여 계정 오용과 침해 후 셸 획득 가능성을 줄이는 것이 목적입니다.
3. 실습 환경
- 운영체제: Ubuntu Server 24.04.2 LTS
- 커널: Linux 6.8.0-53-generic
- 가상화 환경: VMware Workstation
- 호스트 이름: u-lab
- 수집 방식: VMware Ubuntu VM 콘솔에서 진단 명령 실행 및 화면 캡처
- 네트워크: VMware Host-only 격리망, 기본 게이트웨이 없음
- 실행 ID: 20260903-085839
취약 상태와 조치 상태의 반복 구성에는 격리된 Host-only 관리 연결을 보조적으로 사용했습니다. 단, 판단 명령과 결과는 Ubuntu VM 콘솔에서 직접 확인하고 VMware 콘솔 원본 화면으로 캡처했으며 외부 네트워크 경로는 두지 않았습니다.
4. 취약 상태 구성
대화형 로그인이 필요 없는 실습 서비스 계정 u11svc에 /bin/bash를 지정하고 비밀번호만 잠갔습니다.
이 구성은 인터넷과 분리된 실습 VM에서 관리자 권한으로만 수행했습니다.
구성 방법
sudo useradd -u 5912 -g nogroup -M -N -s /bin/bash u11svc
sudo passwd -l u11svc
구성 후 다음 명령으로 실제 상태를 확인했습니다.
getent passwd u11svc | awk -F: '{print $1, $3, $7}'
5. 최초진단 결과
- 판정: 취약
- VM 콘솔 판정 근거: 비대화형 용도의 u11svc 계정 셸이 /bin/bash로 확인되었습니다.

6. 조치 방법
계정 셸을 /usr/sbin/nologin으로 변경해 대화형 로그인을 차단했습니다. 이행 증적 수집 후 실습 계정은 삭제했습니다.
sudo usermod -s /usr/sbin/nologin u11svc
getent passwd u11svc
Linux 설정 확인 위치: /etc/passwd의 로그인 셸 필드와 getent passwd 결과

7. 이행진단 결과
- 판정: 양호
- VM 콘솔 판정 근거: u11svc의 셸이 /usr/sbin/nologin으로 변경된 것을 확인했습니다.

8. 실무 주의사항
일부 제품은 유지보수 스크립트나 배치 작업 때문에 서비스 계정 셸을 요구합니다. 셸만 변경하기 전에 실제 실행 방식을 확인해야 합니다.
컨설턴트 조언
- 후보 계정의 systemd 서비스, cron, 배치, SFTP와 벤더 운영 절차를 먼저 확인합니다.
- 비밀번호 잠금만으로 충분하다고 보지 말고 SSH 키, sudoers와 허용 셸도 함께 점검합니다.
- nologin 적용 후 서비스 기동, 배치 실행과 장애 복구 절차를 테스트합니다.
- 대화형 셸이 필요한 예외 계정은 접속 원격지, 명령 감사와 사용 승인 기간을 제한합니다.
9. 마무리
로그인이 필요 없는 계정에는 비대화형 셸을 부여하고 실제 서비스 영향까지 검증해야 합니다.
'2026 주요정보통신기반시설 가이드 > Unix(Linux)' 카테고리의 다른 글
| [인프라진단] #U-13 안전한 비밀번호 암호화 알고리즘 사용 (0) | 2026.09.03 |
|---|---|
| [인프라진단] #U-12 세션 종료 시간 설정 (0) | 2026.09.03 |
| [인프라진단] #U-10 동일한 UID 금지 (0) | 2026.09.03 |
| [인프라진단] #U-09 계정이 존재하지 않는 GID 금지 (0) | 2026.09.03 |
| [인프라진단] #U-08 관리자 그룹에 최소한의 계정 포함 (0) | 2026.09.03 |