fail2ban log
fail2ban 로그는 아래 형태로
1 2 3 4 5 6 7 8 9
| 2016-08-28 12:35:56,163 fail2ban.actions[860]: WARNING [ssh] Ban 103.237.147.19 2016-08-28 12:36:09,215 fail2ban.actions[860]: WARNING [ssh] Ban 115.248.186.3 2016-08-28 17:39:47,806 fail2ban.actions[860]: WARNING [ssh] Ban 117.3.120.94 2016-08-28 23:06:21,291 fail2ban.actions[860]: WARNING [ssh] Ban 155.94.163.64 2016-08-29 19:50:51,400 fail2ban.actions[860]: WARNING [ssh] Ban 182.75.249.110 2016-08-31 14:26:54,093 fail2ban.actions[860]: WARNING [ssh] Ban 103.207.36.36 2016-09-01 02:23:23,790 fail2ban.actions[860]: WARNING [ssh] Ban 45.32.60.93 2016-09-01 17:44:35,854 fail2ban.filter [860]: WARNING Determined IP using DNS Lookup: 61-216-182-218.hinet-ip.hinet.net = ['61.216.182.218'] 2016-09-01 17:47:18,004 fail2ban.actions[860]: WARNING [ssh] Ban 61.216.182.218
|
awk 이용 ip 주소 추출
awk 를 사용해서 로그에서 ip주소를 추출해 보자. 로그 내용에서 ‘Ban’을 포함한 줄을 만나면 $NF 변수에 각 컨럼을 저장한다.
1 2 3 4 5
| $sudo awk '($(NF-1) = /Ban/){print $NF}' /var/log/fail2ban.log 103.237.147.19 115.248.186.3 117.3.120.94
|
IP주소를 정렬
1 2 3 4
| $sudo awk '($(NF-1) = /Ban/){print $NF}' /var/log/fail2ban.log | sort | uniq -c | sort -n 1 103.207.36.36 1 103.237.147.19 1 115.248.186.3
|
- 각 거부당한 IP 주소는 최대 실패 횟수 이후 ban 하므로 30회 이상의 시도가 있을
모든 백업 로그에서 IP 주소 추출
백업된 로그 파일을 모두 사용하려면 zgrep 명령을 사용해도 좋다
1
| $sudo zgrep -h "Ban " /var/log/fail2ban.log* | awk '{print $NF}' | sort | uniq -c | sort -n
|
다음은 아주 위험한 서브넷을 출력한다.
1 2 3 4 5 6 7 8 9 10 11
| $sudo zgrep -h "Ban " /var/log/fail2ban.log* | awk '{print $NF}' | awk -F\. '{print $1"."$2"."}' | sort | uniq -c | sort -n | tail 2 222.186. 3 111.74. 3 116.100. 3 182.100. 3 195.154. 3 42.117. 7 115.239. 8 91.224. 14 103.207. 39 221.229.
|
1 2 3 4 5 6
| $sudo zgrep -c 221.229 /var/log/fail2ban.log* /var/log/fail2ban.log:0 /var/log/fail2ban.log.1:2 /var/log/fail2ban.log.2.gz:0 /var/log/fail2ban.log.3.gz:2 /var/log/fail2ban.log.4.gz:68
|
전체 로그에 순위 매기기
1 2 3 4 5
| zcat /var/log/auth.log* | grep 'Failed password' | grep sshd | awk '{print $1,$2}' | sort -k 1,1M -k 2n | uniq -c
161 Mar 20 202 Mar 21
|
참조
Multiple log file
http://serverfault.com/questions/486301/how-to-set-up-fail2ban-to-read-multi-log-in-a-jail