리눅스 서버를 운영할 때, 비밀번호 보안 정책을 설정하는 것은 매우 중요합니다.
사용자가 너무 짧거나 단순한 비밀번호를 설정하면, 계정이 쉽게 공격당할 수 있습니다.
- 비밀번호 복잡도와 길이 제한
- 최소/최대 사용 기간 설정
- 비밀번호 재사용 방지
- 관련 설정 파일 및 명령어
1. 비밀번호 복잡도 설정 – pam_pwquality
PAM(Pliable Authentication Modules)은 리눅스에서 인증을 제어하는 시스템입니다.
복잡도 정책은 /etc/security/pwquality.conf 또는 PAM 설정 파일을 통해 관리합니다.
- 설정 예시
# /etc/security/pwquality.conf
minlen = 12
dcredit = -1 # 최소 1개 이상의 숫자
ucredit = -1 # 최소 1개 이상의 대문자
lcredit = -1 # 최소 1개 이상의 소문자
ocredit = -1 # 최소 1개 이상의 특수문자
- PAM 적용 확인
# /etc/pam.d/common-password (Debian/Ubuntu)
/etc/pam.d/system-auth (RHEL/CentOS)
password requisite pam_pwquality.so retry=3
2. 비밀번호 사용 기간 제한 – chage 명령어
chage 명령을 사용하면 사용자의 비밀번호 만료 정책을 쉽게 설정할 수 있습니다.
- 사용자 정책 확인
chage -l 사용자이름
- 예시: john 계정에 만료일 설정
sudo chage -M 90 -m 7 -W 7 john
- -M 90 : 비밀번호 최대 사용일 90일
- -m 7 : 최소 7일 지나야 변경 가능
- -W 7 : 만료 7일 전부터 경고
3. 비밀번호 재사용 방지 – pam_pwhistory
이 모듈을 사용하면 과거에 사용한 비밀번호를 다시 사용할 수 없도록 설정할 수 있습니다.
- 예시 (Ubuntu/Debian)
# /etc/pam.d/common-password
password required pam_pwhistory.so remember=5 use_authtok
위 설정은 최근 5번 사용한 비밀번호는 다시 사용할 수 없도록 합니다.
4. 로그인 실패 잠금 – 선택적으로 고려
비밀번호 정책과 함께, pam_tally2나 pam_faillock 모듈로 로그인 실패 횟수 제한도 함께 적용하는 것이 좋습니다.
# 예시: 5회 실패 시 10분 잠금
auth required pam_faillock.so deny=5 unlock_time=600
5. 정책 적용 후 테스트
설정이 완료되면 새로운 사용자 생성 또는 기존 사용자 비밀번호 변경을 시도해 보세요:
passwd 사용자이름
정책에 어긋나는 비밀번호는 거부되고, 정책을 만족하는 경우에만 변경이 완료됩니다.
비밀번호도 시스템 자산입니다
강력한 비밀번호 정책은 서버의 첫 번째 방어선입니다.pwquality, chage, pam_pwhistory 같은 도구들을 통해
단순한 공격 시도를 효과적으로 막을 수 있습니다.
정책은 보안을 강화하되, 사용자에게 지나치게 불편하지 않도록 균형 있게 설정하는 것이 좋습니다.
'개발 > 리눅스' 카테고리의 다른 글
| [Linux] SELinux 개념과 기본 설정법 (1) | 2025.07.04 |
|---|---|
| [Linux] Fail2ban으로 SSH 로그인 시도 차단하기 (1) | 2025.07.03 |
| [Linux] /etc/passwd, /etc/shadow 파일 이해하기 (0) | 2025.07.01 |
| [Linux] ssh-keygen으로 SSH 키 인증 로그인 설정 (0) | 2025.06.30 |
| [Linux] SSH 서버 설정과 보안 강화 (0) | 2025.06.29 |
