카테고리 없음

Redhat Enterprise Linux 10 계정 패스워드 최대, 최소 사용기간 설정

IT재테크 2025. 12. 10. 10:54

 안녕하세요 오늘은 리눅스를 사용하다 보며은 취약사항으로 많이 나오는 패스워드 만료일 설정 관린 해서 알아보도록 하겠습니다.

취약점 넘버로는 U-47, U-48과 함께 기존 계정의 패스워드 일자 변경 관련된 내용도 함께 다루어 볼까 하고 있습니다.

패스워드 최대 사용기간 설정(U-47), 패스워드 최소 사용기간 설정(U-48)을 설정하면서 기존 생성 되어있는 계정에 대한 변경도 같이 진행하도록 하겠습니다. 

 

1. 작업 환경

  가. 가상화 설루션 : Vmware Workstation Pro 17.6.3 build-24583834

  나. OS 정보 : Red Hat Enterprise Linux release 10.0

  다. 계정 정보

    1) login.defs 설정 전  생성 계정 : root, tech 

    2) login.defs 설정 후 생성 계정 : think

  라. 변경 내용

구분 변경 전 변경 후
PASS_MAX_DAYS 99999 90
PASS_MIN_DAYS 0 1
PASS_MIN_LEN 8 9
PASS_WARN_AGE 7 8
PASS_CHANGE_TRIES 5 6
PASS_ALWAYS_WARN yes no

 

 

2. 작업 계획

  가. 작업순서

      1) login.defs 설정 변경

      2) chage를 이용한 계정별 설정 변경

 

3. 작업 상세 내용

  가. login.defs 설정 변경

      1) login.defs 현재 설정 확인

      - cat /etc/login.defs | grep PASS | grep -v "#"

3-가-1) login.defs 현재 설정 확인

     

      2) 계정 현재 설정 확인

      - chage -l root

      - chage -l tech

3-가-2) 계정 현재 설정 확인

 

      3) login.defs 설정 변경

      - vi /etc/login.defs

3-가-3) login.defs

마지막으로 비밀번호를 변경한 날짜를 설정합니다. 일반적으로 0으로 설정하면 사용자가 다음에 로그인할 때 비밀번호 변경을 강제합니다. (lastday)

PASS_MAX_DAYS 비밀번호의 최대 사용 기간(일)
PASS_MIN_DAYS  비밀번호를 변경한 후 최소한 사용해야 하는 기간(일)
PASS_MIN_LEN   사용자 비밀번호의 최소 길이(문자 수)
PASS_WARN_AGE 비밀번호 만료 며칠 전부터 사용자에게 경고 메시지를 표시
PASS_CHANGE_TRIES 비밀번호를 변경하려고 시도할 때 허용되는 최대 횟수
PASS_ALWAYS_WARN 사용자가 비밀번호를 변경할 때마다 현재 비밀번호의 만료 날짜 및 경고 상태를 항상

 

 

    4) 계정 변경 후 설정 확인

      - chage -l root

      - chage -l tech

3-가-4) 계정 변경 후 설정 확인

        #login.defs 변경 후에도 각 계정에 대한 설정값은 변경되지 않음 설정 전 생성된 계정에 대해서는 login.defs에 적용해도 변경되지 않음(chage를 이용해서 변경해야 함)

 

     5) 신규 계정 추가 및 설정 확인

      -  useradd think
      -  chage -l think

3-가-5) 신규 계정 추가 및 설정 확인

        #신규 계정에 대해서는 설정 값이 적용이 된다.

 

  나. chage를 이용한 계정별 설정 변경

      1) 계정 현재 설정 확인

      - chage -l root

      - chage -l tech

3-나-1) 계정 현재 설정 확인

 

      2) 최대 사용 기간, 최소 사용 기간, 경고 메시지 표시 설정 

      -  chage -M 90 -m 1 -W 8

      -  chage -l tech

3-나-2) 최대 사용 기간, 최소 사용 기간, 경고 메세지 표시 설정

3-나-1) 계정 현재 설정 확인

-l 특정 사용자의 현재 비밀번호 만료 정보를 표시합니다. (list)
-m 비밀번호를 변경한 후 다시 변경할 수 없는 최소 일 수를 설정합니다. (min)
-M 비밀번호가 만료되기 전에 유효한 최대 일 수를 설정합니다. 이 기간이 지나면 사용자에게 비밀번호 변경이 강제됩니다. (max)
-W 비밀번호가 만료되기 며칠 전부터 사용자에게 비밀번호 변경에 대한 경고 메시지를 표시할지 설정합니다. (warning)
-E 사용자 계정의 만료일을 설정합니다. 이 날짜 이후에는 계정이 비활성화됩니다. (expire)
-I 비밀번호가 만료된 후 계정이 영구적으로 잠기기 전까지 허용되는 비활성 기간 (일 수)을 설정합니다. (inactive)
-d 마지막으로 비밀번호를 변경한 날짜를 설정합니다. 일반적으로 0으로 설정하면 사용자가 다음에 로그인할 때 비밀번호 변경을 강제합니다. (lastday)

        #설정하다 보면은 사용자 계정 만료일 설정(-E) 및 비밀번호 만료된 후 계정 영구적으로 잠기기(-I) 설정이 안 되는 경우가 있는데 이는 "마지막으로 암호를 바꾼 날"을 기준으로 생성되는 정보인데 없어서 보이지 않음 

 

4. 추가 설명 내용

  가. 옵션 기준 일자 : 리눅스에 가끔 기준이 되는 일자를 기준으로 설정 값을 넣는 경우가 있는데 기본 설정일은 "1970년 1월 1일"입니다. 특정 의미가 있는 일자는 아니고 그냥 초기에 설정하기 편한 일자를 기준으로 잡았다고 합니다.

 

  나. 기준일자 기준 설정 방법

      -  chage -E 2026-10-20 tech

      -  chage -l tech

      -   chage -E 1 tech

      -  chage -l tech

 

 

 지금까지 패스워드 최대 사용 기간, 최소 사용기간 해서 설정에 대해서 알아봤습니다. 작업은 어려운 점은 없으나 login.defs가 초기에 설정이 되어 있지 않을 경우에는 각 계정에 동일하게 설정해야 하므로 계정이 많을 경우에는 귀찮을 수 있으니 꼭 OS 설치 이후에 설정이 필요합니다.