LabHub

기업 인증 연동 · 계정 수명주기와 감사 · 실습

계정 감사 리포트 자동 생성

LabHub 에서 이어서 보기

목표

인사 명부와 LDAP 디렉터리를 대사(對査)해 유령 계정·미생성 계정·특권 유령 계정·
장기 미접속 계정을 스크립트로 뽑아내고, 격리 처리 후 감사 리포트를 작성할 수 있게 됩니다.

왜 중요한가

"퇴사자 계정이 즉시 비활성화됩니까"는 모든 보안 감사의 첫 질문입니다.
그리고 대부분의 조직은 이 대사를 분기에 한 번 사람이 엑셀로 합니다.
그 사이에 사고가 납니다. 유령 계정이 생기는 이유는 게으름이 아니라 구조입니다 —
증분 동기화는 삭제를 감지하지 못하고, 프로비저닝(SCIM)이 없으면 개별 시스템에
계정이 그대로 남습니다. 이 대사를 매주 자동으로 돌릴 수 있으면
감사 대응이 아니라 운영이 됩니다.

단계

0. 준비: slapd 를 1389 로 기동하고 00-base, 10-people, 20-groups 를 적재해 둡니다.
1. 디렉터리의 모든 inetOrgPerson 을 뽑아 /root/audit/ldap_users.csv 를 만듭니다.
첫 줄은 uid,cn,ou,title, uid 오름차순 정렬입니다.
2. /opt/lab/fixtures/auth/audit/hr_roster.csv
/root/audit/hr.csv 로 복사합니다. (내용 동일해야 합니다)
3. 디렉터리에는 있는데 HR 명부에는 없는 uid 를 한 줄에 하나씩 오름차순으로
/root/audit/ghost.txt 에 저장합니다.
4. HR 명부에는 있는데 디렉터리에는 없는 uid 를 같은 형식으로
/root/audit/missing.txt 에 저장합니다.
5. 유령 계정 중 cn=admins,ou=Groups,dc=labhub,dc=co,dc=kr 그룹의
member 인 것을 골라 /root/audit/critical.txt 에 저장합니다.
6. /opt/lab/fixtures/auth/audit/lastlogin.csv 를 기준으로,
2026-08-01 기준 90일 이상 미접속인 uid 를
/root/audit/stale.txt 에 오름차순으로 저장합니다.
(파일에 없는 uid 는 '접속 이력 없음'으로 보고 대상에 포함합니다.)
7. 유령 계정을 모두 ou=Disabled,dc=labhub,dc=co,dc=kr 아래로 이동시킵니다.
(ou=Disabled 엔트리를 먼저 만들어야 합니다.)
이동 후 ou=People 에서는 조회되지 않아야 하고,
ou=Disabled 의 엔트리 수가 유령 계정 수와 같아야 합니다.
8. /root/audit/report.md 를 작성합니다.
## 총계, ## 유령 계정, ## 미생성 계정, ## 특권 계정, ## 휴면 후보,
## 조치 계획 여섯 개의 h2 제목이 있어야 하고, 아래 다섯 줄이 정확히 들어가야 합니다.

   total=<디렉터리 전체 사용자 수(격리 포함)>   ghost=<유령 계정 수>   missing=<미생성 계정 수>   critical=<특권 유령 계정 수>   stale=<90일 미접속 계정 수>

참고

단계 8개

  1. 디렉터리 계정 추출
  2. 인사 명부 확보
  3. 유령 계정 추출
  4. 미생성 계정 추출
  5. 특권 유령 계정
  6. 장기 미접속 계정
  7. 격리 처리
  8. 감사 리포트 작성