본문 바로가기
취약점 진단/UNIX 취약점 진단

[UNIX] 번외. 기존계정 패스워드 최대/최소 사용기간 설정하는 방법

by 게으른 피글렛 2024. 9. 30.
반응형

[UNIX] 번외. 기존계정 패스워드 최대/최소 사용기간 설정하는 방법

 

※ 테스트한 LINUX의 버전은 AWS로 구성된 CentOS 9 입니다.

 

1. 문제점

앞서 U-47 패스워드 최대 사용기간 설정, U-48 패스워드 최소 사용기간 설정을 했습니다.

($ cat /etc/login.defs 이 위치에서 패스워드 관련 최대 최소 사용기간 설정을 했습니다.)

[ec2-user@localhost ~]$ cat /etc/login.defs
 PASS_MAX_DAYS   90
 PASS_MIN_DAYS   1
 PASS_WARN_AGE   7
 PASS_MIN_LEN    8

 

 

가이드에 나와있는 방법으로 설정을 했는데도 불구하고 일부 아이디는 적용이 되지 않으셨을 겁니다. 이유는 가이드에 나와있는 방법이 설정 이후 생성된 계정에만 적용이 되기 때문입니다.

 

기존 계정에 대한 패스워드 최대/최소 사용기간 설정 변경 방법을 알아보겠습니다.

 

2. 계정 정보 확인

1) 전체 계정 정보 확인하는 방법

[ec2-user@localhost ~]$ cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin
games:x:12:100:games:/usr/games:/sbin/nologin
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
dbus:x:81:81:System message bus:/:/sbin/nologin
tss:x:59:59:Account used for TPM access:/dev/null:/sbin/nologin
sssd:x:998:995:User for sssd:/:/sbin/nologin
chrony:x:997:994:chrony system user:/var/lib/chrony:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/usr/share/empty.sshd:/sbin/nologin
systemd-oom:x:992:992:systemd Userspace OOM Killer:/:/usr/sbin/nologin
ec2-user:x:1000:1000:Cloud User:/home/ec2-user:/bin/bash
it-mskim:x:1001:1001::/home/it-mskim:/bin/bash
polkitd:x:991:991:User for polkitd:/:/sbin/nologin
avahi:x:70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
rtkit:x:172:172:RealtimeKit:/:/sbin/nologin
pipewire:x:990:989:PipeWire System Daemon:/run/pipewire:/usr/sbin/nologin
libstoragemgmt:x:988:988:daemon account for libstoragemgmt:/:/usr/sbin/nologin
setroubleshoot:x:987:987:SELinux troubleshoot server:/var/lib/setroubleshoot:/usr/sbin/nologin
colord:x:986:986:User for colord:/var/lib/colord:/sbin/nologin
clevis:x:985:985:Clevis Decryption Framework unprivileged user:/var/cache/clevis:/usr/sbin/nologin
geoclue:x:984:983:User for geoclue:/var/lib/geoclue:/sbin/nologin
flatpak:x:983:982:User for flatpak system helper:/:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
cockpit-wsinstance:x:982:981:User for cockpit-ws instances:/nonexisting:/sbin/nologin
gnome-initial-setup:x:981:980::/run/gnome-initial-setup/:/sbin/nologin
dnsmasq:x:980:979:Dnsmasq DHCP and DNS server:/var/lib/dnsmasq:/usr/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
test1:x:1002:1002::/home/test1:/bin/bash

 

 2) UID 1000 이후 인 ID 확인하는 방법

보통 UID가 1000 이상일 경우 사용자 계정입니다.

[ec2-user@localhost ~]$ awk -F: '$3 >= 1000' /etc/passwd
 nobody:x:65534:65534:Kernel Overflow User:/:/sbin/nologin
 ec2-user:x:1000:1000:Cloud User:/home/ec2-user:/bin/bash
 it-mskim:x:1001:1001::/home/it-mskim:/bin/bash
 test1:x:1002:1002::/home/test1:/bin/bash

 

제가 가지고 있는 계정은

ec2-user

it-mskim

test1

 

이렇게 세개가 있습니다.

 

nobody 계정은 리눅스 및 유닉스 시스템에서 일반적으로 사용되는데 뒤에 nologin이라고 되어있기 때문에 일반사용자가 접근할 수 있는 계정은 아닙니다. 

 

 

3. 계정 패스워드 최대/최소 사용기간 설정 여부 확인 방법

패스워드 설정은 

$ cat /etc/login.defs 에 설정했으나, 기존 계정에는 적용이 되지 않았습니다. 

 

아래는 기존계정 확인 방법입니다.

# ec2-user 비밀번호 최대/최소 설정기간 확인
ec2-user@localhost ~]$ chage -l ec2-user
Last password change                                    : Sep 24, 2024
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7

# it-mskim 비밀번호 최대/최소 설정기간 확인
[ec2-user@localhost ~]$ sudo chage -l it-mskim
Last password change                                    : Sep 29, 2024
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7

# test1 비밀번호 최대/최소 설정기간 확인
[ec2-user@localhost ~]$ sudo chage -l test1
Last password change                                    : Sep 29, 2024
Password expires                                        : never
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 0
Maximum number of days between password change          : 99999
Number of days of warning before password expires       : 7

 

 

신규 계정의 경우,

신규계정 user1를 생성하였습니다. 

신규로 생성한 계정에는 해당 내용이 잘 적용되어있는 것을 확인 할 수 있습니다.

[ec2-user@localhost ~]$ sudo chage -l user1
Last password change                                    : Sep 29, 2024
Password expires                                        : Dec 28, 2024
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 1
Maximum number of days between password change          : 90
Number of days of warning before password expires       : 7

 

 

3. 변경 방법

설정을 하나씩 하는 방법

# 최소 사용 기간을 1일로 설정
$ sudo chage -m 1 [계정명]

# 최대 사용 기간을 90일로 설정
$ sudo chage -M 90 [계정명]

# 설정 확인
$ sudo chage -l [계정명]


# 예시
[ec2-user@localhost ~]$ sudo chage -m 1 test1
[ec2-user@localhost ~]$ sudo chage -M 90 test1
[ec2-user@localhost ~]$ sudo chage -l test1
Last password change                                    : Sep 29, 2024
Password expires                                        : Dec 28, 2024
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 1
Maximum number of days between password change          : 90
Number of days of warning before password expires       : 7

 

한번에 설정하는 방법

[ec2-user@localhost ~]$ sudo chage ec2-user
Changing the aging information for ec2-user
Enter the new value, or press ENTER for the default
(변경할 내용은 입력 후 엔터, 기존값을 유지하려면 그냥 엔터)

        Minimum Password Age [0]: 1
        Maximum Password Age [99999]: 90
        Last Password Change (YYYY-MM-DD) [2024-09-24]: 
        Password Expiration Warning [7]:
        Password Inactive [-1]:
        Account Expiration Date (YYYY-MM-DD) [-1]:

 

 

4. 결과

전부 변경이 완료되었습니다!

 

이렇게 설정해주면 됩니다!

# ec2-user 비밀번호 최대/최소 설정기간 확인
ec2-user@localhost ~]$ chage -l ec2-user
Last password change                                    : Sep 24, 2024
Password expires                                        : Dec 23, 2024
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 1
Maximum number of days between password change          : 90
Number of days of warning before password expires       : 7

# it-mskim 비밀번호 최대/최소 설정기간 확인
[ec2-user@localhost ~]$ sudo chage -l it-mskim
Last password change                                    : Sep 29, 2024
Password expires                                        : Dec 28, 2024
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 1
Maximum number of days between password change          : 90
Number of days of warning before password expires       : 7

# test1 비밀번호 최대/최소 설정기간 확인
[ec2-user@localhost ~]$ sudo chage -l test1
Last password change                                    : Sep 29, 2024
Password expires                                        : Dec 28, 2024
Password inactive                                       : never
Account expires                                         : never
Minimum number of days between password change          : 1
Maximum number of days between password change          : 90
Number of days of warning before password expires       : 7

 

 

 

Linux를 마스터하는 그날까지

화이팅!

 

반응형