Текущая версия fail2ban 0.9.1 не имеет предварительно настроенного фильтра для Tomcat. Если кому-то это нужно, вот регулярное выражение, которое работает для меня. Обратите внимание, что в моем приложении не ожидается ошибок 404. Для более типичного веб-сайта не используйте первую строку failregex.
[INCLUDES]
[Definition]
# 1. match on 40x http status code
# 2. URLs should start with a forward slash - (often proxy requests start with http://blahh)
# 3. match on http 1.0 - let's not support it, even for search engines
failregex = <HOST> - - \[.*\] "GET .* HTTP/1.1" 40\d \d+$
<HOST> - - \[.*\] "GET http
<HOST> - - \[.*\] "GET .* HTTP/1.0"
ignoreregex =
О, и вот определение тюрьмы (добавить в jail.local):
[tomcat]
enabled = true
port = http,https
filter = tomcat
logpath = /opt/tomcat8/logs/localhost_access_log.*.txt
maxretry = 1
action = iptables-allports