열렬히.뛰기

born2beroot - 비밀번호 설정

école 42 > born2beroot > born2beroot - 비밀번호 설정

비밀번호 설정 (1)

파일 들어가기

비밀번호를 설정해주는 파일이 존재한다.

  1. sudo 모드로 들어간다.
su -
  1. 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의 종류

크게 두 가지가 있다.

  1. libpam-cracklib
    • 일반적으로 시스템에서 사용되는 강력한 비밀번호 정책을 적용합니다.
    • 비밀번호에 대한 복잡성 검사를 수행하여, 대부분의 사용자가 추측하기 어려운 강력한 비밀번호를 만들도록 유도합니다.
    • 이를 위해, cracklib는 일반적으로 사용되는 단어, 사용자 이름, 숫자 및 기호를 포함한 각종 패턴을 검사합니다.
  2. 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 [사용자이름]