Qmail-control-files

From QmailWiki

I've found that some patches use control files and these aren't well documented. This page is for a central place with the control files meanings.


Table of contents

control/badhelo

In general this is meant for checking against the envelope greeting (HELO/EHLO) argument.

qregex (http://www.arda.homeunix.net/store/qmail/) in particular, threats the contents of this control file as regular expressions (one per line). It then attempts a case insensitive matching against the HELO or EHLO string. If a match is made then a 553 permanent error will be issued to the client. Negation is also supported via use of the '!' operator.

Examples:

# Reject spambots using our mailserver's 11.22.33.44 IP as HELO/EHLO
^11\.22\.33\.44$
# Reject spambots using our mailserver's a.mx.ourdomian.tld name as HELO/EHLO
^a\.mx\.ourdomian\.tld$

control/badmailfrom

In general this is meant for checking against the envelope sender string (MAIL) argument.

qregex (http://www.arda.homeunix.net/store/qmail/) in particular, threats the contents of this control file as regular expressions (one per line). It then attempts a case insensitive matching against the envelope sender string, provided it is non-empty (ie bounces are never rejected). If a match is made then a 553 permanent error will be issued to the client at the RCPT stage. Negation is also supported via use of the '!' operator.

Examples:

# Reject senders with @spammer.com addresses
@spammer\.com$

control/badmailfromnorelay

In general this is meant for checking against the envelope sender string (MAIL) argument when the RELAYCLIENT environment variable is not set.

qregex (http://www.arda.homeunix.net/store/qmail/) in particular, uses it in the same manner as control/badmailfrom when the RELAYCLIENT environment variable is not set.

Examples:

# Reject senders without '@'
!@
# Reject senders spoofing @ourdomain.tld local adresses
@ourdomain\.tld$

control/badmailto

In general this is meant for checking against the envelope recipient string (RCPT) arguments.

qregex (http://www.arda.homeunix.net/store/qmail/) in particular, threats the contents of this control file as regular expressions (one per line). It then attempts a case insensitive matching against each envelope recipient string. If a match is made then a 553 permanent error will be issued to the client. Negation is also supported via use of the '!' operator.

Examples:

# Don't accept messages for addresses containing more than one '@'
@.+@

control/badmailtonorelay

In general this is meant for checking against the envelope recipient string (RCPT) arguments when the RELAYCLIENT environment variable is not set.

qregex (http://www.arda.homeunix.net/store/qmail/) in particular, uses it in the same manner as control/badmailto, when the RELAYCLIENT environment variable is not set.

Examples:

# Don't accept messages for addresses containing ' ', '!', '%', '#' etc
[ !%#:*^(){}]
# Don't allow outsiders to send messages to our staff@ourdomain.tld list
^staff@ourdomain\.tld$

control/bouncefrom


control/bouncehost


control/clientca.pem


control/clientcert.pem


control/clientcrl.pem


control/concurrencylocal


control/concurrencyremote


control/databytes

control/databytes


control/defaultdomain


control/defaulthost


control/dh1024.pem


control/dh512.pem


control/doublebouncehost


control/doublebounceto


control/envnoathost


control/helohost


control/idhost


control/localiphost


control/locals


control/me


control/morercpthosts


control/percenthack


control/plusdomain


control/qmqpservers


control/queuelifetime


control/rcpthosts


control/rsa512.pem


control/servercert.pem


control/smtpgreeting


control/smtproutes


control/spamt

man file (http://spamthrottle.qmail.ca/man/qmail-spamt.5.html)

example: 192.168.0.0/24:private:2000:120000:::::: 192.168.1.0/24:/24:2000:120000:::::: .

note that the file must end with a single dot!

each line format is: ipblock:dir:st:stmax:flush:rcpt:tg:tg_resp:

  • ipblock:
  • dir: directory where to store the stats, if two ip have the same dir, they will be thrated as a single user. use /## for making dirs based on the mask

control/spfbehavior


control/spfexp


control/spfguess


control/spfrules


control/timeoutconnect


control/timeoutremote


control/timeoutsmtpd


control/tlsclientciphers


control/tlsclients


control/tlshosts/


control/tlsserverciphers


control/virtualdomains