나의보물들/Linux
[Linux] PAM으로 리눅스 비밀번호 정책 설정하기
솔솔하네
2024. 9. 20. 14:34
반응형
🍀 PAM란?
리눅스 시스템에서 PAM (Pluggable Authentication Modules)이란 Linux 시스템에서 사용하는 “착탈형 인증 모듈”로 응용 프로그램(서비스)에 대한 사용자의 사용 권한을 제어하는 모듈
Linux 시스템 관리자가 사용자를 인증하는
방법을 구성할 수 있도록 하는 라이브러리 모음입니다 . 이는 애플리케이션 코드를 변경하는 대신 구성 파일을 사용하여 보안 애플리케이션에 대한 인증 방법을 전환하는 유연하고 중앙 집중화된 방법을 제공 - Wikipedia
🍀 사용자의 인증을 담당하는 모듈을 사용하여 비밀번호를 8자리 이상으로 규제하기
방법 ①
1. login.defs 설정 파일 수정
username@servername:/etc/pam.d$ sudo vi /etc/login.defs
2. 아래 코드 추가
- PASS_MIN_LEN : 비밀번호 최소 길이
PASS_MIN_LEN 8
방법 ②
1. common-password 설정 파일 수정
username@servername:/etc/pam.d$ sudo vi /etc/pam.d/common-password
2. 아래 코드 추가
password requisite pam_pwquality.so minlen=8
password sufficient pam
🧨 방법② 트러블 슈팅
아래와 같이 비밀번호 변경 시 Module is unknown
username@servername:/etc/pam.d$ passwd username
Changing password for username.
Current password:
passwd: Module is unknown
passwd: password unchanged
1. 로그 확인
→ 몇 가지 모듈을 찾지 못해 나오는 에러로 판단
username@servername:/etc/pam.d$ cat /var/log/auth.log
...
Sep 20 15:08:42 servername sudo: PAM adding faulty module: pam_pwquality.so
Sep 20 15:08:42 servername sudo: PAM unable to dlopen(pam): /lib/security/pam: cannot open shared object file: No such file or directory
Sep 20 15:08:42 servername sudo: PAM adding faulty module: pam
Sep 20 15:08:42 servername sudo: username : TTY=pts/1 ; PWD=/etc/pam.d ; USER=root ; COMMAND=/usr/bin/apt-get install libpam-pwdfile libpam-modules
Sep 20 15:08:42 servername sudo: pam_unix(sudo:session): session opened for user root(uid=0) by username(uid=1000)
Sep 20 15:08:51 servername sudo: pam_unix(sudo:session): session closed for user root
Sep 20 15:08:57 servername passwd[1649]: PAM unable to dlopen(pam_pwquality.so): /lib/security/pam_pwquality.so: cannot open shared object file: No such file or directory
Sep 20 15:08:57 servername passwd[1649]: PAM adding faulty module: pam_pwquality.so
Sep 20 15:08:57 servername passwd[1649]: PAM unable to dlopen(pam): /lib/security/pam: cannot open shared object file: No such file or directory
Sep 20 15:08:57 servername passwd[1649]: PAM adding faulty module: pam
2. 모듈 설치
- libpam-cracklib : 사용자가 비밀번호를 설정할 때, 비밀번호의 복잡성과 강도를 검사하는 PAM 모듈
- libpam-pwquality : 밀번호 품질을 보장하는 PAM 모듈, 비밀번호의 복잡성 규칙(최소 길이, 문자 조합, 이전 비밀번호와의 유사성 등)을 설정할 수 있으며, 비밀번호 설정 시 추가적인 제약을 제공
sudo apt-get install libpam-cracklib
sudo apt-get install libpam-pwquality
3. 테스트
비밀번호 1234입력 시 The password is shorter than 8 characters 나옴
username@servername:/etc/pam.d$ passwd username
Changing password for username.
Current password:
New password: 1234 입력
BAD PASSWORD: The password is shorter than 8 characters
New password:
🍀 테스트
1. 비밀번호 변경 시 새로운 비밀번호를 1234로 입력 시 아래와 같이 나옴 (비밀번호 4자리 입력)
You must choose a longer password.
username@servername:/etc/pam.d$ passwd username
Changing password for username.
Current password:
New password: 1234 입력
Retype new password: 1234 입력
You must choose a longer password.
2. 비밀번호 변경 시 새로운 비밀번호를 12345678로 입력 시 아래와 같이 나옴 (비밀번호 8자리 입력)
password updated successfully
username@servername:/etc/pam.d$ passwd username
Changing password for username.
Current password:
New password: 12345678 입력
Retype new password: 12345678 입력
passwd: password updated successfully