x번째 잘못된 비밀번호를 입력하면 컴퓨터가 종료되도록 구성하는 방법은 무엇입니까?

x번째 잘못된 비밀번호를 입력하면 컴퓨터가 종료되도록 구성하는 방법은 무엇입니까?

암호화된 하드 드라이브를 갖는 것은 좋지만 누군가가 귀하의 노트북을 훔쳐가더라도 전원을 끄지 않을 수도 있습니다. 전원이 켜져 있는 동안 도난당할 가능성이 높습니다. 따라서 암호화된 하드 드라이브는 현재 잠금 해제되어 있지 않기 때문에 보안이 전혀 향상되지 않습니다.

그게 다야이 블로그 게시물데비안의 문제와 설정을 설명했습니다.
따라서 잘못된 사용자 잠금 해제 비밀번호를 입력한 경우(예: 4회) 장치를 끄는 것이 좋은 해결책일 수 있습니다.

그러나 내 시스템에서 또는 을 찾는 데 어려움을 겪고 있습니다 common-auth. (Fedora) 그리고 이 글은 다소 낡았을 수도 있고 최선의 해결책이 아닐 수도 있다고 생각합니다. 여기서 이미 질문한 내용을 찾지 못했기 때문에 질문하는 것이 좋겠다고 생각했습니다.common-account/etc/pam.d

따라서 일반적으로:x번째 비밀번호를 잘못 입력한 후 자동 종료를 구성하는 방법은 무엇입니까?

이는 보안 요구 사항이므로 종료를 취소할 수 없어야 합니다. 또한 각 사용자를 3명으로 계산하는 것은 좋지 않습니다. 실제로 공격자가 먼저 로그인을 시도하기 위해 다른 사용자로 전환할 수 없도록 전역 카운터를 갖는 것이 더 나을 것입니다.


교차 게시Fedora에 대해 질문하기.

답변1

2023 솔루션은 우분투에서 실행됩니다.pam_faillock(pam_tally2는 더 이상 사용되지 않습니다):

조심해, 너 자신을 가둘 수 있어: pam 파일을 편집하면 즉시 적용되며 그 과정에서 인증이 여러 번 중단될 가능성이 높습니다. 이것이 만족스럽지 않다면 계속하지 마십시오. 많은 문제를 줄일 수 있는 몇 가지 사항;

  • 루트 tty에서 사전 열기 및 사전 로그인( ctrl + alt + f3)
  • 파일을 편집하기 전에 백업하십시오(예 cp /etc/pam.d/common-auth ~/common-auth.bak: ).
  • 라이브 부팅 USB 키를 준비하세요

존재하다 /etc/pam.d/common-auth:

# here are the per-package modules (the "Primary" block)
auth    [success=1 new_authtok_reqd=ok ignore=ignore default=bad] pam_faillock.so deny=3 even_deny_root unlock_time=10
auth    required pam_exec.so /usr/sbin/poweroff
auth    [success=3 default=ignore]      pam_unix.so nullok
auth    [success=2 default=ignore]      pam_sss.so use_first_pass
# here's the fallback if no module succeeds
auth    [default=die] pam_faillock.so authfail
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
# end of pam-auth-update config
auth    sufficient pam_faillock.so authsucc

상해:

가장 먼저 알아야 할 것은 이것이 무엇을 success=n의미하는지 입니다 skip the next n lines if the current line succeeds. 이는 오류 잠금 조건이 충족되는 경우에만 정전을 트리거할 뿐만 아니라 오류 잠금이 로그인 시도 실패 또는 성공을 등록해야 하는 시기를 결정하는 데에도 사용됩니다.

다음 두 줄은 3번의 시도 실패 후 종료를 트리거합니다.

auth    [success=1 new_authtok_reqd=ok ignore=ignore default=bad] pam_faillock.so deny=3 even_deny_root unlock_time=10
auth    required pam_exec.so /usr/sbin/poweroff

그런 다음 기존 ubuntu 인증 논리를 별도로 가져와 success=3기존 success=2pam_deny 콘텐츠와 pam_faillock에 대한 새 줄을 건너뛰도록 편집합니다.

auth    [success=3 default=ignore]      pam_unix.so nullok
auth    [success=2 default=ignore]      pam_sss.so use_first_pass

그런 다음 pam_faillock에 실패한 로그인 시도를 등록하라고 지시하는 이 줄이 있습니다. 이전 pam_unix 논리가 통과하면 이 줄을 건너뜁니다.

auth    [default=die] pam_faillock.so authfail

마지막으로, 로그인 시도를 실패로 표시하는 구성이 없으면 pam_faillock에 성공적인 로그인 시도를 등록하도록 지시합니다. 이는 중요합니다. 그렇지 않으면 pam_faillock이 재설정되지 않습니다.

auth    sufficient pam_faillock.so authsucc

참고 사항; 저는 멍청한 놈이므로 소금 한알로 설명을 들어주세요. 하지만 내 설정에서는 작동합니다.

답변2

당신이 사용할 수있는pam_tally2그리고pam_exec이 결과를 달성하십시오.

시작 부분에 다음을 추가하면 /etc/pam.d/login5번의 로그인 시도 실패 후 6번째 시도에서 시스템이 종료되어야 합니다.

auth [success=1 new_authtok_reqd=ok ignore=ignore default=bad] pam_tally2.so onerr=succeed deny=5 even_deny_root unlock_time=30
auth required pam_exec.so /usr/bin/poweroff
  • Success=1 pam_tally2가 성공하면 시스템 종료를 방지하기 위해 다음 줄을 건너뜁니다.
  • Unlock_time=30 루트 계정이 영구적으로 잠기는 것을 방지하려면 30초 후에 자동으로 계정 잠금을 해제하세요.

참고: 디스플레이 관리자(예: GDM, LightDM 등)를 사용하는 경우 해당 PAM 구성에 유사한 규칙을 추가해야 할 수도 있습니다(또는 그래픽 루트 로그인을 허용하지 않거나 허용하지 않는 경우 가능 even_deny_root).unloock_time

답변3

PAM 옵션 외에 로깅도 사용할 수 있습니다. 지금은 페도라에서 슬랙웨어로 전환중이라 정확한 파일이 틀릴수도 있는데 다음과 같이 입력하면

#!/bin/bash

if [ -f /tmp/erlogin ] ; then
    oldvalue=$(cat /tmp/erlogin)
    newvalue=$(grep 'invalid password' /var/log/secure|wc -l)
    if [ $((newvalue-oldvalue)) -gt 3 ] ; then
        shutdown -h now
    fi
fi
grep 'invalid password' /var/log/secure|wc -l> /tmp/erlogin

10분 정도마다.

관련 정보