Vlastní spamový filtr

Spam Scanner běží na vašem vlastním serveru a nechává tam poštu. Model klasifikátoru je součástí balíčku, není tu žádná telemetrie ani kontrola aktualizací a ve výchozím stavu odesílá jen dotaz DNS na název hostitele každého odkazu.

Co opouští server#

Ve výchozím stavu jen názvy hostitelů z odkazů ve zprávě. Ty se vyhledají ve filtrujících resolverech Cloudflare (1.1.1.2 a 1.1.1.3) jako běžné dotazy DNS a žádná část zprávy ani jejích adres se neodesílá. --no-cloudflare vypne i to.

Každá další kontrola, která používá síť, je vypnutá, dokud ji nezapnete:

KontrolaZapnete přesCo odesílá
SPF, DKIM, DMARC, ARC--authDotazy DNS na záznamy odesílatele
Blokovací seznamy DNS--dnsbl, --uriblIP adresu klienta a domény odkazů, jako dotazy DNS
ClamAV--clamavPřílohy, vašemu vlastnímu clamd
Jazykový model--llmShrnutí zprávy, serveru, který určíte

Kontroly se nelogují ani neukládají. Zabezpečení a soukromí

Instalace na server#

Shell
npm install --global spamscanner

Nebo samostatný binární soubor s vestavěným Node.js a modelem:

Shell
curl -fsSL https://github.com/spamscanner/spamscanner/releases/latest/download/install.sh | bash

Instalační skript před instalací ověří binární soubor podle souboru SHA256SUMS daného vydání a každý binární soubor má podepsané osvědčení o původu sestavení, které ověří gh attestation verify. Binární soubory jsou pro Linux (x64 a arm64), macOS a Windows. Linuxové soubory potřebují glibc, proto na Alpine instalujte přes npm. Začínáme

Kontrola aktualizací neexistuje. Pro aktualizaci spusťte instalační příkaz znovu: oba příkazy nainstalují nejnovější vydání.

Spuštění jako služba#

Servery milterMail filter: protokol ze Sendmailu, který používá i Postfix a který samostatnému programu umožňuje prohlédnout každou zprávu během relace SMTP., HTTP, TCP a spamdDémon SpamAssassinu. Jeho protokolem mluví spamc, Exim, Haraka a další klienti SpamAssassinu. naslouchají na 127.0.0.1, pokud --host neurčí jinak. Spouštějte je pod uživatelem bez oprávnění, například pod systemd:

INI
[Service]
ExecStart=/usr/local/bin/spamscanner milter --port 7831 --auth --subject-tag [SPAM]
User=spamscanner
Group=spamscanner
Restart=on-failure
NoNewPrivileges=yes
ProtectSystem=strict
ProtectHome=yes
PrivateTmp=yes

Celá jednotka a její nastavení jsou v průvodci Postfixem. Žádný ze serverů nepodporuje TLS, takže pro přístup z jiného stroje použijte privátní síť, tunel SSH nebo reverzní proxy s TLS.

Připojení poštovního serveru#

Poštovní serverPříkazPort
Postfix nebo Sendmailspamscanner milter7831
Postfix, bez odmítání poštyspamscanner filter, obsahový filtržádný
Exim, Haraka nebo spamcspamscanner spamd783
Cokoli, co mluví HTTPspamscanner http7832
Jednoduchý klient TCPspamscanner server7830
Poštovní server napsaný v Node.jsimport SpamScanner from 'spamscanner'žádný

Servery mohou ke zprávě přidat hlavičky X-Spam-Flag, X-Spam-Score a X-Spam-Status a knihovna vrací skóre a každý test, který se spustil. Průvodci: spamový filtr pro Postfix, další poštovní servery a HTTP API.

Jazykové modely lokálně#

Jazykový model je volitelný a čte jen hraniční případy: jasný spam a jasný hamŽádoucí pošta: opak spamu. se k němu nikdy nedostanou. S Ollamou běží na stejném serveru, takže žádná zpráva server neopustí:

Shell
ollama pull qwen3.5:4b
spamscanner milter --llm ollama --llm-model qwen3.5:4b

qwen3.5:4b běží na CPU. U hostovaného poskytovatele se osobní údaje před odesláním ze zprávy odstraní. Jazykové modely

Trénování na vlastní poště#

Přibalený model je natrénovaný na veřejných datových sadách. Model natrénovaný na poště, kterou váš server přijímá, funguje lépe a zůstává na tomto serveru:

Shell
spamscanner train --spam ~/Maildir/.Junk --ham ~/Maildir/cur --out /var/lib/spamscanner/model.json
SPAMSCANNER_MODEL=/var/lib/spamscanner/model.json spamscanner milter

Soubor modelu obsahuje hašované počty příznaků, ne slova ani text zpráv. Trénování

Požadavky#

Node.js 18 nebo novější na Linuxu, macOS nebo Windows, se samostatným binárním souborem nic. ClamAVAntivirový engine s otevřeným zdrojovým kódem. Jeho démon clamd kontroluje soubory poslané přes socket. a OllamaProgram, který stahuje a spouští otevřené jazykové modely na vašem vlastním počítači a nabízí HTTP API. jsou volitelné a běží jako samostatné služby.

Upravit tuto stránku na GitHubu · Markdown ·