Itse ylläpidetty roskapostisuodatin

Spam Scanner toimii omalla palvelimellasi ja pitää sähköpostit siellä. Luokittimen malli on paketissa, telemetriaa tai päivitysten tarkistusta ei ole, ja oletuksena se lähettää vain DNS-kyselyn kunkin linkin isäntänimestä.

Mitä palvelimelta lähtee#

Oletuksena vain viestin linkkien isäntänimet. Ne haetaan Cloudflaren suodattavilta nimipalvelimilta (1.1.1.2 ja 1.1.1.3) tavallisina DNS-kyselyinä, eikä mitään osaa viestistä tai sen osoitteista lähetetä. --no-cloudflare poistaa tämänkin käytöstä.

Kaikki muut verkkoa käyttävät tarkistukset ovat pois päältä, kunnes otat ne käyttöön:

TarkistusKäyttöön valitsimellaMitä se lähettää
SPF, DKIM, DMARC, ARC--authDNS-kyselyt lähettäjän tietueista
DNS-estolistat--dnsbl, --uriblAsiakkaan IP-osoitteen ja linkkien verkkotunnukset DNS-kyselyinä
ClamAV--clamavLiitteet omalle clamd:llesi
Kielimalli--llmViestin tiivistelmän nimeämällesi palvelimelle

Tarkistuksia ei kirjata lokiin eikä tallenneta. Tietoturva ja tietosuoja

Asennus palvelimelle#

Shell
npm install --global spamscanner

Tai erillinen binääri, jossa Node.js ja malli ovat mukana:

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

Asennusskripti tarkistaa binäärin julkaisun SHA256SUMS-tiedostoa vasten ennen asennusta, ja jokaisella binäärillä on allekirjoitettu koontiversion alkuperätodistus, jonka gh attestation verify tarkistaa. Binäärit ovat saatavilla Linuxille (x64 ja arm64), macOS:lle ja Windowsille. Linux-binäärit tarvitsevat glibc:n, joten asenna Alpinella npm:llä. Aloitus

Päivitysten tarkistusta ei ole. Päivitä ajamalla asennuskomento uudelleen: molemmat komennot asentavat uusimman julkaisun.

Ajaminen palveluna#

Milter-, HTTP-, TCP- ja spamd-palvelimet kuuntelevat osoitteessa 127.0.0.1, ellei --host muuta kerro. Aja ne käyttäjänä ilman oikeuksia, esimerkiksi systemd:n alla:

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

Koko yksikkö ja sen käyttöönotto löytyvät Postfix-oppaasta. Mikään palvelimista ei puhu TLS:ää, joten käytä toiselta koneelta yhdistäessä yksityistä verkkoa, SSH-tunnelia tai käänteistä välityspalvelinta TLS:llä.

Sähköpostipalvelimen liittäminen#

SähköpostipalvelinKomentoPortti
Postfix tai Sendmailspamscanner milter7831
Postfix, hylkäämättä koskaan postiaspamscanner filter, sisältösuodatinei ole
Exim, Haraka tai spamcspamscanner spamd783
Mikä tahansa, joka puhuu HTTP:täspamscanner http7832
Yksinkertainen TCP-asiakasspamscanner server7830
Node.js:llä kirjoitettu sähköpostipalvelinimport SpamScanner from 'spamscanner'ei ole

Palvelimet voivat lisätä viestiin otsakkeet X-Spam-Flag, X-Spam-Score ja X-Spam-Status, ja kirjasto palauttaa pisteet ja jokaisen lauenneen testin. Oppaat: roskapostisuodatin Postfixille, muut sähköpostipalvelimet ja HTTP-rajapinta.

Kielimallit paikallisesti#

Kielimalli on valinnainen ja lukee vain rajatapaukset: selvä roskaposti ja selvä hamHaluttu posti: roskapostin vastakohta. eivät koskaan päädy sille. Ollaman kanssa se toimii samalla palvelimella, joten mikään viesti ei lähde sieltä:

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

qwen3.5:4b toimii suorittimella. Palveluna tarjottua mallia käytettäessä henkilötiedot poistetaan viestistä ennen lähettämistä. Kielimallit

Opetus omalla sähköpostilla#

Mukana tuleva malli on opetettu julkisilla aineistoilla. Malli, joka on opetettu palvelimesi vastaanottamalla postilla, toimii paremmin, ja se pysyy palvelimella:

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

Mallitiedosto sisältää hajautettuja piirteiden lukumääriä, ei sanoja eikä viestien tekstiä. Opetus

Vaatimukset#

Node.js 18 tai uudempi Linuxissa, macOS:ssä tai Windowsissa, tai ei mitään erillisellä binäärillä. ClamAVAvoimen lähdekoodin virustorjuntamoottori. Sen taustaprosessi clamd tarkistaa socketin kautta lähetetyt tiedostot. ja OllamaOhjelma, joka lataa ja ajaa avoimia kielimalleja omalla koneellasi ja tarjoaa HTTP API:n. ovat valinnaisia ja toimivat omina palveluinaan.

Muokkaa tätä sivua GitHubissa · Markdown ·