IP 주소와 로그 실패 횟수를 검색하기 위해 로그 파일을 확인하고 있습니다. 내 로그 파일은 다음과 같습니다.
Feb 2 15:20:02 tank sshd[14870]: Failed password for root from 143.100.67.173 port 13356 ssh2
Feb 2 15:20:07 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:12 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:16 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:20 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:23 tank sshd[14874]: Accepted password for root from 143.100.67.173
이제 로그가 승인된 횟수도 확인하고 싶습니다. 무차별 대입 공격에 대한 개요를 얻는 것이 아이디어입니다.
연장하려면 어떻게 해야 해?
sed -nr '/Failed/{s/.*([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+).*/\1/;p}'| sort | uniq -c
허용되는 비밀번호도 확인하시겠습니까? 그것은 마치
sed -nr '/Accepted|Failed/{s/.*([0-9]+\.[0-9]+\.[0-9]+\.[0-9]+).*/\1/;p}'| sort | uniq -c
하지만 "Accepted"와 "Failed" 사이에 "OR"을 사용하는 대신 다음과 같은 개수 결과를 얻고 싶습니다.
123.53.163.22 3 2
(열: IP 주소, 총 실패, 총 승인)
이는 다음과 관련이 있습니다.가능한 SSH 공격자의 IP 주소를 검색하는 방법은 무엇입니까?
답변1
작은 샘플을 고려하면 ...
cat horbaje
Feb 2 15:20:02 tank sshd[14870]: Failed password for root from 143.100.67.173 port 13356 ssh2
Feb 2 15:20:07 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:12 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:16 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:20 tank sshd[14874]: Failed password for root from 143.100.67.173 port 30595 ssh2
Feb 2 15:20:23 tank sshd[14874]: Accepted password for root from 143.100.67.173
나는 이것이 당신이 원하는 것을 한다고 생각합니다.
awk '$6~/Failed/{a[$11][1]++}; $6~/Accepted/{a[$11][2]++} END{for(i in a){printf "%s\t%s\t%s\n",i,a[i][1],a[i][2]}}' horbaje
143.100.67.173 5 1