.\" Automatically generated by Pod::Man 4.14 (Pod::Simple 3.42) .\" .\" Standard preamble: .\" ======================================================================== .de Sp \" Vertical space (when we can't use .PP) .if t .sp .5v .if n .sp .. .de Vb \" Begin verbatim text .ft CW .nf .ne \\$1 .. .de Ve \" End verbatim text .ft R .fi .. .\" Set up some character translations and predefined strings. \*(-- will .\" give an unbreakable dash, \*(PI will give pi, \*(L" will give a left .\" double quote, and \*(R" will give a right double quote. \*(C+ will .\" give a nicer C++. Capital omega is used to do unbreakable dashes and .\" therefore won't be available. \*(C` and \*(C' expand to `' in nroff, .\" nothing in troff, for use with C<>. .tr \(*W- .ds C+ C\v'-.1v'\h'-1p'\s-2+\h'-1p'+\s0\v'.1v'\h'-1p' .ie n \{\ . ds -- \(*W- . ds PI pi . if (\n(.H=4u)&(1m=24u) .ds -- \(*W\h'-12u'\(*W\h'-12u'-\" diablo 10 pitch . if (\n(.H=4u)&(1m=20u) .ds -- \(*W\h'-12u'\(*W\h'-8u'-\" diablo 12 pitch . ds L" "" . ds R" "" . ds C` "" . ds C' "" 'br\} .el\{\ . ds -- \|\(em\| . ds PI \(*p . ds L" `` . ds R" '' . ds C` . ds C' 'br\} .\" .\" Escape single quotes in literal strings from groff's Unicode transform. .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" .\" If the F register is >0, we'll generate index entries on stderr for .\" titles (.TH), headers (.SH), subsections (.SS), items (.Ip), and index .\" entries marked with X<> in POD. Of course, you'll have to process the .\" output yourself in some meaningful fashion. .\" .\" Avoid warning from groff about undefined register 'F'. .de IX .. .nr rF 0 .if \n(.g .if rF .nr rF 1 .if (\n(rF:(\n(.g==0)) \{\ . if \nF \{\ . de IX . tm Index:\\$1\t\\n%\t"\\$2" .. . if !\nF==2 \{\ . nr % 0 . nr F 2 . \} . \} .\} .rr rF .\" ======================================================================== .\" .IX Title "Mail::MtPolicyd::Plugin::Greylist 3pm" .TH Mail::MtPolicyd::Plugin::Greylist 3pm "2022-10-15" "perl v5.34.0" "User Contributed Perl Documentation" .\" For nroff, turn off justification. Always turn off hyphenation; it makes .\" way too many mistakes in technical documents. .if n .ad l .nh .SH "NAME" Mail::MtPolicyd::Plugin::Greylist \- This plugin implements a greylisting mechanism with an auto whitelist. .SH "VERSION" .IX Header "VERSION" version 2.05 .SH "DESCRIPTION" .IX Header "DESCRIPTION" This plugin implements a greylisting mechanism with an auto whitelist. .PP If a client connects it will return an defer and create a greylisting \*(L"ticket\*(R" for the combination of the address of the sender, the senders address and the recipient address. The ticket will be stored in memcached and will contain the time when the client was seen for the first time. The ticket will expire after the max_retry_wait timeout. .PP The client will be deferred until the min_retry_wait timeout has been reached. Only in the time between the min_retry_wait and max_retry_wait the request will pass the greylisting test. .PP When the auto-whitelist is enabled (default) a record for every client which passes the greylisting test will be stored in the autowl_table. The table is based on the combination of the sender domain and client_address. If a client passed the test at least autowl_threshold (default 3) times the greylisting test will be skipped. Additional an last_seen time stamp is stored in the record and records which are older then the autowl_expire_days will expire. .PP Please note the greylisting is done on a triplet based on the .PP .Vb 1 \& client_address + sender + recipient .Ve .PP The auto-white list is based on the .PP .Vb 1 \& client_address + sender_domain .Ve .SH "PARAMETERS" .IX Header "PARAMETERS" .IP "(uc_)enabled (default: on)" 4 .IX Item "(uc_)enabled (default: on)" Enable/disable this check. .IP "score (default: empty)" 4 .IX Item "score (default: empty)" Apply an score to this message if it _passed_ the greylisting test. In most cases you want to assign a negative score. (eg. \-10) .IP "mode (default: passive)" 4 .IX Item "mode (default: passive)" The default is to return no action if the client passed the greylisting test and continue. .Sp You can set this 'accept' or 'dunno' if you want skip further checks. .IP "defer_message (default: defer greylisting is active)" 4 .IX Item "defer_message (default: defer greylisting is active)" This action is returned to the \s-1MTA\s0 if a message is deferred. .Sp If a client retries too fast the time left till min_retry_wait is reach will be appended to the string. .IP "min_retry_wait (default: 300 (5m))" 4 .IX Item "min_retry_wait (default: 300 (5m))" A client will have to wait at least for this timeout. (in seconds) .IP "max_retry_wait (default: 7200 (2h))" 4 .IX Item "max_retry_wait (default: 7200 (2h))" A client must retry to deliver the message before this timeout. (in seconds) .IP "use_autowl (default: 1)" 4 .IX Item "use_autowl (default: 1)" Could be used to disable the use of the auto-whitelist. .IP "autowl_threshold (default: 3)" 4 .IX Item "autowl_threshold (default: 3)" How often a client/sender_domain pair must pass the check before it is whitelisted. .IP "autowl_expire_days (default: 60)" 4 .IX Item "autowl_expire_days (default: 60)" After how many days an auto-whitelist entry will expire if no client with this client/sender pair is seen. .IP "autowl_table (default: autowl)" 4 .IX Item "autowl_table (default: autowl)" The name of the table to use. .Sp The database handle specified in the global configuration will be used. (see man mtpolicyd) .IP "query_autowl, create_ticket (default: 1)" 4 .IX Item "query_autowl, create_ticket (default: 1)" This options could be used to disable the creation of a new ticket or to query the autowl. .Sp This can be used to catch early retries at the begin of your configuration before more expensive checks are processed. .Sp Example: .Sp .Vb 10 \& \& module = "Greylist" \& score = \-5 \& mode = "passive" \& create_ticket = 0 \& query_autowl = 0 \& \& # ... a lot of RBL checks, etc... \& \& module = "ScoreAction" \& threshold = 5 \& \& module = "Greylist" \& score = \-5 \& mode = "passive" \& \& .Ve .Sp This will prevent early retries from running thru all checks. .SH "AUTHOR" .IX Header "AUTHOR" Markus Benning .SH "COPYRIGHT AND LICENSE" .IX Header "COPYRIGHT AND LICENSE" This software is Copyright (c) 2014 by Markus Benning . .PP This is free software, licensed under: .PP .Vb 1 \& The GNU General Public License, Version 2, June 1991 .Ve