Linux에서 Login 실패시 계정 잠그기

 

리눅스에서 계정에 관한 설정은 login.defs에서 합니다. Password의 최소 길이나 최대, 최소 사용일 수 등을 설정합니다. 그러면, 계정 잠금 설정도 이 파일에 있지 않을까 생각 할 수 있습니다.

그러나, 아쉽게도 login.defs에는 계정 잠금을 설정 할 수 있는 부분이 없습니다. login.defs는 윈도우처럼 password 정책에 관한 설정입니다. 그러면, 리눅스는 어디서 할까요? 배포판에 따라 조금씩 틀릴 수 있습니다. 여기서는 Redhat linux를 기준으로 설명 드립니다.

 

리눅스에서 계정 잠금 설정을 하는 부분은 /etc/pam.d/system-auth 라는 파일 입니다.

 

설정 방법은 다음과 같습니다.

auth required /lib/security/pam_tally.so no_magic_root

account required /lib/security/pam_tally.so deny=2 no_magic_root

 

위의 부분을 system-auth에 추가 하시면 됩니다. 위와 같이 설정하면 연속 3 login 실패 시 계정이 잠기게 됩니다. 그러나, 윈도우처럼 잠금 시간 설정이 없기 때문에 일정시간이 지난다고 해서 계정이 풀리지 않습니다. 따라서, 계정이 잠겼을 경우에는 관리자에게 요청하여 계정 잠금을 풀어야 합니다.

 

각 설정에 대해서 살펴 보도록 하겠습니다.

auth required /lib/security/pam_tally.so no_magic_root

account required /lib/security/pam_tally.so deny=2 no_magic_root

 

 

 

 

 

- deny : 실패 횟수 0부터 시작하며 몇 번 실패하면 계정 잠금을 할 것인지 설정, 연속 3번 실패하면 lock 걸기 위해서는 deny 2로 설정

- no_magic_root : root password fail 횟수를 기록하나 실제 lock은 걸지 않도록 함.

- reset : 실패 횟수 안에서 login하면 기존 실패 횟수를 reset해 줌으로써 연속 실팽 대한 기록을다시 함.

 

faillog –u <사용자 계정> -r

잠긴 계정을 열기 위해서는 faillog 명령어를 사용해야 합니다.

 

 

 

auth required /lib/security/pam_tally.so no_magic_root

account required /lib/security/pam_tally.so deny=2 no_magic_root

 

앞서 설명한 위 적용 내용의 no_magic_root 설정할 경우 faillog 카운터 되나 deny 설정이 되어 있더라도 fail 카운터 이상 되어도 정확한 패스워드로 로그인 시 접속 가능하여 사용시 무용 지물이다.

그래서 아래의 내용으로 변경하여 적용하자

 

 

]# /etc/pam.d/system-auth

맨 위줄에 해당 내용을 적용하자

 

auth required /lib/security/pam_tally.so onerr=fail deny=2

account required /lib/security/pam_tally.so onerr=fail

+ Recent posts