비밀번호 설정 (1)
파일 들어가기
비밀번호를 설정해주는 파일이 존재한다.
- sudo 모드로 들어간다.
su -
- vim을 이용해
/etc/login.defs파일을 연다.
vi /etc/login.defs
정책 변경
밑으로 vim 창을 내리다보면 나온다.
bash
PASS_MAX_DAYS 30
PASS_MIN_DATS 2
PASS_WARN_AGE 7
비밀번호 설정 (2)
이번에는 추가적인 설치 후 설정할 수 있는 부분들을 건드려보자.
그 전에 먼저 PAM이 뭔지 알아야 한다.
PAM이란?
PAM(P-pluggable Authentication Modules)은 리눅스와 유닉스 기반 시스템에서 사용자 인증과 관련된 서비스를 구현하는 라이브러리입니다.
PAM은 모듈화된 구조를 가지고 있어서, 시스템 관리자가 필요한 인증 방법을 유연하게 구성할 수 있습니다. PAM은 다양한 인증 메커니즘을 제공하며, 이를 조합하여 다양한 인증 방법을 만들 수 있습니다. 예를 들어, PAM은 로컬 패스워드 파일, LDAP 서버, RADIUS 서버, SSH 키 등 다양한 인증 방법을 지원합니다.
PAM의 종류
크게 두 가지가 있다.
- libpam-cracklib
- 일반적으로 시스템에서 사용되는 강력한 비밀번호 정책을 적용합니다.
- 비밀번호에 대한 복잡성 검사를 수행하여, 대부분의 사용자가 추측하기 어려운 강력한 비밀번호를 만들도록 유도합니다.
- 이를 위해, cracklib는 일반적으로 사용되는 단어, 사용자 이름, 숫자 및 기호를 포함한 각종 패턴을 검사합니다.
- libpam-pwquality
- libpam-cracklib와 유사한 기능을 제공하지만, 다양한 비밀번호 정책 옵션을 지원하여 더욱 유연한 비밀번호 정책을 적용할 수 있습니다.
- 예를 들어, libpam-pwquality는 비밀번호의 복잡성뿐만 아니라, 이전 비밀번호와의 비교, 비밀번호의 만료 기간 등 다양한 비밀번호 정책을 구성할 수 있습니다.
따라서, libpam-cracklib는 강력한 비밀번호 정책을 구현하고 싶을 때 사용되고, libpam-pwquality는 보다 유연하고 다양한 비밀번호 정책을 구현하고 싶을 때 사용됩니다.
PAM 설치 및 정책 변경
libpam-cracklib를 설치해보자.
bash
apt-get install libpam-cracklib
이후 다음 파일로 들어가 현재 패스워드 정책을 보자.
bash
vi /etc/pam.d/common-password
retry=3이라고 적혀 있는 부분 뒤에 다음 단어를 쓰면 된다.
bash
retry=3 minlen=10 difok=7 ucredit=-1 decredit=-1 reject_username enforce_for_root maxrepeat=3
- retry=N : 암호입력을 N회로 설정
- minlen=N : 암호의 최소 길이는 N
- difok=N : 기존 패스워드와 달라야하는 문자 수 N
- ucredit=-N : 대문자 N개 이상 (N이 양수/음수인지 따라 뜻이 다름, 서브젝트 기준에 맞추어 음수로)
- lcredit=-N : 소문자 N개 이상 (위와 동일)
- decredit=-N : 숫자 N개 이상 (위와 동일)
- reject_username : 사용자의 이름이 그대로 혹은 뒤집혀 패스워드에 있는지 검사
- enforce_for_root : root 사용자가 패스워드를 바꾸려 할 때에도 위 조건 적용
- maxrepeat=N : 같은 문자가 N번 이상 연속해서 나오는지 검사
비밀번호 변경해보기
다음 명령어를 입력한다.
bash
passwd -e [사용자이름]
계정으로 로그인하려면 다음 명령어를 쳐보자.
bash
su [사용자이름]