RHEL 8,9 계정 잠금 임계값 설정 (authselect)
Table of Contents
01. pam.d 파일과 authselect 이용한 계정 잠금 설정 차이
계정 잠금 임계값 설정은 /etc/pam.d/system-auth 및 /etc/pam.d/password-auth 파일에 설정하는 방식과 authselect 명령어를 이용한 방식이 있다. pam.d 파일 변경으로 설정하는건 리눅스 버전이 바뀔 때 마다 설정 내용이 달라지기에 필자는 authselect를 이용하는 방식을 권장한다.
그리고 이 방식을 더 권장하는 이유는 authselect로 설정하면 pam.d 설정 파일이 덮어져 버린다. 이는 설정 파일 내용을 보면 알 수 있다.
[root@localhost ~]# cat /etc/pam.d/password-auth
#%PAM-1.0
# This file is auto-generated.
# 이 파일은 자동 생성된 것입니다.
# User changes will be destroyed the next time authselect is run.
# authselect이 실행될 때마다 사용자가 변경한 내용은 삭제됩니다.
02. 계정 잠금 임계값의 설정 이유
로그인 시도 몇 회 실패시, 몇 분간 계정을 잠그는 임계값의 설정 이유는 아래와 같은 보안상의 이유가 있다.
공격 이름 | 설명 |
---|---|
브루트 포스 공격 방지 | 무작위로 많은 비밀번호를 시도하여 계정에 접근하려는 공격이다. 계정 잠금 임계값을 설정하면 일정 횟수 이상의 로그인 실패 시 계정을 잠가 이러한 공격을 방지할 수 있다. |
비밀번호 추측 공격 예방 | 비밀번호 추측 공격은 공격자가 사용자의 비밀번호를 추측하려고 시도하는 공격이다. 계정 잠금 임계값은 공격자가 무작위로 비밀번호를 추측하여 접근하는 것을 어렵게 만든다. |
03. authselect로 설정하는 방법
현재 authselect 설정 확인
authselect current
기본 sssd 프로파일을 강제로 선택
authselect select sssd --force
faillock 기능 활성화
authselect enable-feature with-faillock
faillock.conf 파일 수정
- 파일에서 주석 처리된 기본값 뒤에 새로운 값을 추가한다.
- sed를 이용해도 되고 vi로 직접 수정해도 된다
sed -i "/# deny = 3/a deny = 5" /etc/security/faillock.conf
sed -i "/# unlock_time = 600/a unlock_time = 1800" /etc/security/faillock.conf
변경 사항 저장
authselect apply-changes
현재 구성이 유효한지 확인
sudo authselect check
변경된 authselect 설정 확인
authselect current