You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

merged-override.conf 9.8KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435
  1. antivirus {
  2. clam {
  3. attachments_only = false;
  4. symbol = "CLAM_VIRUS";
  5. type = "clamav";
  6. servers = "127.0.0.1:{= env.PORT_CLAM =}";
  7. }
  8. fprot {
  9. attachments_only = false;
  10. symbol = "FPROT_VIRUS";
  11. type = "fprot";
  12. servers = "127.0.0.1:{= env.PORT_FPROT =}";
  13. patterns {
  14. FPROT_EICAR = "^EICAR_Test_File$";
  15. }
  16. }
  17. fprot_duplicate {
  18. prefix = "fp_dupe";
  19. attachments_only = false;
  20. symbol = "FPROT2_VIRUS_DUPLICATE_DEFAULT";
  21. type = "fprot";
  22. servers = "127.0.0.1:{= env.PORT_FPROT2_DUPLICATE =}";
  23. patterns = [
  24. {FPROT2_VIRUS_DUPLICATE_PATTERN = "^E"},
  25. {FPROT2_VIRUS_DUPLICATE_NOPE1 = "^EI",
  26. FPROT2_VIRUS_DUPLICATE_NOPE2 = "^EIC",
  27. FPROT2_VIRUS_DUPLICATE_NOPE3 = "^EICA",
  28. FPROT2_VIRUS_DUPLICATE_NOPE4 = "^EICAR",
  29. FPROT2_VIRUS_DUPLICATE_NOPE5 = "^EICAR_"}
  30. ];
  31. }
  32. avast {
  33. attachments_only = false;
  34. symbol = "AVAST_VIRUS";
  35. type = "avast";
  36. servers = "127.0.0.1:{= env.PORT_AVAST =}";
  37. }
  38. }
  39. multimap {
  40. DNSBL_MAP {
  41. type = "dnsbl";
  42. map = "rspamd.com";
  43. }
  44. IP_MAP {
  45. type = "ip";
  46. map = "{= env.TESTDIR =}/configs/maps/ip.list";
  47. }
  48. FROM_MAP {
  49. type = "from";
  50. filter = "email:domain";
  51. map = "{= env.TESTDIR =}/configs/maps/domains.list";
  52. }
  53. FREEMAIL_CC {
  54. type = "header";
  55. header = "Cc";
  56. filter = "email:domain";
  57. map = "{= env.TESTDIR =}/configs/maps/domains.list.2";
  58. score = 1.0;
  59. }
  60. REGEXP_MAP {
  61. type = "from";
  62. filter = "email:addr";
  63. regexp = true;
  64. map = "{= env.TESTDIR =}/configs/maps/regexp.list";
  65. }
  66. DEPS_MAP {
  67. type = "from";
  68. filter = "email:addr";
  69. regexp = true;
  70. map = "{= env.TESTDIR =}/configs/maps/regexp.list";
  71. require_symbols = "(R_SPF_ALLOW|R_SPF_DNSFAIL) & REGEXP_MAP & !FROM_MAP";
  72. }
  73. RCPT_DOMAIN {
  74. type = "rcpt";
  75. filter = "email:domain";
  76. map = "{= env.TESTDIR =}/configs/maps/domains.list";
  77. }
  78. RCPT_USER {
  79. type = "rcpt";
  80. filter = "email:user";
  81. map = "{= env.TESTDIR =}/configs/maps/users.list";
  82. }
  83. RCPT_MAP {
  84. type = "rcpt";
  85. filter = "email:addr";
  86. symbols = ["SYM1"];
  87. map = "{= env.TESTDIR =}/configs/maps/multiple.list";
  88. score = 1.0;
  89. }
  90. RCPT_MAP_NOMULTISYM {
  91. type = "rcpt";
  92. filter = "email:addr";
  93. disable_multisymbol = true;
  94. map = "{= env.TESTDIR =}/configs/maps/multiple.list";
  95. score = 1.0;
  96. }
  97. HEADER_MAP {
  98. type = "header";
  99. header = "To";
  100. filter = "email:name";
  101. map = "{= env.TESTDIR =}/configs/maps/utf.list";
  102. regexp = true;
  103. }
  104. HOSTNAME_MAP {
  105. type = "hostname";
  106. map = "{= env.TESTDIR =}/configs/maps/domains.list";
  107. }
  108. HOSTNAME_TOP_MAP {
  109. type = "hostname";
  110. filter = "top";
  111. map = "{= env.TESTDIR =}/configs/maps/top.list";
  112. }
  113. CDB_HOSTNAME {
  114. type = "hostname";
  115. map = "cdb://{= env.TESTDIR =}/configs/maps/domains.cdb";
  116. }
  117. REDIS_HOSTNAME {
  118. type = "hostname";
  119. map = "redis://hostname";
  120. }
  121. REDIS_HOSTNAME_EXPANSION {
  122. type = "hostname";
  123. map = "redis://${ip}.${principal_recipient_domain}";
  124. }
  125. REDIS_IPADDR {
  126. type = "ip";
  127. map = "redis://ipaddr";
  128. }
  129. REDIS_FROMADDR {
  130. type = "from";
  131. filter = "email:addr";
  132. map = "redis://emailaddr";
  133. }
  134. REDIS_URL_TLD {
  135. type = "url";
  136. map = "redis://hostname";
  137. filter = "tld";
  138. }
  139. REDIS_URL_RE_FULL {
  140. type = "url";
  141. map = "redis://fullurlre";
  142. filter = "full:regexp:/(html)$/";
  143. }
  144. REDIS_URL_FULL {
  145. type = "url";
  146. map = "redis://fullurl";
  147. filter = "full";
  148. }
  149. REDIS_URL_PHISHED {
  150. type = "url";
  151. map = "redis://phishedurl";
  152. filter = "is_phished";
  153. }
  154. REDIS_URL_RE_TLD {
  155. type = "url";
  156. map = "redis://tldre";
  157. filter = "tld:regexp:/(net)$/";
  158. }
  159. REDIS_URL_RE_PLAIN {
  160. type = "url";
  161. map = "redis://urlre";
  162. filter = "regexp:/^(www)/";
  163. }
  164. REDIS_URL_NOFILTER {
  165. type = "url";
  166. map = "redis://urlnofilter";
  167. }
  168. REDIS_COUNTRY {
  169. type = "country";
  170. map = "redis://cc";
  171. }
  172. REDIS_ASN {
  173. type = "asn";
  174. map = "redis://asn";
  175. }
  176. REDIS_ASN_FILTERED {
  177. type = "mempool";
  178. variable = "asn";
  179. map = "redis://asn";
  180. filter = "regexp:/^([0-9]).*/";
  181. }
  182. RCVD_TEST_01 {
  183. type = "received";
  184. max_pos = 1;
  185. map = "{= env.TESTDIR =}/configs/maps/rcvd.list";
  186. }
  187. RCVD_TEST_02 {
  188. type = "received";
  189. min_pos = -1;
  190. map = "{= env.TESTDIR =}/configs/maps/rcvd.list";
  191. }
  192. RCVD_TEST_REDIS_01 {
  193. type = "received";
  194. map = "redis://RCVD_TEST";
  195. }
  196. RCVD_AUTHED_ONE {
  197. type = "received";
  198. map = "{= env.TESTDIR =}/configs/maps/rcvd2.list";
  199. flags = ["authenticated"];
  200. nflags = ["ssl"];
  201. }
  202. RCVD_AUTHED_TWO {
  203. type = "received";
  204. map = "{= env.TESTDIR =}/configs/maps/rcvd2.list";
  205. flags = ["authenticated", "ssl"];
  206. }
  207. COMBINED_MAP_AND {
  208. type = "combined";
  209. rules {
  210. ip = {
  211. type = "radix";
  212. map = "{= env.TESTDIR =}/configs/maps/ip.list";
  213. selector = "ip";
  214. }
  215. from {
  216. map = "{= env.TESTDIR =}/configs/maps/domains.list";
  217. selector = "from:domain";
  218. }
  219. }
  220. expression = "from & ip";
  221. score = 10;
  222. action = "no action"
  223. }
  224. COMBINED_MAP_OR {
  225. type = "combined";
  226. rules {
  227. ip = {
  228. type = "radix";
  229. map = "{= env.TESTDIR =}/configs/maps/ip.list";
  230. selector = "ip";
  231. }
  232. from {
  233. map = "{= env.TESTDIR =}/configs/maps/domains.list";
  234. selector = "from:domain";
  235. }
  236. }
  237. expression = "from || ip"
  238. }
  239. EXTERNAL_MULTIMAP {
  240. type = "hostname";
  241. filter = "top";
  242. map = {
  243. external = true;
  244. backend = "http://127.0.0.1:18080/map-query",
  245. method = "query",
  246. }
  247. }
  248. DYN_MULTIMAP {
  249. type = "hostname";
  250. map = "{= env.TESTDIR =}/configs/maps/dynamic_symbols.map";
  251. dynamic_symbols = true;
  252. }
  253. }
  254. rbl {
  255. rbls {
  256. fake {
  257. from = true;
  258. ipv4 = true;
  259. ipv6 = true;
  260. rbl = "fake.rbl";
  261. symbol = "FAKE_RBL_UNKNOWN";
  262. received = true;
  263. symbols_prefixes = {
  264. received = 'FAKE_RECEIVED_RBL',
  265. from = 'FAKE_RBL',
  266. }
  267. unknown = true;
  268. returncodes_matcher = "regexp";
  269. returncodes = {
  270. "CODE_2" = '^127\.0\.0\.2$';
  271. "CODE_3" = '^127\.0\.0\.3$';
  272. }
  273. }
  274. fake_whitelist {
  275. from = true;
  276. ipv4 = true;
  277. ipv6 = true;
  278. received = true;
  279. is_whitelist = true;
  280. rbl = "fake.wl";
  281. symbol = "FAKE_WL_RBL_UNKNOWN";
  282. unknown = true;
  283. #returncodes_matcher = "luapattern";
  284. returncodes = {
  285. "FAKE_WL_RBL_CODE_2" = "127%.0%.0%.2";
  286. "FAKE_WL_RBL_CODE_3" = "127%.0%.0%.3";
  287. }
  288. }
  289. RSPAMD_EMAILBL {
  290. rbl = "test8.uribl";
  291. url_compose_map = "{= env.TESTDIR =}/configs/maps/url_compose_map_for_mails.list";
  292. ignore_defaults = true;
  293. emails = true;
  294. emails_domainonly = true
  295. returncodes_matcher = "radix";
  296. returncodes = {
  297. RSPAMD_EMAILBL = "127.0.0.2/32";
  298. }
  299. }
  300. URIBL_NUMERIC {
  301. checks = ["numeric_urls"];
  302. rbl = "test9.uribl";
  303. }
  304. URIBL_NUMERIC_IMAGES {
  305. checks = ["numeric_urls"];
  306. images = true;
  307. rbl = "test9.uribl";
  308. }
  309. UNKNOWN_URIBL_NUMERIC_CONTENT {
  310. checks = ["numeric_urls"];
  311. content_urls = true;
  312. rbl = "test9.uribl";
  313. returncodes_matcher = "glob";
  314. returncodes = {
  315. URIBL_NUMERIC_CONTENT = "*.*.*.*";
  316. }
  317. }
  318. URIBL_NUMERIC_EVERYTHING {
  319. checks = ["numeric_urls"];
  320. images = true;
  321. content_urls = true;
  322. rbl = "test9.uribl";
  323. exclude_local = false;
  324. }
  325. URIBL_NOCONTENT {
  326. rbl = "test9.uribl";
  327. ignore_defaults = true;
  328. urls = true;
  329. }
  330. URIBL_WITHCONTENT {
  331. rbl = "test9.uribl";
  332. ignore_defaults = true;
  333. urls = true;
  334. content_urls = true;
  335. }
  336. URIBL_CONTENTONLY {
  337. rbl = "test9.uribl";
  338. ignore_defaults = true;
  339. content_urls = true;
  340. no_ip = true;
  341. }
  342. RBL_SELECTOR_SINGLE {
  343. rbl = "test9.uribl";
  344. ignore_defaults = true;
  345. selector = "helo()";
  346. }
  347. RBL_SELECTOR_MULTIPLE {
  348. rbl = "test9.uribl";
  349. ignore_defaults = true;
  350. selector = {
  351. sel_from = "from('smtp'):domain";
  352. sel_helo = "helo()";
  353. }
  354. }
  355. }
  356. }
  357. surbl {
  358. "whitelist" = [
  359. "rspamd-test.com"
  360. ];
  361. rules {
  362. "RSPAMD_URIBL" {
  363. suffix = "test.uribl";
  364. check_dkim = true;
  365. check_emails = true;
  366. images = false;
  367. process_script =<<EOD
  368. function(url, suffix)
  369. local cr = require "rspamd_cryptobox_hash"
  370. local h = cr.create(url):base32():sub(1, 32)
  371. return string.format("%s.%s", h, suffix)
  372. end
  373. EOD;
  374. }
  375. "DBL" {
  376. suffix = "test2.uribl";
  377. no_ip = true;
  378. check_emails = true;
  379. check_dkim = true;
  380. ips = {
  381. # spam domain
  382. DBL_SPAM = "127.0.1.2";
  383. # phish domain
  384. DBL_PHISH = "127.0.1.4";
  385. }
  386. }
  387. "URIBL_MULTI" {
  388. suffix = "test3.uribl";
  389. check_dkim = true;
  390. check_emails = true;
  391. bits {
  392. URIBL_BLOCKED = 1;
  393. URIBL_BLACK = 2;
  394. URIBL_GREY = 4;
  395. URIBL_RED = 8;
  396. }
  397. }
  398. "SPAMHAUS_ZEN_URIBL" {
  399. suffix = "test4.uribl";
  400. resolve_ip = true;
  401. check_emails = true;
  402. ips {
  403. URIBL_SBL = "127.0.0.2";
  404. URIBL_SBL_CSS = "127.0.0.3";
  405. URIBL_XBL = ["127.0.0.4", "127.0.0.5", "127.0.0.6", "127.0.0.7"];
  406. URIBL_PBL = ["127.0.0.10", "127.0.0.11"];
  407. URIBL_DROP = "127.0.0.9";
  408. }
  409. }
  410. "RSPAMD_URIBL_IMAGES" {
  411. suffix = "test.uribl";
  412. check_dkim = true;
  413. check_emails = false;
  414. images = true;
  415. process_script =<<EOD
  416. function(url, suffix)
  417. local cr = require "rspamd_cryptobox_hash"
  418. local h = cr.create(url):base32():sub(1, 32)
  419. return string.format("%s.%s", h, suffix)
  420. end
  421. EOD;
  422. }
  423. "BAD_SUBDOMAIN" {
  424. suffix = "test7.uribl";
  425. url_compose_map = "{= env.TESTDIR =}/configs/maps/url_compose_map.list";
  426. check_dkim = true;
  427. check_emails = false;
  428. }
  429. }
  430. }