사이트 접근로그를 보다보면 존재하지도 않는 페이지를 무작위로 접근해보는 로그가 있을 수 있다.
이는 워드프레스나 그누보드같은 오픈소스를 설치하지 않았을까 해서 해당 민감한 페이지를 스캔해보려는 해킹 시도이다.
fail2ban 을 이용하여 존재하지않는 페이지 (404) 오류를 지정한 횟수 이상 초과했을시 차단시키는 방법이다.
# vim /etc/fail2ban/filter.d/nginx-4xx.conf
[code]
failregex = ^<HOST>.*”(GET|POST).*” (404|444|403|400) .*$
ignoreregex =
[/code]
# vim /etc/fail2ban/jail.conf (또는 jail.local)
[code]
[nginx-4xx]
enabled = true
port = http,https
filter = nginx-4xx
logpath = /var/log/nginx/access.log
bantime = 60m
findtime = 10m
maxretry = 10
[/code]
/var/log/nginx/access.log 에서 최근 10분간의 로그내에 4xx 에러를 10번이상 냈을경우 1시간동안 차단시킨다.
데몬재시작
# systemctl restart fail2ban
nginx-4xx 필터로 차단된 IP 목록 보기
# fail2ban-client status nginx-4xx