RHEL v8 이후 변경점

RHEL v8 계열(CentOS/Oracle Linux/Rocky Linux) 부터는 이전과 같이 PAM 을 수정하여 설정하는 것을 권장하지 않습니다.

[root@chhanz-c8-vm ~]# cat /etc/pam.d/system-auth 
...
# Generated by authselect on Fri Jul 16 13:13:24 2021
# Do not modify this file manually.                      <<<
...

추가로 RHEL v8 계열부터는 기존에 사용하던 보안 설정으로 많이 사용 되던 pam_tally2 module 이 deprecated 되었습니다.
anthconfig 로 PAM 설정이 가능하였으나, RHEL v8 계열부터 authselect 을 사용하도록 변경 되었습니다.

authselect 이란?

authselect 는 특정 프로파일을 선택하여 시스템의 ID 및 인증 소스를 설정 할 수 있는 도구입니다.

authselect 사용법

Check current the profile

[root@chhan-rocky authselect]# authselect current 
Profile ID: sssd
Enabled features: None

Enable feature

faillock module 활성화.

[root@chhan-rocky authselect]# authselect enable-feature with-faillock 
Make sure that SSSD service is configured and enabled. See SSSD documentation for more information.

[root@chhan-rocky authselect]# authselect current 
Profile ID: sssd
Enabled features:
- with-faillock

Create the custom profile

sssd Profile 를 base 로 한 Profile 생성.

[root@chhan-rocky authselect]# authselect create-profile -b sssd security-profile
New profile was created at /etc/authselect/custom/security-profile

Change profile

[root@chhan-rocky security-profile]# authselect select custom/security-profile
Profile "custom/security-profile" was selected.
The following nsswitch maps are overwritten by the profile:
- passwd
- group
- netgroup
- automount
- services

Make sure that SSSD service is configured and enabled. See SSSD documentation for more information.

faillock module 을 이용한 보안 설정

기존에 pam_tally2등으로 주로 이용되던 계정 인증 실패에 대한 계정 잠금 정설이 faillock 으로 변경되면서 기능 활성화 및 정책 설정은 아래와 같이 해야됩니다.

faillock module 활성화

아래 명령을 통해 faillock module 을 활성화 합니다.

[root@chhanz-c8-vm ~]# authselect enable-feature with-faillock 
Make sure that SSSD service is configured and enabled. See SSSD documentation for more information.

[root@chhanz-c8-vm ~]# authselect current
Profile ID: sssd
Enabled features:
- with-fingerprint
- with-silent-lastlog
- with-faillock

faillock 정책 설정

아래와 같이 /etc/securrity/faillock.conf 를 수정합니다.
(Note: /etc/security/faillock.conf is available from pam-1.3.1-8.el8.)

[root@chhanz-c8-vm ~]# cat /etc/security/faillock.conf | grep -v "#"
dir = /var/run/faillock
audit
silent
deny = 4

faillock.conf 가 수정이 되면 변경된 profile을 적용합니다.

[root@chhanz-c8-vm ~]# authselect apply-changes 
Changes were successfully applied.

faillock 보안 설정 테스트

현재 적용한 정책은 기본적으로 4회 계정 인증 실패시 계정이 LOCK 되고 600s(Default value) 후에 UNLOCK 됩니다.

[root@chhanz-c8-vm ~]# ssh test@localhost
test@localhost's password: 
Permission denied, please try again.

위와 같이 계정 인증 실패시 faillock 명령을 통해 인증 실패 현황을 파악 할 수 있습니다.

[root@chhanz-c8-vm ~]# faillock 
root:
When                Type  Source                                           Valid
test:
When                Type  Source                                           Valid
2021-07-16 13:14:36 RHOST ::1                                                  V
2021-07-16 13:14:39 RHOST ::1                                                  V
2021-07-16 13:14:42 RHOST ::1                                                  V
2021-07-16 13:14:46 RHOST ::1                                                  V

/var/log/secure 에서 위와 같이 계정 LOCK 에 대한 로그를 확인 할 수 있습니다.

...
Jul 16 13:14:46 localhost unix_chkpwd[7186]: password check failed for user (test)
Jul 16 13:14:46 localhost sshd[7184]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=::1  user=test
Jul 16 13:14:46 localhost sshd[7184]: pam_faillock(sshd:auth): Consecutive login failures for user test account temporarily locked              <<<
...

실제로 4회 계정 인증 실패 후에는 계정 접근이 안되었고, 10분후에 다시 인증 시도를 할 수 있었습니다.

계정 잠금 해제

LOCK 된 계정을 수동으로 unlock 하는 방법은 아래와 같습니다.

[root@chhanz-c8-vm ~]# faillock --reset --user test
[root@chhanz-c8-vm ~]# faillock 
root:
When                Type  Source                                           Valid
test:
When                Type  Source                                           Valid

[참고] authselect 에서 지원하는 feature (profile sssd)

Feature Name Description
with-faillock Lock the account after too many authentication failures.
with-mkhomedir Create home directory on user’s first log in.
with-ecryptfs Enable automatic per-user ecryptfs.
with-smartcard Authenticate smart cards through SSSD.
with-smartcard-lock-on-removal Lock the screen when the smart card is removed.
Requires that with-smartcard is also enabled.
with-smartcard-required Only smart card authentication is operative; others, including password, are disabled. Requires that with-smartcard is also enabled.
with-fingerprint Authenticate through fingerprint reader.
with-silent-lastlog Disable generation of pam_lostlog messages during login
with-sudo Enable sudo to use SSSD for rules besides /etc/sudoers.
with-pamaccess Refer to /etc/access.conf for account authorization.
without-nullock Do not add the nullock parameter to pam_unix

참고 자료

chhanz's profile image

chhanz

2021-07-16

Read more posts by this author