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 |