~semi-hallikas/sspamm/3.0-devel

« back to all changes in this revision

Viewing changes to sspamm.conf

  • Committer: Sami-Pekka Hallikas
  • Date: 2010-10-11 08:44:18 UTC
  • Revision ID: semi@hallikas.com-20101011084418-o41gdwfhmbc3p1om
This version has quite major updates. It has all required functions (oneliner, basic fileoperations, is_listed, etc.).
Configuration stuff is added.
Also first Thread has been added (configuration reload)

This is first version that one can relly use for testing. All 'tests' are disabled for now, they would be added to next commit.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
###
 
2
### Configuration file for Semi's Spam Milter
 
3
###
 
4
### When filter starts configuration file (sspamm.conf) would be searched
 
5
### from paths in this order: Current directory, /etc/sspamm and /etc
 
6
###
 
7
[main]
 
8
# Name of our filter, must be same as defined in sendmail
 
9
name:           sspamm
 
10
#
 
11
# In /etc/mail/sendmail.mc you should define same port, here is also
 
12
# information about flags used in 'INPUT_MAIL_FILTER' macro:
 
13
#
 
14
# /********************* This stuff goes to sendmail.mc ********************
 
15
#
 
16
#dnl # F=
 
17
#dnl # (If a filter is unavailable or unresponsive and no 'F'lags have been
 
18
#dnl #  specified, the MTA will continue normal handling of the current
 
19
#dnl #  connection. The MTA will try to contact the filter again on each
 
20
#dnl #  new connection.)
 
21
#dnl # T - TempFail
 
22
#dnl # R - Reject
 
23
#dnl # T=
 
24
#dnl # C - Connection
 
25
#dnl # S - Sending Data
 
26
#dnl # R - Reading Data
 
27
#dnl # E - Overall timeout between sending end-of-message to filter and waiting for the final acknowledgment.
 
28
#
 
29
#define(`MILTER', 1)
 
30
#define(`confMILTER_MACROS_CONNECT',`t, b, j, _, {daemon_name}, {if_name}, {if_addr}')dnl
 
31
#define(`confMILTER_MACROS_HELO',`s, {tls_version}, {cipher}, {cipher_bits}, {cert_subject}, {cert_issuer}')dnl
 
32
#define(`confMILTER_MACROS_ENVFROM',`i, {auth_type}, {auth_authen}, {auth_ssf}, {auth_author}, {mail_mailer}, {mail_host}, {mail_addr}')dnl
 
33
#define(`confMILTER_MACROS_ENVRCPT',`{rcpt_mailer}, {rcpt_host}, {rcpt_addr}')dnl
 
34
#
 
35
#INPUT_MAIL_FILTER(`sspamm', `S=inet:7999@localhost, F=T, T=C:10m;E:10m;R:10m;S:5m')dnl
 
36
#
 
37
# ********************* This stuff goes to sendmail.mc ********************/
 
38
#
 
39
# Define port/socket that filter would listen.
 
40
port:           inet:7999
 
41
#port:          local:/tmp/sspamm.sock
 
42
 
 
43
###
 
44
### Files and Paths
 
45
###
 
46
#
 
47
# If sspamdir path is not defined, files would be used/saved/created in same
 
48
# that that configuration file is in.
 
49
sspammdir:      .
 
50
tmpdir:         /dev/shm
 
51
pid:            sspamm.pid
 
52
logfile:        sspamm.log
 
53
 
 
54
##
 
55
## On/Off parameters can be used with values: False, No, 0 or True, Yes, 1
 
56
##
 
57
 
 
58
#### timeme and syslog is going to be removed?
 
59
#
 
60
# Define debugfile if you want debug logging into file
 
61
debugfile:      debug.log
 
62
 
 
63
# Path to create mail 'var' files (for debug purpouses)
 
64
savedir:        saved
 
65
 
 
66
# Save information about time spend in different steps while filtering
 
67
# Times are shown on saved .var file, or on debug log with higher verbose
 
68
# level.
 
69
timeme:         Yes
 
70
 
 
71
# Verbose can also be numerical for more verbose output. Verbose levels are:
 
72
#       0 - No debug logging at all
 
73
#       ...
 
74
#       3 - Full debug information
 
75
verbose:        2
 
76
 
 
77
# Make detailed rejections
 
78
#detailed:      True
 
79
 
 
80
#
 
81
#
 
82
# ***** NOTICE, YOU SHOULD DISABLE THIS AFTER YOU HAVE CONFIGURED FILTER *****
 
83
#
 
84
#
 
85
# If WatchMode is True, all mails are passed without modifying anything, only
 
86
# logging would take place
 
87
#
 
88
watchmode:      Yes
 
89
 
 
90
##############################################################################
 
91
[filter]
 
92
#
 
93
# We define default tests here. Possible values are:
 
94
# connect       Our white-/blacklisting
 
95
# helo          Imitates to be us
 
96
# ipfromto      Sender/Recipient matching
 
97
# rbl           Blacklisting
 
98
# dyndns        Dynamic DNS-name
 
99
# bayesian      Bayesian SPAM/HAM probability
 
100
# wordscan      Scan message body for strings
 
101
# vscan         Virus scanning with BDC ... (DISABLED!)
 
102
#
 
103
tests:          connect, helo, accept, block, ipfromto, samefromto, headers, dyndns, wordscan, bayesian, rbl, charset
 
104
#
 
105
# Note! If bayesian is before RBL/DynDNS mail with 'HAM' class is passed as
 
106
# 'UNSURE' if RBL/DynDNS matches... If Bayesian is after them, test rules
 
107
# are used.
 
108
#
 
109
# We only filter for these domains. It is possible to define different rules for domains.
 
110
# You can define scans to use with domain match (below, only those 3 tests are done):
 
111
#       foobar.com, ourdomain.org:      connect, helo
 
112
# ... append 'non default' test for domain:
 
113
#       tests: connect, helo, ipfromto
 
114
#       domains:
 
115
#               ourdomain.org:  +rbl
 
116
#               .*
 
117
# Or opt-out scans from default tests:
 
118
#       other.com:                      !bayesian
 
119
#
 
120
# Domains can be defined here in (real) regexp
 
121
domains:
 
122
                somedomain1.(net|fi|se|as|ch|be|gr): ipfromto
 
123
                test.com
 
124
                (guest1|guest2|guest3).com
 
125
                (fi.|se.)?(customer|alias).com: !charset
 
126
                foobar.net|foo.net|foo.com|thisisfoo.org
 
127
                domain2.(com|net|fi|se|dk): accept, samefromto, connect, helo, block, ipfromto, dyndns, headers, wordscan, bayesian, rbl, charset
 
128
                ourdomain.org, someother.net, anyone.com
 
129
                domain.org: !bayesian
 
130
                blocked.com: block
 
131
# Note: .* below means ANY ADDRESS
 
132
                .*
 
133
 
 
134
#
 
135
# It is possible to define few special things on domains. These are made in
 
136
# filter/rules section. It is possible to group multiple domains to single
 
137
# name, so there are not multiple 'domaindb' files for same (real) domain
 
138
# with multiple domain names. Rules section does not affect what domains are
 
139
# filtered.
 
140
#       crescom.*|on(-)?demand\..*: name=crescom
 
141
#
 
142
# Other rules available:
 
143
#       (!)watch        You can (un)set 'debugmode' for individual domain
 
144
#       flagall         Flag EVERY action, all mails are passed but flagged.
 
145
#
 
146
# Test based parameters that can be used here:
 
147
#       Bayesian:       ratio=[value], msgsneeded=[value], (!)usedomaindb, (!)dbtrain, (!)savembox
 
148
#
 
149
rules:
 
150
#               testdomain.org: flagall
 
151
# ALWAYS filter this domain, even in watch mode!
 
152
#               ^somedomain1\.: name=somedomain1, !watch
 
153
#               ^(guest1|guest2)\.: name=guest, msgsneeded=4000, ratio=500:500
 
154
#               (domain2|another).com: msgsneeded=100
 
155
#               (\.)?foobar\.: name=foobar
 
156
#               ^ourdomain.*: name=our
 
157
 
 
158
 
 
159
[connect]
 
160
action:         Flag
 
161
# Outgoing mail is always ACCEPTED without logging
 
162
ignore_ip:      127.0.0.1|192.168.|10.|42.42.4[1-2].
 
163
 
 
164
[helo]
 
165
action:         Flag
 
166
 
 
167
[accept]
 
168
rules:
 
169
                (email-\d\d\d|outbound\d.den|mx\d.\w\w\w).paypal.com:(payment@|paypal@email.|service@intl.)paypal.com:
 
170
                .tfbnw.net:notification[\d\w._-]+@facebookmail.com:
 
171
                mx(smf)?pool\d\d.ebay.com:(checkout|status|member|ebay|[\d\w._-]+)@.*ebay\.\w\w(\w)?:
 
172
                (smfcamppool\d\d.emailebay.com|emasmail\d.emarsys.net):ebay.*(@reply\d\.ebay\.com|@ebay\.emarsys\.net):
 
173
                (wcmx\d)?.valvesoftware.com:.*@valvesoftware.com:
 
174
                ticketmaster.com:.*ticketmaster.com:
 
175
                (itmsout)?.apple.com:([\d\w._-]+@insideapple.|do_not_reply@)apple.com:
 
176
 
 
177
[block]
 
178
rules:
 
179
# Matches as sender AND recipient
 
180
                firstname.(last|sure)name@|etunimi.sukunimi@
 
181
# Matches as recipient
 
182
                spamtrap@somewhere.net$
 
183
                (unknown.user|another.one).*@somedomain.org$
 
184
# Not real mail domain
 
185
                @mail-disabled.com$
 
186
 
 
187
[samefromto]
 
188
action:         Flag