Commit Graph

397 Commits

Author SHA1 Message Date
Matt Simerson
db3d27ba4e removed check_badrcptto_patterns: merged into check_badrcptto 2013-08-05 15:01:47 -07:00
Matt Simerson
7ff2d050f3 initial import - based on my qpsmtpd fork
which will merge into the main branch fairly easily
2013-08-05 15:01:47 -07:00
Matt Simerson
4e2ae484a2 Merge pull request #15 from msimerson/early
consolidated chunks of code duplicated 4x into log_and_deny and log_and_...
2013-08-05 12:33:42 -07:00
Matt Simerson
fd646b0d27 Merge pull request #29 from msimerson/helo
Helo
2013-08-05 12:30:59 -07:00
Matt Simerson
ba38da87fb helo: tweak POD language
also mention the connection notes in the POD
2012-06-15 12:44:33 -04:00
Matt Simerson
44db1fecf6 helo: loosen up matching DNS requirements
added X-HELO header to message
added timeout option
quieted down debug logging
2012-06-13 17:49:25 -04:00
Matt Simerson
74ae957936 helo: new plugin
helo - validate a HELO message delivered from a connecting host.

Includes the following tests:

	is_in_badhelo
	invalid_localhost
	is_plain_ip
	is_address_literal [N.N.N.N]
	is_forged_literal
	is_not_fqdn
	no_forward_dns
	no_reverse_dns
	no_matching_dns
2012-06-11 22:27:01 -04:00
Matt Simerson
e6ea23c92f relay: clean up trailing whitespace 2012-06-04 03:35:01 -04:00
Matt Simerson
22c0f23226 imported karma_tool 2012-06-04 03:34:59 -04:00
Matt Simerson
99c0aa8abd new karma plugin 2012-06-04 03:34:47 -04:00
Matt Simerson
7713333d31 p0f: POD improvements 2012-06-04 03:34:47 -04:00
Matt Simerson
c61fb67e9b checkpassword: remove newlines that appeared 2012-06-04 03:34:47 -04:00
Matt Simerson
1a1dcc3e53 auth: eval 'use' so plugins can be enabled by default
and tested.
2012-06-04 03:34:47 -04:00
Matt Simerson
5a8a9be26c make SPF level 2 a little more lenient 2012-06-04 03:34:47 -04:00
Matt Simerson
2727b8529c relay: added note to UPGRADING, dates to plugin author 2012-06-04 03:34:47 -04:00
Matt Simerson
974f1a95e8 new relay plugin, with tests!
replaces functionality of previous 3 relay plugins
2012-06-04 03:34:47 -04:00
Matt Simerson
bf5f1db436 delete 3 relay plugins 2012-06-04 03:34:47 -04:00
Matt Simerson
a69cd6bf64 basicheaders: adding missing semicolon, fixed POD error 2012-06-04 03:34:47 -04:00
Matt Simerson
1e26d1f5ec earlytalker: add explicit reject_type perm
and replace whitelist with is_immune
2012-06-04 03:26:24 -04:00
Matt Simerson
57a0e4ba7b updated plugins to use QP::Plugins::is_immune 2012-06-04 03:26:16 -04:00
Matt Simerson
2a371a2c6e consolidated chunks of code duplicated 4x into log_and_deny and log_and_pass
in apr_*_handler subs, return DECLINED when connection is not available to read (like during tests)

added 23 tests

deprecate action argument
	'action log' did nothing, better logging controls available with loglevel
	'action deny'  ->  reject 1
	'action denysoft' =>  reject 1 reject_type temp

POD
use head2 for config options (instead of over, item, back)
added loglevel section
updated for replacement of action with reject options
2012-06-04 03:23:14 -04:00
Matt Simerson
c2d23306dc badrcptto: remove spurious semicolon 2012-06-04 00:01:30 -07:00
Matt Simerson
086b31c546 connection_time: make compatible with tcpserver deployment 2012-06-04 00:00:37 -07:00
Ask Bjørn Hansen
0e2384cceb Make all plugins use $self->connection rather than $self->qp->connection
Merge remote-tracking branch 'msimerson/connect'

Conflicts:
	plugins/async/require_resolvable_fromhost
	plugins/require_resolvable_fromhost
2012-06-03 23:53:43 -07:00
Matt Simerson
0a16621f02 connection consistency
-  $self->qp->connection->notes
+  $self->connection->notes

and all tests pass.
2012-06-02 00:46:33 -04:00
Matt Simerson
e8e47ad93b move 'use ParaDNS' into register and eval it
so eventually, plugin tests can run against it, if ParaDNS can be loaded
2012-05-23 23:39:43 -04:00
Matt Simerson
2f49cafcd6 resolvable_fromhost: refactored, added: POD, tests, reject, reject_type 2012-05-23 23:39:43 -04:00
Ask Bjørn Hansen
9e239fd83d Merge pull request #16 from msimerson/geoip
Geoip plugin improvements
2012-05-23 15:39:10 -07:00
Matt Simerson
23f06fde7a basicheaders: removed deprecated argument warning 2012-05-23 17:56:06 -04:00
Matt Simerson
09935b0bf6 basicheaders: added whitelist support
because alerts.etrade.com doesn't set a Date header in alerts
2012-05-23 17:12:26 -04:00
Matt Simerson
80b94eb47a removed newline 2012-05-22 18:14:10 -04:00
Matt Simerson
2dcd34467e geoip: eval loading of Geo::IP, tests, enabled in config
eval Geo::IP and log an error if missing
added 2 tests
enabled in config/plugins
2012-05-22 17:40:02 -04:00
Matt Simerson
521aa4919f basicheaders, add reject option, loglevel
added reject option
document the existence of the loglevel option
factored date validity tests into their own sub
added tests
improved POD
2012-05-21 21:30:02 -04:00
Matt Simerson
9d0c2f8469 dnsbl, POD tweaks, DENY type tests
consolidated POD at top of file
added example options to reject_type POD head
added an example loglevel entry

consolidated DENY[SOFT|DISCONNECT] logic into get_reject_type
added tests for get_reject_type
2012-05-21 17:07:37 -04:00
Matt Simerson
ed8ce150be domainkeys: fix failing tests
the previous DK commit moved the 'use Mail::DomainKeys::*' stuff into an eval. The right idea, but tests still fail because I forgot to remove the bare 'use' lines.
2012-05-21 12:17:32 -07:00
Matt Simerson
41550c2681 domainkeys: only register hooks if Mail::DomainKeys is loadable 2012-05-21 05:59:44 -04:00
Matt Simerson
51486d0b04 SPF plugin: refactored, tests, new config option
added POD description of spfquery note

changed spf_deny -> reject  (and offered 4 more options, see POD for reject)
	backwards compatible with old config settings
	replicates qmail-smtpd SPF patch behavior

improved logging (again)

uses a stringy eval 'use Mail::SPF' in the register sub. If missing, warn and log the error, and don't register any hooks. This is much nicer error than the current, "*** Remote host closed connection unexpectedly." broken mail server that results from enabling the SPF plugin without Mail::SPF installed.

background: I noticed I was deferring valid emails with the SPF plugin at 'spf_deny 1', and without changing the code, there wasn't a way to change how ~all records were handled. This provides that flexibility.
2012-05-21 04:19:45 -04:00
Matt Simerson
edacbf914c anglebrackets: emit log entry when change made 2012-05-20 23:41:15 -07:00
Matt Simerson
691955c60f dnsbl: fixed path to docs/logging.pod 2012-05-20 23:41:09 -07:00
Matt Simerson
1c7d26ecca dnsbl: added log messages, prefixes, additional args
instead of a positional arguments, used named arguments (backwards compatible)
added a couple log message prefixes
removed some trailing whitespace
updated POD
2012-05-20 23:40:23 -07:00
Matt Simerson
5e7568fe71 earlytalker: prefix messages with result keywords 2012-05-20 23:40:15 -07:00
Matt Simerson
4c6054c9fc vpopmaild: logging improvements
added a couple logging calls
prefixed others with pass/skip/fail keywords
2012-05-20 23:40:11 -07:00
Matt Simerson
49dc8bc117 basicheaders: added log messages, tests, named args
added log messages at each exit point
added tests
added reject_type option (defer -vs- deny)
added named argument parsing
2012-05-20 23:39:54 -07:00
Matt Simerson
f37fba7c2b badrcptto: merged plugins, refactored, tests
merged badrcptto_pattern into badrcptto
refactored into smaller methods
added unit tests for each method
2012-05-20 23:39:38 -07:00
Matt Simerson
19927a117e spamassassin: added spam status to log messages
added additional values to tests, to suppress test warnings
2012-05-20 23:39:03 -07:00
Matt Simerson
c3d1f6b16e p0f: tests, tests, tests, backward compat
minor changes to facilitate testing
improved error reporting of several failures
added p0f v2 compatibility to p0f v3 results: in addition to all the newer values, also report the old ones too.
2012-05-20 23:38:48 -07:00
Matt Simerson
25a099e20b dspam: added check for autolearn
don't try to use autolearn if it's not set
added tests that exercise and exorcise the bug
2012-05-20 23:38:42 -07:00
Matt Simerson
9b8c5a1be4 rcpt_ok: refactored and added tests 2012-05-20 23:37:37 -07:00
Matt Simerson
c4b8a7a395 hosts_allow: added logging, POD, deploy notes
added LOGINFO logging for denials, and LOGDEBUG for other results
added SEE ALSO pod
improved readability
2012-05-20 23:37:33 -07:00
Matt Simerson
35e1ce9883 consolidate auth logic into Qpsmtpd::Auth
These 3 auth plugins all have a data store they fetch the reference
password or hash from. They then match the attemped password or hash
against the reference. This consolidates the latter portion (validating
the password/hash) into Auth.pm.

* less duplicated code in the plugins.
* Pass validation consistently handled for these 3 plugins.
* less work to create new auth plugins

Also caches the CRAM-MD5 ticket. It could also cache user/pass info if
this was desirable.
2012-05-20 23:37:06 -07:00