리눅스 정보실

리눅스 비밀번호 강도 확인 방법 (system-auth 기준)

고지존 2025. 9. 1. 14:59

 

 

리눅스 비밀번호 강도 확인 방법 (system-auth 기준)

리눅스 서버를 안전하게 운영하려면 가장 기본적이면서 중요한 보안 요소 중 하나는 사용자 비밀번호의 강도입니다. 약한 비밀번호는 공격자가 서버를 우회하는 가장 쉬운 경로가 되므로, 정기적으로 비밀번호 강도를 점검하는 것은 필수입니다. 이번 글에서는 Red Hat 계열 서버(CentOS, AlmaLinux, Rocky 등)에서 비밀번호 정책을 확인하고 읽기 전용으로 점검하는 방법을 안내합니다.

1. 현재 비밀번호 정책 확인

리눅스 서버에서 비밀번호의 강도를 확인하는 실질적인 방법을 소개합니다.

(1) PAM 모듈 설정 점검

대부분의 리눅스 배포판은 PAM을 통해 사용자 인증을 관리합니다. 다음 파일들에서 pam_pwquality.so 설정을 확인하면 현재 적용된 비밀번호 정책을 알 수 있습니다.

/etc/pam.d/common-password
/etc/pam.d/system-auth

일반적인 설정 예시는 다음과 같습니다:

password requisite pam_pwquality.so retry=3 minlen=12 ucredit=-1 lcredit=-1 dcredit=-1 ocredit=-1

위 설정은 비밀번호가 다음 조건을 만족해야 함을 의미합니다:

  • minlen=12: 최소 12자 이상
  • ucredit=-1: 최소 1개의 대문자 포함
  • lcredit=-1: 최소 1개의 소문자 포함
  • dcredit=-1: 최소 1개의 숫자 포함
  • ocredit=-1: 최소 1개의 특수문자 포함

이 정책을 벗어나는 비밀번호는 변경 시도 자체가 거부됩니다.

 

Red Hat 계열 서버에서는 /etc/pam.d/system-auth 파일을 통해 비밀번호 정책이 관리됩니다. Debian 계열에서 사용되는 common-password는 존재하지 않아도 문제 없습니다.

 

현재 정책 확인 명령어:

grep pam_pwquality.so /etc/pam.d/system-auth

현재 서버 출력 예시:

password    requisite     pam_pwquality.so try_first_pass local_users_only retry=3 authtok_type=

해석:

  • try_first_pass : 첫 번째 입력한 비밀번호 사용
  • local_users_only : 로컬 계정에만 적용
  • retry=3 : 비밀번호 입력 시 3회 재시도 가능
  • authtok_type= : 비밀번호 유형 지정 없음

현재 세부 옵션(minlen, ucredit, lcredit, dcredit, ocredit)이 없으므로, 기본 정책만 적용되어 있습니다. 즉, 길이, 대문자/소문자/숫자/특수문자 혼합 여부는 별도 강화가 필요합니다.

2. cracklib-check로 비밀번호 테스트

설치 후, 임시 비밀번호 강도를 확인할 수 있습니다. Bash에서 특수문자(! 등) 오류를 방지하려면 작은따옴표를 사용해야 합니다.

실전 확인 결과

echo 'MySuperStrongPassword!123' | cracklib-check

출력 예시:

MySuperStrongPassword!123: OK
  • OK : 강도 통과
  • BAD PASSWORD : 약함, 수정 필요

3. 읽기 전용 점검 스크립트

대규모 서버나 고객 서버에서는 설정을 변경하지 않고 점검만 해야 합니다. 다음 스크립트는 읽기 전용으로 현재 정책을 확인하고, 예시 비밀번호를 테스트합니다.

#!/bin/bash
echo "=== 현재 비밀번호 정책 확인 (/etc/pam.d/system-auth) ==="
grep pam_pwquality.so /etc/pam.d/system-auth

echo "=== 임시 비밀번호 테스트 ==="
echo 'MySuperStrongPassword!123' | cracklib-check

스크립트를 실행하면 화면에 바로 결과값이 출력되며, 서버 설정이나 계정에는 아무런 영향이 없습니다.

 

  • 주기적 점검: 최소 한 달에 한 번 이상 정책 확인
  • 복잡도 강화: 길이 12자 이상, 대문자·소문자·숫자·특수문자 혼합 권장
  • 재사용 제한: 이전 비밀번호 재사용 방지
  • 로그 모니터링: /var/log/auth.log에서 인증 실패 기록 확인
  • 사용자 교육: 강도 기준 안내 및 보안 습관 강화

리눅스 서버에서 비밀번호 강도를 확인하고 관리하는 것은 서버 보안의 기초입니다. 정기적인 점검과 정책 강화로 안전한 서버 운영을 유지하세요.

 

  • /etc/pam.d/system-auth 파일에서 PAM 비밀번호 정책 확인
  • cracklib-check로 비밀번호 강도 테스트
  • 읽기 전용 스크립트로 서버 설정 변경 없이 점검 가능
  • 주기적 점검과 사용자 교육 필수