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