Active Directory 환경에서 사용자 계정의 암호 변경 주기를 관리하는 것은 보안 정책의 핵심 요소입니다. 이 글에서 Group Policy Objects(GPO)를 통해 암호 변경 주기를 설정하는 구체적인 방법들을 알아보겠습니다.
1. 기본 개념
비밀번호 정책 유형
Active Directory에서 암호 정책은 다음 두 가지 방식으로 적용됩니다:
정책 유형 | 적용 범위 | 특징 |
---|---|---|
도메인 정책 | 전체 도메인 | Default Domain Policy를 통해 일괄 적용 |
세분화된 정책 | 특정 사용자/그룹 | Windows Server 2008 이상에서 지원 |
주요 비밀번호 정책 설정값
설정 항목 | 설명 | 권장값 |
---|---|---|
최대 암호 사용 기간 | 암호 변경이 강제되는 주기 (일) | 미설정 (0) |
최소 암호 사용 기간 | 암호 변경 후 재변경 금지 기간 (일) | 미설정 (0) |
최소 암호 길이 | 암호 최소 문자 수 | 14자 |
암호 기록 적용 | 이전 암호 재사용 방지 개수 | 24개 |
복잡성 요구사항 | 대소문자, 숫자, 특수문자 조합 | 사용 |
2. GUI를 통한 설정 방법
1단계: Group Policy Management Console 실행
gpmc.msc
또는 서버 관리자 → 도구 → 그룹 정책 관리
2단계: 정책 편집 접근
- 포리스트 → 도메인 → 도메인명 확장
- 그룹 정책 개체 → Default Domain Policy 우클릭
- 편집 선택
3단계: 암호 정책 설정
그룹 정책 관리 편집기에서:
컴퓨터 구성
└── 정책
└── Windows 설정
└── 보안 설정
└── 계정 정책
└── 암호 정책
4단계: 개별 정책 설정
최대 암호 사용 기간 설정
- 정책 항목: “최대 암호 사용 기간”
- 설정값:
0
= 만료 없음 (권장)1-999
= 일 수 지정
최소 암호 사용 기간 설정
- 정책 항목: “최소 암호 사용 기간”
- 설정값:
0
= 즉시 변경 가능 (권장)1-998
= 일 수 지정
3. PowerShell을 통한 설정 방법
현재 도메인 암호 정책 확인
Get-ADDefaultDomainPasswordPolicy
도메인 암호 정책 수정
# 최대 암호 사용 기간을 0으로 설정 (만료 없음)
Set-ADDefaultDomainPasswordPolicy -MaxPasswordAge "00:00:00"
# 최소 암호 사용 기간을 0으로 설정 (즉시 변경 가능)
Set-ADDefaultDomainPasswordPolicy -MinPasswordAge "00:00:00"
# 최소 암호 길이를 14자로 설정
Set-ADDefaultDomainPasswordPolicy -MinPasswordLength 14
# 암호 기록을 24개로 설정
Set-ADDefaultDomainPasswordPolicy -PasswordHistoryCount 24
# 복잡성 요구사항 활성화
Set-ADDefaultDomainPasswordPolicy -ComplexityEnabled $true
특정 사용자 암호 만료 정보 확인
# 단일 사용자 암호 만료일 확인
(Get-ADUser -Identity "username" -Properties msDS-UserPasswordExpiryTimeComputed).'msDS-UserPasswordExpiryTimeComputed' |
ForEach-Object {[datetime]::FromFileTime($_)}
# 전체 사용자 암호 만료일 조회
Get-ADUser -Filter {Enabled -eq $True -and PasswordNeverExpires -eq $False} `
-Properties "DisplayName", "msDS-UserPasswordExpiryTimeComputed" |
Select-Object DisplayName, @{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}
4. 세분화된 비밀번호 정책
Windows Server 2008 이상에서는 도메인 내에서 사용자별/그룹별로 다른 암호 정책을 적용할 수 있습니다.
Active Directory 관리 센터를 통한 설정
1단계: ADAC 실행
dsac.exe
2단계: 세분화된 암호 정책 생성
- 시스템 컨테이너 확장
- 암호 설정 컨테이너 선택
- 작업 창에서 새로 만들기 → 암호 설정 클릭
3단계: 정책 설정
- 이름: 정책 식별명
- 우선 순위: 낮은 숫자가 높은 우선 순위
- 암호 설정: 개별 요구사항에 따라 구성
- 직접 적용 대상: 사용자 또는 그룹 지정
PowerShell을 통한 세분화된 정책 관리
새 정책 생성
New-ADFineGrainedPasswordPolicy -Name "ExecutivePolicy" `
-ComplexityEnabled $true `
-LockoutDuration "00:30:00" `
-LockoutObservationWindow "00:02:00" `
-LockoutThreshold 5 `
-MaxPasswordAge "90.00:00:00" `
-MinPasswordAge "1.00:00:00" `
-MinPasswordLength 12 `
-PasswordHistoryCount 24 `
-Precedence 10
정책 사용자/그룹에 적용
Add-ADFineGrainedPasswordPolicySubject -Identity "ExecutivePolicy" -Subjects "Executives"
사용자별 결과 정책 확인
Get-ADUserResultantPasswordPolicy -Identity "username"
5. 정책 적용 및 확인
정책 강제 업데이트
gpupdate /force
정책 적용 상태 확인
# 클라이언트에서 정책 결과 확인
gpresult /r
# 세부 정보 HTML 보고서 생성
gpresult /h "C:\gpresult.html"
도메인 컨트롤러에서 정책 복제 확인
repadmin /showrepl
6. 권장 설정값
Microsoft 권장사항 (Windows 10 1903 이후)
설정 | 권장값 | 이유 |
---|---|---|
암호 기록 적용 | 24개 | 이전 암호 재사용 방지 |
최대 암호 사용 기간 | 미설정 (0) | 강제 변경시 약한 암호 선택 우려 |
최소 암호 사용 기간 | 미설정 (0) | 사용자 편의성 향상 |
최소 암호 길이 | 14자 | 충분한 복잡성 확보 |
복잡성 요구사항 | 사용 | 강력한 암호 생성 |
해독 가능한 암호화 | 사용 안 함 | 보안성 확보 |
보안 강화 조직용 설정
설정 | 강화값 | 적용 대상 |
---|---|---|
최소 암호 길이 | 16자 | 관리자 계정 |
최대 암호 사용 기간 | 60일 | 특권 사용자 |
계정 잠금 임계값 | 3회 | 모든 사용자 |
계정 잠금 기간 | 30분 | 모든 사용자 |
7. 자주 접하는 문제 및 해결방법
정책 적용이 안 되는 경우
원인 1: 도메인 정책 위치 문제
- 해결: Default Domain Policy에서만 암호 정책 설정 유효
원인 2: 그룹 정책 상속 문제
# 정책 상속 상태 확인
Get-GPInheritance -Target "OU=Users,DC=domain,DC=com"
# 정책 링크 상태 확인
Get-GPO -All | Where-Object {$_.GpoStatus -eq "AllSettingsEnabled"}
원인 3: 정책 복제 지연
# 즉시 복제 강제 실행
repadmin /syncall /AdeP
사용자별 정책 충돌 해결
# 사용자에게 적용된 최종 정책 확인
Get-ADUserResultantPasswordPolicy -Identity "problematic_user"
# 세분화된 정책 우선순위 조정
Set-ADFineGrainedPasswordPolicy -Identity "PolicyName" -Precedence 5
관련 링크