postfix_bayes(8) Expaminator postfix_bayes(8) NAME postfix_bayes SYNOPSIS postfix_bayes [-D level] [-h] [-v] [-c config-file] DESCRIPTION A Bayesean spamfilter for postfix postfix_bayes is a postfix-friendly spam filter which nor mally runs as a daemon. It, in effect, "sits between" two postfix processes, acting as a server to the upstream pro cess, and as a client to the downstream process. Command-line options: -D Set the Debug level; 'level' should be a positive inte ger 0..50. Higher values for debug-level cause more internal variables to be dumped to stdout. This is not associated with the error-logging level, ´debug´; '-D' should not be used during normal mail processing. -X Don't daemonise; useful only for debugging. -h Help; print the command-line options and exit. -v Version; print the version number and exit. -c specify a Configuration file. If '-c config-file' is omitted, the environment variable 'SPAMCONFIG' is used. CONFIGURATION postfix_bayes' configuration file is composed of simple keyword-value pairs, one pair per line. Keywords are not case-sensitive; keyword and value are separated by one or more spaces or tabs. A comment symbol, '#' anywhere on a line causes all following text to be ignored. post fix_bayes will stop scanning for a keyword at the first occurence in the file. This configuration file is shared by the database mainte nance and testing utilities. approval_message <headername> Optional; default is 'X-judged-non-spam' When a message has been judged legitimate, a header is added to it containing an indication that it has been passed through the filter. The host name, which may be overridden by 'force_hostname', is appended automatically. condemnation_message <message text> Optional; default is 'Message has been comdemned as SPAM' When a message has been judged to be spam, the filter return a status code of 556 to the upstream process, and appends this message. downstream <host>:<port> Required. The host and portnumber of the 'downstream' server. If a message is judged to acceptable, it is passed on to another (probably postfix) process. 'downstream' specifies the host and port number of that process, in the form 'host:portnumber'. 'host' may be a hostname, 'localhost', or an IP address. 'port' must be a numeric port number. force_hostname <hostname> Optional; defaults to the host's fully qualified domain name. ´force_hostname´ substitutes the specified string for the hostname in any headers the filter adds to the message. (Currently, only one header is added, an ´accep tance´ header, if the message is judged not to be spam.) force_domainname <domain-name> Optional; defaults to the host's DNS domain name. When a ´rcpt to:´ command is received, and a user-hash exists, the filter will append the hosts domain to user names which are not fully qualified before looking up the name in the user-hash. ´force_domainname´ will cause the specified string to be appended, instead. guess <number> Optional; defaults to 0.4 This supplies a probability to any word found in a message which cannot be found in the probability hash. Valid val ues are in the range 0 .. 1.0 logfile <pathname> Required. Normally, will be the same logfile used by post fix. loglevel <name> Optional; defaults to "INFO". Valid values are, in order of decreasing severity, "EMERG", "ALERT", "CRIT", "ERROR", "WARNING", "NOTICE", "INFO", and "DEBUG". number_to_consider <integer> Optional; defaults to 100 When all words in a message have been assigned a proba bilty, the probabilities are sorted according to the abso lute value of their difference from 0.5; ´number_to_con sider´ is the number of the highest-ranking probabilities to use in the calculation of "spam probability". Low values for number_to_consider may result in unreliable judgements; high values impose a slightly higher cpu load. postfix_listen <portnumber> Required. The internet-domain port to listen on for con nections from an upstream postfix process. probabilityhash <filename> Required. This is the name of the probability hash (or more usually, the symbolic link to it) produced by ´make_new_database´. Only a simple filename is required; the directory is supplied by ´spamdatadir´. spamdatadir <directory> Required. The directory containing the probability hash and the optional username hash. spamlimit <number> Optional; defaults to 0.999 The value which the estimated spam probability must exceed before being condemned and rejected as spam. Valid values are in the range 0 .. 1.0 user <username | userid> Optional; defaults to the userid of the process running the filter. If found, the filter will setuid to this user before entering the milter library code. May be a username or user ID. username_db <filename> Optional; the user ´opt-in´ database; no default. If no username hash is specified, the filter will be used on all messages, regardless of recipient. If one is specified, filtering will be done only for mes sages destined for names found in the hash. Only a simple filename must be specified; the directory is specified by ´spamdatadir´. as the probability hash, POSTFIX CONFIGURATION The matching postfix configuration is done in two files: master.cf and main.cf. Assuming that everything is on one host, that our filter listens on port 10025, and connects to the downstream postfix process on port 10026, then: In main.cf, there sould be a line like: content_filter = smtp:localhost:10025 and in master.cf, an entry like: localhost:10026 inet n - n - 10 smtpd -o content_filter= -o local_recipient_maps= -o myhostname= ENVIRONMENT $SPAMCONFIG can be used to supply the full pathname of the configuration file. (The ´-c config-file´ option will override $SPAMCONFIG) FILES Required: a configuration file and a probability hash Optional(but recommended): a username hash COPYRIGHT Copyright (c) 2002, J.B.Ward <bward2@users.sourceforge.net> Expaminator Nov.22,2002 postfix_bayes(8)