[Born2beRoot] 패스워드 정책 설정하기

bolee·2022년 4월 12일
0

42seoul

목록 보기
6/27

42seoul Born2beRoot 프로젝트 Mandatory에서 요구하는 패스워드 정책 설정 과정이다.

Subject의 내용

  • 패스워드는 30일마다 만료되어야 한다.
  • 패스워드는 최소 2일을 사용해야 한다. 즉, 2일 이후에 패스워드 변경이 가능하다는 의미
  • 유저는 패스워드가 말료되기 7일 전부터 경고 메세지를 받아야 한다.
  • 비밀번호는 최소 10자리이어야 한다.
  • 영어 대문자와 숫자는 반드시 포함되어야 한다.
  • 3개 이상의 연속된 문자가 올 수 없다.
  • 패스워드에 유저의 이름이 포함되어서는 안된다.
  • 새로운 패스워드는 이전의 패스워드와 최소 7글자는 달라야 한다.
  • root 또한 동일한 패스워드 정책을 적용 받아야 한다.

먼저 패스워드 정책 설정을 위해 passwd 설정 파일을 확인한다.

$ sudo vi /etc/login.defs

다음과 같이 설정을 변경한다.

PASS_MAX_DAYS	30
PASS_MIN_DAYS	2
PASS_WARN_AGE	7

PASS_MAX_DAYS 30

  • 패스워드 최대 사용 기간
  • 최대 30일동안 유효

PASS_MIN_DAYS 2

  • 패스워드 최소 사용 기간
  • 최소 2일동안 사용
  • 2일 이후에 패스워드 변경 가능

PASS_WARN_AGE 7

  • 경고 메세지 기간 설정
  • 패스워드 만료 7일 전부터 경고 메세지 출력

이후 추가적인 패스워드 정책을 설정하기 위해 다음 패키지를 설치한다.

$ sudo apt install libpam-pwquality

libpam-pwdquality

  • 패스워드 만료 모듈

libpam-pwdquality을 통해 패스워드 정책을 설정하기 위해 다음 설정 파일을 확인한다.

$ sudo vi /etc/pam.d/common-passwd`

retry=3뒤에 다음을 추가한다.

minlen=10 difok=7 ucredit=-1 lcredit=-1 dcredit=-1 reject_username enforce_for_root maxrepeat=3

retry=3

  • 패스워드 입력 횟수 설정
  • 최대 3회 입력 가능

minlen = 10

  • 패스워드 최소 길이
  • 최소 10글자

difok=7

  • 이전 패스워드와 달라야 하는 문자 수
  • 이전 패스워드와 비교했을 때 최소 7글자는 달라야 한다.
  • root의 경우 이전 패스워드를 저장하기 않기 때문에 root에는 적용되지 않는다.

ucredit=-1

  • 대문자 제한
  • -1: 최소 한 글자 이상

lcredit=-1

  • 소문자 제한
  • -1: 최소 한 글자 이상

dcredit=-1

  • 숫자 제한
  • -1: 최소 한 글자 이상

reject_username

  • 유저 이름이 그대로 또는 뒤집혀서 패스워드에 입력될 수 없다.

enfore_for_root

  • 해당 패스워드 정책을 root에도 적용

maxrepeat=3

  • 중복 글자 제한
  • 최대 3글자까지 중복 가능

패스워드 정책의 경우 정책 설정 이후에 생성된 패스워드에 대해서만 적용된다. 따라서 기존 유저와 root에 대해 아래 2가지 사항을 적용시켜야 한다.

  • 강화된 패스워드로 변경
  • 패스워드 기간 적용

강화된 패스워드를 적용하기 위해 다음 명령어를 실행한다.

$ passwd -e [user_name]

passwd: 사용자의 패스워드 변경하는 명령어

  • -e: 강제적으로 사용자의 암호를 만료시키는 옵션

위 명령어를 실행할 경우 다음 로그인 시 패스워드가 만료되어 패스워드를 변경해야지만 로그인이 가능하다.

이후 패스워드 기간이 적용되지 않은 root와 기존 유저에 대해 subject에서 요구하는 패스워드 기간을 설정하기 위해 다음 명령어를 실행한다.

$ chage -m 2 -M 30 -W 7 [user_name]

chage: 시스템 보안을 위해 사용자 패스워드의 만기일을 설정하너가 변경하는 명령어

  • -m: 패스워드 변경 후 다시 변경할 수 있는 최소 날짜 설정 옵션
  • -M: 패스워드가 유효한 최대 날짜 설정 옵션
  • -W: 경고 메세지 기간 설정 옵션

비밀번호 관련 설정들이 저장된 /etc/shadow에 가보면,

$ sudo vi /etc/shadow

root와 기본 유저의 4, 5, 6번째 필드가 각각 설정해준 패스워드 최소 사용 일자 / 패스워드 유효 기간 / 경고 메세지 기간 으로 변경되어 있는 것을 확인할 수 있다.

0개의 댓글