Commit Graph

304 Commits

Author SHA1 Message Date
Matt Simerson
ed8eca0a63 fixed failing auths to auth/vpopmaild, added tests
Apparently the format of vpopmaild responses has been expanded and the responses
are conditional.

* Replaced the 'sometimes works' eq comparison with a regexp that always works.
* added tests for all 3 vpopmail plugins
* added cram-md5 auth support to auth_vpopmaild.
2012-04-07 17:52:44 -04:00
Matt Sergeant
5200244031 Fix STARTTLS vulnerability for async 2011-06-02 12:57:50 -04:00
Peter J. Holzer
b7668c0468 temp_resolver_failed is a transaction note
The mail hook sets a transaction note 'temp_resolver_failed', but the
 rcpt hook queried a connection note of the same name (which didn't
 exist, of course).
 Now it queries the transaction note.
2011-01-03 12:39:57 -08:00
Charlie Brady
24d09fa4a9 Patch: FATAL PLUGIN ERROR [check_basicheaders]: ...
check_basicheaders fails if there are no headers at all:

http://bugs.contribs.org/show_bug.cgi?id=6345
2010-11-13 18:04:02 -08:00
Hanno Hecker
f9399950f3 plugins/rcpt_map cleanup
* enforce having a "domain" parameter
* unique default message (missing dot added)
2010-09-17 15:25:19 +08:00
Hanno Hecker
7bfad42ac9 new plugin rcpt_map
Check recipients from a postfix style map. The valid return codes are of course
qpsmtpd constants. By storing the addresses in a %hash, this is much faster
for fixed addresses than using the rcpt_regexp plugin just with fixed strings.
This plugin handles only one domain per plugin instance. Use the :N suffix for
the plugin if you need several domains mapped.
2010-09-17 15:25:18 +08:00
jaredj
295474503f Add support for multiple postfix cleanup sockets
The current postfix-queue plugin allows the administrator to set a
single path to a local postfix cleanup socket file from the plugin
'command line'.  This adds a 'cleanup_sockets' configuration directive
that can contain a list of paths as well as host/port combinations
pointing to postfix cleanup services, which will be tried in the order
that they appear.  Not yet tested.
2010-09-15 14:32:54 +08:00
Matt Simerson
d0c9b7cbe5 corrected email address 2010-07-25 22:31:19 -07:00
Robert
803a320127 ignore search path in DNS lookups
2.  If the name doesn't end in a dot then append each item in the search list to the name.
           This is only done if dnsrch is true.

triggered by..

From: Charlie Brady <charlieb-qpsmtpd@budge.apana.org.au>
Subject: [BUG] Default search path used in require_resolvable_fromhost
Date: Sat, 17 Jul 2010 16:24:42 -0400 (EDT)
Message-ID:
 <Pine.LNX.4.64.1007171623040.17109@e-smith.charlieb.ott.istop.com>

http://bugs.contribs.org/show_bug.cgi?id=5808

 Jesper Knudsen      2010-03-01 01:29:10 MST

When using the require_resolvable_fromhost plugin for qpsmtpd I noticed
that mails from user@localhost.localdomain was actually getting through
this filter. I finally found out that the plugin has a bug that causes it
to insert default search path if it cannot find the domain. This means in
my case that localhost.localdomain was then tried resolved as
localhost.localdomain.swerts-knudsen.dk and since I have a wilcard CNAME
was resolved as my public IP.

Since this plugin is only enabled for public interface the fix is to set
the "dnsrch" flag when creating the Net::DNS object.

In require_resolvable_fromhost:
my $res = Net::DNS::Resolver->new (
                                   dnsrch => 0
                                   );
2010-07-25 21:47:25 -07:00
Johan Almqvist
e2ee6f13e5 new plugin check_badmailfrom_patterns
Signed-off-by: Robert <rspier@pobox.com>
2010-07-11 17:29:24 -07:00
Robin Bowes
0d2b724b93 Check for the exact string resonses from vpopmaild rather than using regexes 2010-05-12 23:25:09 -07:00
Matt Simerson
cc2d8ccca6 added local_ip option to p0f plugin
(updated patch against rspier/qpsmtpd)

The p0f plugin defaulted to binding to TCPLOCALIP, which doesn't work
when the mail server is running behind a firewall with a private IP. If
the local_ip option is set in the config file, it overrides TCPLOCALIP.

Added POD documentation for local_ip option and p0f general usage

Signed-off-by: Robert <rspier@pobox.com>
2010-05-11 21:16:56 -07:00
Matt Simerson
671a6953b0 add TCPLOCAL* variables to $qp->connection
(patch remade against latest rspier/qpsmtpd)

added remote_port, local_ip, local_port, and local_host to $qp->connection, as the p0f plugin relies on it.
added notes to TcpServer.pm and the p0f plugin noting the dependence, and the lack of support for models other than tcpserver.

Signed-off-by: Robert <rspier@pobox.com>
2010-05-11 21:15:57 -07:00
Matt Simerson
0291260284 rewrote sender_permitted_from
rewrote the plugin using Mail::SPF, which is the replacement for Mail::SPF::Query (by the same author).  The two plugins are mutually exclusive and SpamAssassin expects to have Mail::SPF available.

Signed-off-by: Robert <rspier@pobox.com>
2010-05-11 21:13:13 -07:00
Matt Simerson
b1c3d2f333 added auth_vpopmail plugin
added auth_vpopmail plugin, using the perl-vpopmail module
added VPOPMAIL auth methods description to docs/authentication
added SEE ALSO section to each module, noting the VPOPMAIL description

Signed-off-by: Robert <rspier@pobox.com>
2010-05-11 21:11:42 -07:00
Matt Simerson
8b892c33ad fix copy/paste error in auth_flat_file
correct copy/paste error, where auth_flat_file methods were named authsql in auth_flat plugin

Signed-off-by: Robert <rspier@pobox.com>
2010-05-11 21:08:50 -07:00
Robin Bowes
febdb001c6 new plugin auth_vpopmaild
Signed-off-by: Robert <rspier@pobox.com>
2010-05-10 21:02:46 -07:00
Matt Simerson
0ae24edc55 updates to auth_vpopmail_sql module
updates to auth_vpopmail_sql module
 - moved vpopmail database parameters into config files
 - added LIMITATIONS section to POD, noting no support for alias domains
 - renamed sub from authsql (too generic) to auth_vmysql

Signed-off-by: Robert <rspier@pobox.com>
2010-05-10 20:51:14 -07:00
Matt Simerson
fbbf43ad15 added auth_checkpassword plugin
New and improved!
With POD! (because JP said so: http://www.nntp.perl.org/group/perl.qpsmtpd/2005/06/msg3145.html)
Includes usage notes and a perl script useful for diagnosing a checkpassword program.

Signed-off-by: Robert <rspier@pobox.com>
2010-05-10 20:50:43 -07:00
Matt Simerson
e8cb1c3e94 added definedness test to $local_port as it was emitting errors to to not being defined. My previous commit to TcpServer.pm fixed that problem.
Signed-off-by: Robert <rspier@pobox.com>
2010-05-09 23:28:15 -07:00
Matt Simerson
5f81fd7925 remove vestiges of a bygone RCS 2010-05-09 23:22:13 -07:00
Robert
e37f14b9a6 microoptimizations - replace regex with lc eq 2010-05-09 22:45:59 -07:00
Steve Kemp
1002d0dd56 new plugin - check_bogus_bounce
The current status file, in git, has the following entry:

  -plugin to reject mails from <> if it has multiple recipients.

  I hereby submit my plugin to handle this case for possible inclusion,
 under the same terms as the current qpsmtpd release.

  The plugin is available here:

    http://www.steve.org.uk/Software/qpsmtpd/check_bogus_bounce/

  Please find patch against git head below, adding the file and removing
 the TODO line from the status file.

Signed-off-by: Robert <rspier@pobox.com>
2010-05-09 22:37:13 -07:00
Matt Simerson
68ecedd1ac added ClamAV version to the X-Virus-Checked header
Signed-off-by: Robert <rspier@pobox.com>
2010-05-04 14:23:03 -07:00
Devin Carraway
73eb9012bd Header check config/logical-inversion fix
Jost Krieger pointed out that the documentation for the header check called
for a config_headers, but the code actually implemented scan_headers.  Updated
to accept either.  Also the condition for actually checking/skipping the
headers was inverted.

Also whitespace fixes.
2010-02-20 11:31:36 -08:00
lnedry
3e36ab55af Moved DENYSOFT for temp_resolver_failed to the RCPT TO hook. 2010-02-13 16:29:56 -07:00
Devin Carraway
3889821d16 Use BSMTP response code; misc cleanups
Exim's BSMTP interface will indicate the SMTP response to the exchange;
actually use it rather than assuming all errors are 400-class soft ones.

Tolerate $transaction->header returning undef (since it evidently can under
some conditions).

Convert a few errant tabs to spaces.

Fix vi modeline.

Signed-off-by: Robert <rspier@pobox.com>
2009-12-23 00:02:04 -08:00
Ask Bjørn Hansen
59da4e4944 Fix typo in default clamav configuration name 2009-11-04 22:36:07 -08:00
Robert
b72c4b0b86 Add config example 2009-11-04 21:44:43 -08:00
Robert
de3fbb565f Rename spamsubjectprefix to subject_prefix. Add docs. 2009-11-04 21:43:38 -08:00
Jonathan Martens
48d1a5b9fe Custom spam tag subject munging in spamassasin plugin
Hi all!

I have written a patch to allow the spamassasin plugin to have a custom
spam tag read in from a configuration file as opposed to the default ***
SPAM *** that is hard coded.

When the configuration file (spamsubjectprefix) is not defined or empty
the default value still applies, if it is provided the value from the
configuration file is used.

Any change this can be considered for implementation as we would really
like to have it for SME Server.

Kind regards,

Jonathan

Signed-off-by: Robert <rspier@pobox.com>
2009-11-04 21:38:57 -08:00
Hinrik Örn Sigurðsson
a5ecd41e72 Allow hyphens in the 1st argument to queue/maildir
This is to allow some perfectly reasonable path names like
/var/spool/qpsmtpd-maildir, etc.
2009-09-15 17:24:34 +00:00
Jared Johnson
b130e6a59e Log even when we aren't in a transaction
This should allow the logging/file plugin to log even if it isn't called from
within a transaction
2009-08-14 14:29:15 -07:00
Ask Bjørn Hansen
eb27828f8b Merge patches from SMEServer (thanks Filippo!) 2009-07-20 08:36:46 -07:00
Shad L. Lords
52a1ba8deb Temporary deny if clamd is not running 2009-07-20 13:13:51 +02:00
Jonathan Martens
b3c5195b64 Modify plugins/virus/clamav option for ClamAV 0.95 (no-summary) 2009-07-20 13:07:45 +02:00
Charlie Brady
f4eb90cba3 Fix spamassassin plugin log noise if spam score is 0.0 2009-07-20 13:02:38 +02:00
Charlie Brady
a138bcf5a4 Disconnect hosts in rhsbl 2009-07-20 12:59:32 +02:00
Robert
d6154ab945 don't worry about trailing whitespace in reason 2009-06-23 22:28:37 -07:00
Robert
6345b62e82 fix default reason handling
Tomas Lee <j533xdbjwfgdbsv@jetable.net> pointed out that
cab7466c08 broke the default badmailfrom
reason.

This fixes that functionality and simplifies the code a little.
2009-06-22 22:44:38 -07:00
Filippo Carletti
0c69862953 check_spamhelo disconnects after denying a 'helo' 2009-06-18 22:43:48 -07:00
Devin Carraway
6c4dc31827 [PATCH] Update clamdscan plugin to use ClamAV::Client
Signed-off-by: Robert <rspier@pobox.com>
2009-04-27 07:38:28 -07:00
jaredj
89e391e9d2 Close spamd socket when we're finished with it
QP's connection to spamd unnecessarily persists beyond the run of the
spamassassin plugin itself.  This closes the socket as soon as we're
finished using it.

Signed-off-by: Ask Bjørn Hansen <ask@develooper.com>
2009-04-02 22:35:42 -07:00
Robert
687fce7caa p0f plugin updates
from Tom Callahan <anomaly@abducted.us>
(reformatted by Robert)

Signed-off-by: Robert <rspier@pobox.com>
Signed-off-by: Ask Bjørn Hansen <ask@develooper.com>
2009-04-01 22:24:37 -07:00
Robert
6365e3a66e Updates to the random_error sample plugin from David Nicol
Signed-off-by: Robert <rspier@pobox.com>
2009-03-14 17:18:28 -07:00
Hanno Hecker
fe4f40b560 "new" plugin logging/apache from SVN's contrib/
Imported logging/apache from SVN's contrib. Changes:
* perltidy run

* Minor tidy-ups by Ask

Signed-off-by: Ask Bjørn Hansen <ask@develooper.com>
2009-03-02 12:42:08 -08:00
Hanno Hecker
a3e41d4a3a "new" plugin connection_time from SVN's contrib/
import plugins/connection_time from SVN's contrib. Changes:
* perltidy run
* add one optional parameter: log level of the message, defaults
  to LOGNOTICE (same as in SVN)
2009-03-02 12:40:05 -08:00
Hanno Hecker
aa199bee3b "new" plugin rcpt_regexp from SVNs contrib/
* updated docs
* use magic hooking with hook_rcpt
* add note about regexes being eval()ed => trusted users only

Signed-off-by: Ask Bjørn Hansen <ask@develooper.com>
2009-02-27 00:55:03 -08:00
jaredj
da0110837b Call add_recipient correctly in kavscanner plugin
plugins/virus/kavscanner calls $transaction->add_recipient($_->address)
on a list of Mail::Address objects, but add_recipient() clearly
documents that it takes Qpsmtpd::Address (or compatible) objects, not
strings.  This is a bit of a drive-by fix inspired by a grep through the
codebase for calls to add_recipient().
2009-02-27 00:49:01 -08:00
Ask Bjørn Hansen
b1cbe6a9be Remove outdated virus/check_for_hi_virus plugin 2009-02-27 00:16:24 -08:00