마지막으로 성공한 로그인 이후 실패한 로그인 시도 횟수를 가져옵니다.

마지막으로 성공한 로그인 이후 실패한 로그인 시도 횟수를 가져옵니다.

SSH 연결을 설정할 때 이 메시지를 재현하는 방법:

마지막 로그인 실패: 2월 19일 일요일 03:52:25 마지막 로그인 성공 이후 41번의 로그인 시도가 실패했습니다.

호스트 집합에 대해 이 검사를 수행하는 플레이북을 Ansible에서 구성하고 싶습니다. 그게 가능합니까? 이 메시지 생성을 담당하는 서비스는 무엇입니까?

그렇지 않다면 누구든지 이것을 달성할 수 있는 좋은 방법을 알려줄 수 있습니까? 보안 로그에서 실패한 시도를 얻을 수 있다는 것을 알고 있지만 마지막으로 성공한 액세스 이후 횟수를 계산하는 방법을 정확히 모릅니다.

답변1

참고: 다음 답변에서는 SSH를 통해 서버에 연결하지 않고 Ansible을 통해서만 서버에 액세스할 수 있다고 가정합니다.


아마도 가장 우아한 해결책은 아니지만 충분히 좋을 것입니다.

- name: Failed logins since last playbook execution
  shell: 'echo $((`lastb | wc -l` - 2)) ; > /var/log/btmp'

설명(여기서 너무 뻔했다면 죄송합니다...):

  • lastb실패한 로그인을 나열하는 명령이며 해당 출력은 다음을 기반으로 합니다./var/log/btmp

  • ``는 명령 대체를 수행하는 방법으로, 그 목적은 명령을 해당 출력으로 대체하여 다른 명령에 대한 인수가 될 수 있도록 하는 것입니다. 이 경우 산술 연산을 위한 이중 괄호입니다.$(()))

  • lastb | wc -l그러나 반환된 행 수는 /var/log/btmp원하는 결과를 얻으려면 여기서 2를 빼야 합니다. 두 번째에서 마지막 행 /var/log/btmp은 빈 행이고 마지막 행에는 타임스탬프가 포함되어 있기 때문입니다.

    btmp begins Sat Feb 19 18:50:43 2022 
    
  • 마지막으로 실패한 로그인 횟수를 재설정하기 위해 다음을 자릅니다./var/log/btmp

관련 정보