pam_tally를 사용하여 우분투에서 계정 잠금을 구현하려고 합니다. 나는 다음 줄을 추가하려고 시도했습니다. /etc/pam.d/common-auth
auth required pam_tally.so deny=3
account required pam_tally.so
실패가 기록되지만 최대 실패에 도달해도 계정이 잠기지 않습니다. 직접 로그인하여(GNOME 로그인 화면) 시도하고 있습니다.
조언이 있나요? pam.d/gdm 또는 로그인 파일에도 추가해야 합니까?
답변1
일반 인증 뒤에 설명
빠른 해결 방법을 찾고 있다면 아래로 이동하세요.잠금을 위해 일반 인증을 구성하는 방법.
이것이 잠금 구성 방법을 이해하는 데 도움이 되기를 바랍니다 /etc/pam.d/common-auth
.
에서 모든 주석을 제거하면 /etc/pam.d/common-auth
다음과 같은 결과가 남습니다.
auth [success=1 default=ignore] pam_unix.so nullok_secure
auth requisite pam_deny.so
auth required pam_permit.so
이 파일의 각 줄과 사용 방법을 살펴보겠습니다.
auth [success=1 default=ignore] pam_unix.so nullok_secure
비밀번호 입력을 읽습니다.비밀번호가 정확하면 파일의 다음 줄( 가 있는 줄 pam_deny.so
)을 건너뜁니다. 에서 값을 설정하여 건너뛰는 줄 수를 변경할 수 있습니다 success=1
.
auth requisite pam_deny.so
로그인 시도가 즉시 실패합니다.여기서 말하는 단어는 requisite
인증이 실패하면 즉시 종료된다는 의미입니다. 대신 다른 라인을 사용하여 required
모듈이 끝날 때까지 기다렸다가 실패 신호를 보냅니다.
auth required pam_permit.so
로그인 시도를 허용합니다.이는 를 사용하여 수행됩니다 pam_permit.so
.
일단 설정되면 사용자를 잠그도록 모듈을 구성하는 것이 더 잘 이해될 수 있습니다.
잠금을 위해 일반 인증을 구성하는 방법
우분투의 경우:
다음 줄을 추가하세요pam_deny.so 이후 및 pam_permit.so 이전:
auth required pam_tally2.so onerr=fail deny=3 unlock_time=1800
pam_deny.so 줄을 다음으로 변경합니다.
auth required pam_deny.so
전체 파일은 다음과 같습니다.
auth [success=1 default=ignore] pam_unix.so nullok_secure
auth required pam_deny.so
auth required pam_tally2.so onerr=fail deny=3 unlock_time=1800
auth required pam_permit.so
필요에 맞게 다음 옵션을 구성할 수 있습니다.
deny=3
- 잠기기 전까지 허용되는 시도 횟수입니다.unlock_time=1800
- 다시 로그인을 시도할 수 있는 시간(초)입니다.(추가 참고 사항: 일련의 실패 후 시스템 잠금이 해제되고 다시 인증에 실패하면 인증을 2번 더 시도할 수 없습니다. 시스템은 사용자를 기다리게 만듭니다.unlock-time
다시.)
대부분의 리소스에서는 순서의 중요성을 강조하기 위해 이 줄을 파일 상단에 추가할 것을 권장합니다. 그러나 Ubuntu 데스크탑 시스템에서는 이 구성으로 인해 GUI 로그인 화면이 표시되지 않을 수 있습니다.
왜 이런 일이 발생합니까? Ubuntu의 로그인 화면에서 사용자를 선택하면 PAM 모듈이 즉시 시작되고 해당 pam_unix.so
라인(비밀번호 입력 라인)에서 대기한 후 진행되는 것으로 보입니다. 이 "중지 지점" 앞에 줄을 배치하면 pam_tally2.so
잠금이 즉시 활성화되고, 화살표 키를 눌러 사용자에게서 멀어지면 모듈에서 로그인 실패 신호를 보내고 pam_tally2
증가합니다. 비밀번호를 입력하지도 않으면 곧 아래와 유사한 상황에 빠지게 됩니다.
일반 인증 파일이 잘못 구성된 일반적인 Ubuntu 로그인 화면.
pam_tally2.so
파일 맨 아래에 줄을 배치하면 이 문제가 해결됩니다. 이 구성에서는 적절한 순서가 유지됩니다. 첫 번째 줄은 비밀번호 유효성으로 점프하거나 pam_deny.so
비밀번호 pam_permit.so
유효성을 기반으로 하며, 시간에 pam_tally2.so
도달할 때 잘못된 비밀번호 항목이 이미 표시되었습니다.
pam_permit.so
입력한 비밀번호와 관계없이 도달 하더라도 pam_deny.so
역시 도달하면 모듈은 항상 실패합니다. 그 이유는 pam_deny.so
줄에 required
; 나머지 라인은 실행될 수 있지만 모듈 자체는 결국 실패하게 됩니다.
PAM 작동 방식에 대한 자세한 내용을 보려면 Google에서 "PAM 작동 방식"을 검색하거나 여기로 이동하세요.http://www.tuxradar.com/content/how-pam-works
그러면 됩니다!
답변2
이거 본지 꽤 되었지만
수정하셔야 할 것 같아요/etc/pam.d/common-auth
이것을 추가하세요.맨 위파일의 내용(규칙 순서가 중요함)
auth required pam_tally.so per_user magic_root onerr=fail
그런 다음 허용된 시도 횟수를 설정합니다.
sudo faillog -m 3
계정을 잠금 해제하려면
faillog -u login_name -r
자세한 내용은 참조
내 블로그http://blog.bodhizazen.com/linux/ubuntu-how-to-faillog/
답변3
n번의 로그인 시도 실패 후 사용자 계정을 잠그기 위해 장애 잠금을 시도할 수도 있습니다.
Ubuntu와 CentOS 모두에서 작동하는 pam_faillock.so를 사용하는 아래 링크의 지침을 따라 작동하게 할 수 있었습니다.
CentOS 및 유사한 파생 상품:
/etc/pam.d/system-auth
/etc/pam.d/password-auth
Ubuntu/Debian 및 유사 파생물:
/etc/pam.d/common-auth
/etc/pam.d/common-account
여러 번의 로그인 시도 실패 후 Linux 사용자 계정 잠그기
이것이 다른 사람에게도 도움이 되기를 바랍니다.