我正在尝试编写一个 fail2ban 正则表达式来捕获任何尝试使用用户 ID“administrador”的人。例如,此日志条目:
Jan 2 09:55:01 mail2 dovecot: pop3-login: Disconnected: user=<administrador>, method=PLAIN, rip=::ffff:201.130.1.218
这是我目前拥有的正则表达式:
failregex = (?: pop3-login|imap-login): .*(?:Disconnected: user=\<administrador\>).*rip=(?P<host>\S*),.*
由于语法错误,它无法捕获上述日志条目。有人能帮忙吗?
答案1
您的模式以“pop3”或“imap”开头...日志条目以日期开头。
failregex = .*(pop3-login|imap-login).*administrator.*rip=<HOST>
应该可以(虽然我还没有测试过)
还发现了这个Fail2Ban 条目在Dovecot维基。
答案2
进一步试验后,终于可以创建一个有效的版本。问题出在远程 IP(rip)部分。以下是有效的版本:
failregex = (?: pop3-login|imap-login): .*(?:Disconnected: user=\<administrador\>).*rip=.*ffff\:(<HOST>).*
虽然它可能不是很高效。我们仍然欢迎任何改进建议。