blob: 09bc9e205e87ae47c83ecd6b652b213e85c24a05 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
|
*** Settings ***
Suite Setup Multimap Setup
Suite Teardown Multimap Teardown
Library ${TESTDIR}/lib/rspamd.py
Resource ${TESTDIR}/lib/rspamd.robot
Variables ${TESTDIR}/lib/vars.py
*** Variables ***
${CONFIG} ${TESTDIR}/configs/plugins.conf
${MESSAGE} ${TESTDIR}/messages/spam_message.eml
${UTF_MESSAGE} ${TESTDIR}/messages/utf.eml
${REDIS_SCOPE} Suite
${RSPAMD_SCOPE} Suite
${RCVD1} ${TESTDIR}/messages/received1.eml
${RCVD2} ${TESTDIR}/messages/received2.eml
${RCVD3} ${TESTDIR}/messages/received3.eml
${RCVD4} ${TESTDIR}/messages/received4.eml
${URL1} ${TESTDIR}/messages/url1.eml
${URL2} ${TESTDIR}/messages/url2.eml
${URL3} ${TESTDIR}/messages/url3.eml
${URL4} ${TESTDIR}/messages/url4.eml
${URL5} ${TESTDIR}/messages/url5.eml
${URL_TLD} ${TESTDIR}/../lua/unit/test_tld.dat
${FREEMAIL_CC} ${TESTDIR}/messages/freemailcc.eml
${URL_ICS} ${TESTDIR}/messages/ics.eml
*** Test Cases ***
URL_ICS
Scan File ${URL_ICS}
Expect URL test.com
MAP - DNSBL HIT
Scan File ${MESSAGE} IP=127.0.0.2
Expect Symbol DNSBL_MAP
MAP - DNSBL MISS
Scan File ${MESSAGE} IP=127.0.0.1
Do Not Expect Symbol DNSBL_MAP
MAP - IP HIT
Scan File ${MESSAGE} IP=127.0.0.1
Expect Symbol IP_MAP
MAP - IP MISS
Scan File ${MESSAGE} IP=127.0.0.2
Do Not Expect Symbol IP_MAP
MAP - IP MASK
Scan File ${MESSAGE} IP=10.1.0.10
Expect Symbol IP_MAP
MAP - IP MASK MISS
Scan File ${MESSAGE} IP=11.1.0.10
Do Not Expect Symbol IP_MAP
MAP - IP V6
Scan File ${MESSAGE} IP=::1
Expect Symbol IP_MAP
MAP - IP V6 MISS
Scan File ${MESSAGE} IP=fe80::1
Do Not Expect Symbol IP_MAP
MAP - FROM
Scan File ${MESSAGE} From=user@example.com
Expect Symbol FROM_MAP
MAP - COMBINED IP MASK FROM
Scan File ${MESSAGE} IP=10.1.0.10 From=user@example.com
Expect Symbol COMBINED_MAP_AND
Expect Symbol COMBINED_MAP_OR
MAP - COMBINED IP MASK ONLY
Scan File ${MESSAGE} IP=10.1.0.10
Do Not Expect Symbol COMBINED_MAP_AND
Expect Symbol COMBINED_MAP_OR
MAP - COMBINED FROM ONLY
Scan File ${MESSAGE} From=user@example.com
Do Not Expect Symbol COMBINED_MAP_AND
Expect Symbol COMBINED_MAP_OR
MAP - COMBINED MISS
Scan File ${MESSAGE} IP=11.1.0.10 From=user@other.com
Do Not Expect Symbol COMBINED_MAP_AND
Do Not Expect Symbol COMBINED_MAP_OR
MAP - FROM MISS
Scan File ${MESSAGE} From=user@other.com
Do Not Expect Symbol FROM_MAP
MAP - FROM REGEXP
Scan File ${MESSAGE} From=user123@test.com
Expect Symbol REGEXP_MAP
Scan File ${MESSAGE} From=somebody@example.com
Expect Symbol REGEXP_MAP
MAP - FROM REGEXP MISS
Scan File ${MESSAGE} From=user@other.org
Do Not Expect Symbol REGEXP_MAP
MAP - RCPT DOMAIN HIT
Scan File ${MESSAGE} Rcpt=user@example.com
Expect Symbol RCPT_DOMAIN
MAP - RCPT DOMAIN MISS
Scan File ${MESSAGE} Rcpt=example.com@user
Do Not Expect Symbol RCPT_DOMAIN
MAP - RCPT USER HIT
Scan File ${MESSAGE} Rcpt=bob@example.com
Expect Symbol RCPT_USER
MAP - RCPT USER MISS
Scan File ${MESSAGE} From=example.com@bob
Do Not Expect Symbol RCPT_USER
MAP - DEPENDS HIT
Scan File ${MESSAGE} IP=88.99.142.95 From=user123@rspamd.com
Expect Symbol DEPS_MAP
MAP - DEPENDS MISS
Scan File ${MESSAGE} IP=1.2.3.4 From=user123@rspamd.com
Do Not Expect Symbol DEPS_MAP
MAP - MULSYM PLAIN
Scan File ${MESSAGE} Rcpt=user1@example.com
Expect Symbol RCPT_MAP
MAP - MULSYM SCORE
Scan File ${MESSAGE} Rcpt=user2@example.com
Expect Symbol With Score RCPT_MAP 10.0
MAP - MULSYM SYMBOL
Scan File ${MESSAGE} Rcpt=user3@example.com
Expect Symbol With Score SYM1 1.0
MAP - MULSYM SYMBOL MISS
Scan File ${MESSAGE} Rcpt=user4@example.com
Expect Symbol With Score RCPT_MAP 1.0
MAP - MULSYM SYMBOL + SCORE
Scan File ${MESSAGE} Rcpt=user5@example.com
Expect Symbol With Score SYM1 -10.1
MAP - UTF
Scan File ${UTF_MESSAGE}
Expect Symbol HEADER_MAP
MAP - UTF MISS
Scan File ${MESSAGE}
Do Not Expect Symbol HEADER_MAP
MAP - HOSTNAME
Scan File ${MESSAGE} IP=127.0.0.1 Hostname=example.com
Expect Symbol HOSTNAME_MAP
MAP - HOSTNAME MISS
Scan File ${MESSAGE} IP=127.0.0.1 Hostname=rspamd.com
Do Not Expect Symbol HOSTNAME_MAP
MAP - TOP
Scan File ${MESSAGE} IP=127.0.0.1 Hostname=example.com.au
Expect Symbol HOSTNAME_TOP_MAP
MAP - TOP MISS
Scan File ${MESSAGE} IP=127.0.0.1 Hostname=example.com.bg
Do Not Expect Symbol HOSTNAME_TOP_MAP
MAP - CDB - HOSTNAME
Scan File ${MESSAGE} IP=127.0.0.1 Hostname=example.com
Expect Symbol CDB_HOSTNAME
MAP - CDB - HOSTNAME MISS
Scan File ${MESSAGE} IP=127.0.0.1 Hostname=rspamd.com
Do Not Expect Symbol CDB_HOSTNAME
MAP - REDIS - HOSTNAME
Redis HSET hostname redistest.example.net ${EMPTY}
Scan File ${MESSAGE} IP=127.0.0.1 Hostname=redistest.example.net
Expect Symbol REDIS_HOSTNAME
MAP - REDIS - HOSTNAME MISS
Scan File ${MESSAGE} IP=127.0.0.1 Hostname=rspamd.com
Do Not Expect Symbol REDIS_HOSTNAME
MAP - REDIS - HOSTNAME - EXPANSION - HIT
Redis HSET 127.0.0.1.foo.com redistest.example.net ${EMPTY}
Scan File ${MESSAGE} IP=127.0.0.1 Hostname=redistest.example.net Rcpt=bob@foo.com
Expect Symbol REDIS_HOSTNAME_EXPANSION
MAP - REDIS - HOSTNAME - EXPANSION - MISS
Scan File ${MESSAGE} IP=127.0.0.1 Hostname=redistest.example.net Rcpt=bob@bar.com
Do Not Expect Symbol REDIS_HOSTNAME_EXPANSION
MAP - REDIS - IP
Redis HSET ipaddr 127.0.0.1 ${EMPTY}
Scan File ${MESSAGE} IP=127.0.0.1
Expect Symbol REDIS_IPADDR
MAP - REDIS - IP - MISS
Scan File ${MESSAGE} IP=8.8.8.8
Do Not Expect Symbol REDIS_IPADDR
MAP - REDIS - FROM
Redis HSET emailaddr from@rspamd.tk ${EMPTY}
Scan File ${MESSAGE} From=from@rspamd.tk
Expect Symbol REDIS_FROMADDR
MAP - REDIS - FROM MISS
Scan File ${MESSAGE} From=user@other.com
Do Not Expect Symbol REDIS_FROMADDR
MAP - REDIS - URL TLD - HIT
Redis HSET hostname example.com ${EMPTY}
Scan File ${URL1}
Expect Symbol REDIS_URL_TLD
MAP - REDIS - URL TLD - MISS
Scan File ${URL2}
Do Not Expect Symbol REDIS_URL_TLD
MAP - REDIS - URL RE FULL - HIT
Redis HSET fullurlre html ${EMPTY}
Scan File ${URL2}
Expect Symbol REDIS_URL_RE_FULL
MAP - REDIS - URL RE FULL - MISS
Scan File ${URL1}
Do Not Expect Symbol REDIS_URL_RE_FULL
MAP - REDIS - URL FULL - HIT
Redis HSET fullurl https://www.example.com/foo?a=b ${EMPTY}
Scan File ${URL1}
Expect Symbol REDIS_URL_FULL
MAP - REDIS - URL FULL - MISS
Scan File ${URL2}
Do Not Expect Symbol REDIS_URL_FULL
MAP - REDIS - URL PHISHED - HIT
Redis HSET phishedurl www.rspamd.com ${EMPTY}
Scan File ${URL3}
Expect Symbol REDIS_URL_PHISHED
MAP - REDIS - URL PHISHED - MISS
Scan File ${URL4}
Do Not Expect Symbol REDIS_URL_PHISHED
MAP - REDIS - URL PLAIN REGEX - HIT
Redis HSET urlre www ${EMPTY}
Scan File ${URL3}
Expect Symbol REDIS_URL_RE_PLAIN
MAP - REDIS - URL PLAIN REGEX - MISS
Scan File ${URL4}
Do Not Expect Symbol REDIS_URL_RE_PLAIN
MAP - REDIS - URL TLD REGEX - HIT
Redis HSET tldre net ${EMPTY}
Scan File ${URL5}
Expect Symbol REDIS_URL_RE_TLD
MAP - REDIS - URL TLD REGEX - MISS
Scan File ${URL4}
Do Not Expect Symbol REDIS_URL_RE_TLD
MAP - REDIS - URL NOFILTER - HIT
Redis HSET urlnofilter www.example.net ${EMPTY}
Scan File ${URL5}
Expect Symbol REDIS_URL_NOFILTER
MAP - REDIS - URL NOFILTER - MISS
Scan File ${URL4}
Do Not Expect Symbol REDIS_URL_NOFILTER
MAP - REDIS - ASN - HIT
Redis HSET asn 15169 ${EMPTY}
Scan File ${MESSAGE} IP=8.8.8.8
Expect Symbol REDIS_ASN
MAP - REDIS - ASN - MISS
Scan File ${MESSAGE} IP=46.228.47.114
Do Not Expect Symbol REDIS_ASN
MAP - REDIS - CC - HIT
Redis HSET cc US ${EMPTY}
Scan File ${MESSAGE} IP=8.8.8.8
Expect Symbol REDIS_COUNTRY
MAP - REDIS - CC - MISS
Scan File ${MESSAGE} IP=46.228.47.114
Do Not Expect Symbol REDIS_COUNTRY
MAP - REDIS - ASN FILTERED - HIT
Redis HSET asn 1 ${EMPTY}
Scan File ${MESSAGE} IP=8.8.8.8
Expect Symbol REDIS_ASN_FILTERED
MAP - REDIS - ASN FILTERED - MISS
Scan File ${MESSAGE} IP=46.228.47.114
Do Not Expect Symbol REDIS_ASN_FILTERED
MAP - RECEIVED - IP MINMAX POS - ONE
Scan File ${RCVD1}
Expect Symbol RCVD_TEST_01
Do Not Expect Symbol RCVD_TEST_02
# Relies on parsing of shitty received
#MAP - RECEIVED - IP MINMAX POS - TWO / RCVD_AUTHED_ONE HIT
# Scan File ${RCVD2}
# Expect Symbol RCVD_TEST_02
# Do Not Expect Symbol RCVD_TEST_01
# Expect Symbol RCVD_AUTHED_ONE
MAP - RECEIVED - REDIS
Redis HSET RCVD_TEST 2a01:7c8:aab6:26d:5054:ff:fed1:1da2 ${EMPTY}
Scan File ${RCVD1}
Expect Symbol RCVD_TEST_REDIS_01
RCVD_AUTHED_ONE & RCVD_AUTHED_TWO - MISS
Scan File ${RCVD3}
Do Not Expect Symbol RCVD_AUTHED_ONE
Do Not Expect Symbol RCVD_AUTHED_TWO
RCVD_AUTHED_TWO HIT / RCVD_AUTHED_ONE MISS
Scan File ${RCVD4}
Expect Symbol RCVD_AUTHED_TWO
Do Not Expect Symbol RCVD_AUTHED_ONE
FREEMAIL_CC
Scan File ${FREEMAIL_CC}
Expect Symbol With Score And Exact Options FREEMAIL_CC 19.00 test.com test1.com test2.com test3.com test4.com test5.com test6.com test7.com test8.com test9.com test10.com test11.com test12.com test13.com test14.com
*** Keywords ***
Multimap Setup
${PLUGIN_CONFIG} = Get File ${TESTDIR}/configs/multimap.conf
Set Suite Variable ${PLUGIN_CONFIG}
Generic Setup PLUGIN_CONFIG
Run Redis
Multimap Teardown
Normal Teardown
Shutdown Process With Children ${REDIS_PID}
|