갤럭시 pam_tally2
에서 사용 하려고 하는데/etc/pam.d
sshd를 다음으로 변경했습니다
#%PAM-1.0
auth required pam_securetty.so
auth required pam_tally2.so deny=3 unlock_time=600
auth required pam_env.so
auth required pam_unix.so
auth required pam_nologin.so
account required pam_unix.so
password required pam_unix.so
session required pam_limits.so
session required pam_unix.so
session required pam_lastlog.so nowtmp
session optional pam_mail.so standard
로그인하기 전에 테스트 계정을 만들었고 로그인 실패 횟수를 테스트했습니다.
pam_tally2 -u tst3402
(empty)
이제 올바른 비밀번호로 로그인합니다(이것은 expect
스크립트에 의해 수행되며 비밀번호는 다음과 같습니다 aaa12BBB,
).
spawn ssh -l tst3402 172.9.2.1
Password:
No mail.
Last login: Tue Mar 20 14:25:17 2018 from 172.2.2.2
tst3402@hostname:~>
status OK
어디
- 정상상태보내는 사람:
expect
실패 횟수를 다시 확인합니다
pam_tally2 -u tst3402
Login Failures Latest failure From
tst3402 1 03/20/18 14:25:17 172.2.2.2
즉, 3번의 로그인 성공 후에는 계정이 잠깁니다.
질문
성공적으로 로그인한 후 pam_tally2
1개의 실패가 표시되는 이유는 무엇입니까 ?
일반적인 용의자:
SSH 키를 사용할 수 있다는 것을 알고 있지만 ISAE3420의 저주를 받았습니다.
ssh -vvv -l을 사용하면...두 개의 교환이 표시됩니다..두 개의 실패가 표시되어야 합니까?
debug3: send packet: type 50 debug3: receive packet: type 51
SELinux 없음
security.SE에서 pam_tally2 문제를 찾지 못했습니다.
답변1
질문
내 컴퓨터 중 하나에서 비슷한 동작이 나타납니다. sudo
올바른 비밀번호를 사용하면 pam_tally2
카운터에 항목이 생성됩니다.
문맥
이 pam.d/sudo
항목은 기본값이며 매우 간단합니다.
session required pam_env.so readenv=1 user_readenv=0
session required pam_env.so readenv=1 envfile=/etc/default/locale user_readenv=0
@include common-auth
@include common-account
@include common-session-noninteractive
common-auth
맨 위 줄 앞에 다음 줄을 추가했습니다 .pam_tally2.so
pam_unix.so
auth required pam_tally2.so onerr=fail audit deny=5 unlock_time=900
# here are the per-package modules (the "Primary" block)
auth [success=1 default=ignore] pam_unix.so nullok_secure
# here's the fallback if no module succeeds
auth requisite pam_deny.so
# prime the stack with a positive return value if there isn't one already;
# this avoids us returning an error just because nothing sets a success code
# since the modules above will each just jump around
auth required pam_permit.so
# and here are more per-package modules (the "Additional" block)
auth optional pam_cap.so
설명하다
매뉴얼 pam_tally2
페이지에는 다음과 같이 명시되어 있습니다(강조).
인증 단계는 시도된 로그인 카운터를 증가시키고 사용자의 액세스를 거부해야 하는지 여부를 확인하는 것으로 시작됩니다. 사용자가 인증된 경우pam_setcred(3)가 호출되면 로그인 프로세스가 계속됩니다.시도 카운터를 재설정합니다.
따라서 지금까지는 스택이 올바르게 호출되지 않은 것으로 보입니다 pam_setcred
. 파일이 pam.d
호출되지 않습니다 pam_setcred
(시스템에 설치되지도 않았습니다).
해결책
예제에서 매뉴얼 페이지에는 다음과 같이 명시되어 있습니다(강조).
모듈을 호출할 필요는 없습니다.계정 단계에서로그인이 올바르게 pam_setcred(3)를 호출하기 때문입니다.
pam_setcred
따라서 호출 이 없으면 account
이 단계에서 모듈을 호출해야 합니다.
파일을 편집 pam.d/common-account
하고 맨 위에 추가했습니다.
account required pam_tally2.so
사용자가 인증을 완료하면 카운터가 재설정됩니다.
해
사용자가 인증을 취소하면(예: 비밀번호를 입력하라는 메시지가 표시될 때 Ctrl+C를 누름) 카운터가 감소하지 않고 증가하므로 실패한 시도와 구별할 수 없습니다.