FAIL2BAN-REGEX(1)

πŸ’… fail2ban-regex β€” test Fail2ban "failregex" option

okay bestie, so you know how Fail2Ban reads log files full of password failure reports and then bans those sketchy IP addresses using firewall rules? yeah. this little icon is the tool that lets you test your regular expressions for "fail2ban" before you commit to them. it's giving "try before you buy" but for regex. no cap, it's a lifesaver. 🫢


✨ SYNOPSIS ✨

fail2ban-regex [OPTIONS] <LOG> <REGEX> [IGNOREREGEX]

🌸 DESCRIPTION 🌸

Fail2Ban reads log file that contains password failure report and bans the corresponding IP addresses using firewall rules.

This tools can test regular expressions for "fail2ban".


πŸ¦‹ LOG:

  • string β€” a string representing a log line
  • filename β€” path to a log file (/var/log/auth.log)
  • systemd-journal β€” search systemd journal (systemd-python required), optionally with backend parameters, see man jail.conf for usage and examples (systemd-journal[journalflags=1]).

πŸŽ€ REGEX:

  • string β€” a string representing a 'failregex'
  • filter name of jail or filter, optionally with options β€” (sshd[mode=aggressive])
  • filename β€” path to a filter file (filter.d/sshd.conf)

🌈 IGNOREREGEX:

  • string β€” a string representing an 'ignoreregex'

πŸ’– OPTIONS πŸ’–

  • --version β€” show program's version number and exit
  • -h, --help β€” show this help message and exit
  • -c CONFIG, --config=CONFIG β€” set alternate config directory
  • -d DATEPATTERN, --datepattern=DATEPATTERN β€” set custom pattern used to match date/times
  • --timezone=TIMEZONE, --TZ=TIMEZONE β€” set time-zone used by convert time format
  • -e ENCODING, --encoding=ENCODING β€” File encoding. Default: system locale
  • -r, --raw β€” Raw hosts, don't resolve dns
  • --usedns=USEDNS β€” DNS specified replacement of tags <HOST> in regexp ('yes' - matches all form of hosts, 'no' - IP addresses only)
  • -L MAXLINES, --maxlines=MAXLINES β€” maxlines for multi-line regex.
  • -m JOURNALMATCH, --journalmatch=JOURNALMATCH β€” journalctl style matches overriding filter file. "systemd-journal" only
  • -l LOG_LEVEL, --log-level=LOG_LEVEL β€” Log level for the Fail2Ban logger to use
  • -V β€” get version in machine-readable short format
  • -v, --verbose β€” Increase verbosity
  • --verbosity=VERBOSE β€” Set numerical level of verbosity (0..4)
  • --verbose-date, --VD β€” Verbose date patterns/regex in output
  • -D, --debuggex β€” Produce debuggex.com urls for debugging there
  • --no-check-all β€” Disable check for all regex's
  • -o OUT, --out=OUT β€” Set token to print failure information only (row, id, ip, msg, host, ip4, ip6, dns, matches, ...)
  • -i, --invert β€” Invert the sense of matching, to output non-matching lines.
  • --print-no-missed β€” Do not print any missed lines
  • --print-no-ignored β€” Do not print any ignored lines
  • --print-all-matched β€” Print all matched lines
  • --print-all-missed β€” Print all missed lines, no matter how many
  • --print-all-ignored β€” Print all ignored lines, no matter how many
  • -t, --log-traceback β€” Enrich log-messages with compressed tracebacks
  • --full-traceback β€” Either to make the tracebacks full, not compressed (as by default)

πŸ‘‘ AUTHOR πŸ‘‘

Written by Cyril Jaquier <cyril.jaquier@fail2ban.org>. Many contributions by Yaroslav O. Halchenko, Steven Hiscocks, Sergey G. Brester (sebres).


🚨 REPORTING BUGS 🚨

Report bugs to https://github.com/fail2ban/fail2ban/issues


Copyright Β© 2004-2008 Cyril Jaquier, 2008- Fail2Ban Contributors

Copyright of modifications held by their respective authors. Licensed under the GNU General Public License v2 (GPL).


πŸ”₯ SEE ALSO πŸ”₯

fail2ban-client(1) fail2ban-server(1) jail.conf(5)


okay that's the whole vibe, bestie β€” go test those regexes and slay ✨

this has been fail2ban-regex 1.1.1, dated August 2026 β€” catch you in the logs πŸ’œ

πŸ“¦ where this page comes from