-
-
Notifications
You must be signed in to change notification settings - Fork 1.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for postfix/submission/smtpd matching. #804
Conversation
seems sane ref: http://anonscm.debian.org/cgit/users/lamont/postfix.git/tree/conf/master.cf |
done |
Please let me know if this is what you want, or if there is an issue. I also added a match line for concurrency limit exceeded, as I was smtp connection bombed a few times recently. |
|
||
failregex = ^%(__prefix_line)sNOQUEUE: reject: RCPT from \S+\[<HOST>\]: 554 5\.7\.1 .*$ | ||
^%(__prefix_line)sNOQUEUE: reject: RCPT from \S+\[<HOST>\]: 450 4\.7\.1 : Helo command rejected: Host not found; from=<> to=<> proto=ESMTP helo= *$ | ||
^%(__prefix_line)sNOQUEUE: reject: VRFY from \S+\[<HOST>\]: 550 5\.1\.1 .*$ | ||
^%(__prefix_line)swarning: Connection concurrency limit exceeded: \d+ from \S+\[<HOST>\] for service.*$ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
it indeed does look like a possible attack vector but per se might also happen in non-malicious cases. So is not a clear indicator... may be worth for smth like postfix-dos filter but IMHO not for this one.
similar argumentation for the one below -- couldn't it happen simply on unstable connection without any malicious attempt?
so let's keep this PR solely for the original purpose.
to proceed forward I will merge it, and then remove those additional two regexes and their sample logs... please initiate new PR to discuss more etc |
Add support for postfix/submission/smtpd matching.
What aught to be a bugfix release delayed into a featured release 0.9.1 ver. 0.9.1 (2014/10/29) - better, faster, stronger ---------- - Refactoring (IMPORTANT -- Please review your setup and configuration): * iptables-common.conf replaced iptables-blocktype.conf (iptables-blocktype.local should still be read) and now also provides defaults for the chain, port, protocol and name tags - Fixes: * start of file2ban aborted (on slow hosts, systemd considers the server has been timed out and kills him), see fail2bangh-824 * UTF-8 fixes in pure-ftp thanks to Johannes Weberhofer. Closes fail2bangh-806. * systemd backend error on bad utf-8 in python3 * badips.py action error when logging HTTP error raised with badips request * fail2ban-regex failed to work in python3 due to space/tab mix * recidive regex samples incorrect log level * journalmatch for recidive incorrect PRIORITY * loglevel couldn't be changed in fail2ban.conf * Handle case when no sqlite library is available for persistent database * Only reban once per IP from database on fail2ban restart * Nginx filter to support missing server_name. Closes fail2bangh-676 * fail2ban-regex assertion error caused by miscount missed lines with multiline regex * Fix actions failing to execute for Python 3.4.0. Workaround for http://bugs.python.org/issue21207 * Database now returns persistent bans on restart (bantime < 0) * Recursive action tags now fully processed. Fixes issue with bsd-ipfw action * Fixed TypeError with "ipfailures" and "ipjailfailures" action tags. Thanks Serg G. Brester * Correct times for non-timezone date times formats during DST * Pass a copy of, not original, aInfo into actions to avoid side-effects * Per-distribution paths to the exim's main log * Ignored IPs are no longer banned when being restored from persistent database * Manually unbanned IPs are now removed from persistent database, such they wont be banned again when Fail2Ban is restarted * Pass "bantime" parameter to the actions in default jail's action definition(s) * filters.d/sieve.conf - fixed typo in _daemon. Thanks Jisoo Park * cyrus-imap -- also catch also failed logins via secured (imaps/pop3s). Regression was introduced while strengthening failregex in 0.8.11 (bd175f) Debian bug #755173 * postfix-sasl - added journalmatch. Thanks Luc Maisonobe * postfix* - match with a new daemon string (postfix/submission/smtpd). Closes fail2bangh-804 . Thanks Paul Traina * apache - added filter for AH01630 client denied by server configuration. - New features: - New filters: - monit Thanks Jason H Martin - directadmin Thanks niorg - apache-shellshock Thanks Eugene Hopkinson (SlowRiot) - New actions: - symbiosis-blacklist-allports for Bytemark symbiosis firewall - fail2ban-client can fetch the running server version - Added Cloudflare API action - Enhancements * Start performance of fail2ban-client (and tests) increased, start time and cpu usage rapidly reduced. Introduced a shared storage logic, to bypass reading lots of config files (see fail2bangh-824). Thanks to Joost Molenaar for good catch (reported fail2bangh-820). * Fail2ban-regex - add print-all-matched option. Closes fail2bangh-652 * Suppress fail2ban-client warnings for non-critical config options * Match non "Bye Bye" disconnect messages for sshd locked account regex * courier-smtp filter: - match lines with user names - match lines containing "535 Authentication failed" attempts * Add <chain> tag to iptables-ipsets * Realign fail2ban log output with white space to improve readability. Does not affect SYSLOG output * Log unhandled exceptions * cyrus-imap: catch "user not found" attempts * Add support for Portsentry * tag '0.9.1': (36 commits) ENH: additional versioning changes Refreshed manpages ENH: fail early in generate-man + provide PYTHONPATH upstairs Changes for the 0.9.1 release versioning Populated MANIFEST with more entries which were preiously missed or duplicated. Sorted within each "section" Add portsentry to changelog ConfigReader.touch renamed into protected _create_unshared DOC: documentation about available vagrantfile setup Added myself into THANKS DOC: adjust docs in mytime to place docs into docstrings ENH: do use @staticmethod (we are well beyond support of 2.4 now) testExecuteTimeout fixed: give a test still 1 second, because system could be too busy coverage: no cover (for failed except) fix: fail2ban-regex with filter file failed (after merging fail2ban#824, because test case missing); test case for 'readexplicit' added; ENH: remove obsolete code for python < 2.6 (we support >= 2.6) DOC: very minor (tabs/spaces) We better check that installation doesn't cause any errors as well code review, change log entries added; reset share/cache storage (if we use 'reload' in client with interactive mode) normalize tabs/spaces in docstrings; ...
By default, on debian, and perhaps globally, the postfix smtpd daemon running on port 587 logs with the daemon name
postfix/submission/smtpd
instead of
postfix/smtpd
This covers both cases (old, new, port 25, port 587).
Close #803