Pārlūkot izejas kodu

[Rspamd] Add local fuzzy worker

André 7 gadi atpakaļ
vecāks
revīzija
d8f86ae488

+ 23 - 0
data/conf/rspamd/dynmaps/settings.php

@@ -321,6 +321,29 @@ while ($row = array_shift($rows)) {
 <?php
 }
 
+/*
+// Start traps
+*/
+
+?>
+  traps {
+<?php
+  foreach (ucl_rcpts('spam@localhost', 'mailbox') as $rcpt) {
+?>
+    rcpt = <?=json_encode($rcpt, JSON_UNESCAPED_SLASHES);?>;
+<?php
+  }
+  foreach (ucl_rcpts('ham@localhost', 'mailbox') as $rcpt) {
+?>
+    rcpt = <?=json_encode($rcpt, JSON_UNESCAPED_SLASHES);?>;
+<?php
+  }
+?>
+    priority = 9;
+    want_spam = yes;
+  }
+
+<?php
 // Start additional content
 
 $stmt = $pdo->query("SELECT `id`, `content` FROM `settingsmap` WHERE `active` = '1'");

+ 34 - 0
data/conf/rspamd/local.d/fuzzy_check.conf

@@ -0,0 +1,34 @@
+rule "local" {
+    # Fuzzy storage server list
+    servers = "localhost:11445";
+    # Default symbol for unknown flags
+    symbol = "LOCAL_FUZZY_UNKNOWN";
+    # Additional mime types to store/check
+    mime_types = ["application/*"];
+    # Hash weight threshold for all maps
+    max_score = 20.0;
+    # Whether we can learn this storage
+    read_only = no;
+    # Ignore unknown flags
+    skip_unknown = yes;
+    # Hash generation algorithm
+    algorithm = "mumhash";
+
+    # Map flags to symbols
+    fuzzy_map = {
+        LOCAL_FUZZY_DENIED {
+            max_score = 20.0;
+            flag = 11;
+        }
+        LOCAL_FUZZY_PROB {
+            max_score = 10.0;
+            flag = 12;
+        }
+        LOCAL_FUZZY_WHITE {
+            max_score = 2.0;
+            flag = 13;
+        }
+    }
+}
+
+

+ 14 - 0
data/conf/rspamd/local.d/fuzzy_group.conf

@@ -0,0 +1,14 @@
+symbols = {
+    "LOCAL_FUZZY_UNKNOWN" {
+        weight = 2.0;
+    }
+    "LOCAL_FUZZY_DENIED" {
+        weight = 12.0;
+    }
+    "LOCAL_FUZZY_PROB" {
+        weight = 5.0;
+    }
+    "LOCAL_FUZZY_WHITE" {
+        weight = -3.0;
+    }
+}

+ 15 - 0
data/conf/rspamd/local.d/rspamd.conf.local

@@ -1 +1,16 @@
 # rspamd.conf.local
+
+worker "fuzzy" {
+  # Socket to listen on (UDP and TCP from rspamd 1.3)
+  bind_socket = "*:11445";
+  allow_update = ["127.0.0.1", "::1"];
+  # Number of processes to serve this storage (useful for read scaling)
+  count = 2;
+  # Backend ("sqlite" or "redis" - default "sqlite")
+  backend = "redis";
+  # Hashes storage time (3 months)
+  expire = 90d;
+  # Synchronize updates to the storage each minute
+  sync = 1min;
+}
+

+ 2 - 2
data/conf/rspamd/local.d/statistics_group.conf

@@ -1,10 +1,10 @@
 symbols = {
     "BAYES_SPAM" {
-        weight = 7.5;
+        weight = 8.5;
         description = "Message probably spam, probability: ";
     }
     "BAYES_HAM" {
-        weight = -2.5;
+        weight = -12.5;
         description = "Message probably ham, probability: ";
     }
 }