
내 로그에는 봇이 특정 소프트웨어 설치를 위해 서버를 체계적으로 검색하는 404 오류가 정기적으로 많이 표시됩니다. 이로 인해 트래픽이 많이 발생하므로 금지하고 싶습니다.
그래서 일부 HowTos를 기반으로 Apache 로그에서 이러한 404 요청을 필터링하고 이를 기반으로 관련 IP를 차단하는 fall2ban에 대한 RegEx를 찾으려고 했습니다.
불행하게도 내가 찾아 시도한 RegEx 패턴 중 어느 것도 작동하지 않았습니다. 예를 들면 다음과 같습니다.
fail2ban-regex /var/log/apache2/other*access.log '^<HOST> - .* "(GET|POST|HEAD).*HTTP.*" 404 .*$'
(나에게는 좋아 보이지만) 아무것도 찾지 못합니다.
Date template hits:
|- [# of hits] date format
| [1210] Day(?P<_sep>[-/])MON(?P=_sep)ExYear[ :]?24hour:Minute:Second(?:\.Microseconds)?(?: Zone offset)?
`-
Lines: 1210 lines, 0 ignored, 0 matched, 1210 missed
해당 로그 파일에는 분명히 여러 개의 404 오류가 있습니다. 그럼 내가 뭘 잘못하고 있는 걸까요? 모든 404를 얻으려면 적절한 RegEx가 어떻게 보여야 합니까?
감사해요!
답변1
other_vhosts_access.log
기본적으로 표준과 비교할 때 LogFormat vhost_combined
접두사가 붙는 다른 가 있습니다 . 이에 따라 정규식을 수정해야 합니다.vhost:port
common
LogFormat
답변2
이거 먹어봤어?
failregex = ^<HOST> - .* "(GET|POST|HEAD).*HTTP.*" 404 .*$
ignoreregex =.*(robots.txt|favicon.ico|jpg|png)