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:
| Tarkistus | Käyttöön valitsimella | Mitä se lähettää |
|---|---|---|
| SPF, DKIM, DMARC, ARC | --auth | DNS-kyselyt lähettäjän tietueista |
| DNS-estolistat | --dnsbl, --uribl | Asiakkaan IP-osoitteen ja linkkien verkkotunnukset DNS-kyselyinä |
| ClamAV | --clamav | Liitteet omalle clamd:llesi |
| Kielimalli | --llm | Viestin tiivistelmän nimeämällesi palvelimelle |
Tarkistuksia ei kirjata lokiin eikä tallenneta. Tietoturva ja tietosuoja
Asennus palvelimelle#
npm install --global spamscannerTai erillinen binääri, jossa Node.js ja malli ovat mukana:
curl -fsSL https://github.com/spamscanner/spamscanner/releases/latest/download/install.sh | bashAsennusskripti 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:
[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=yesKoko 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öpostipalvelin | Komento | Portti |
|---|---|---|
| Postfix tai Sendmail | spamscanner milter | 7831 |
| Postfix, hylkäämättä koskaan postia | spamscanner filter, sisältösuodatin | ei ole |
| Exim, Haraka tai spamc | spamscanner spamd | 783 |
| Mikä tahansa, joka puhuu HTTP:tä | spamscanner http | 7832 |
| Yksinkertainen TCP-asiakas | spamscanner server | 7830 |
| Node.js:llä kirjoitettu sähköpostipalvelin | import 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ä:
ollama pull qwen3.5:4b
spamscanner milter --llm ollama --llm-model qwen3.5:4bqwen3.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:
spamscanner train --spam ~/Maildir/.Junk --ham ~/Maildir/cur --out /var/lib/spamscanner/model.json
SPAMSCANNER_MODEL=/var/lib/spamscanner/model.json spamscanner milterMallitiedosto 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.