Bộ lọc spam tự lưu trữ

Spam Scanner chạy trên máy chủ của riêng bạn và giữ thư ở đó. Mô hình của bộ phân loại nằm sẵn trong gói, không có dữ liệu đo lường hay kiểm tra cập nhật, và theo mặc định thứ duy nhất nó gửi đi là một truy vấn DNS cho tên máy chủ của mỗi liên kết.

Những gì rời khỏi máy chủ#

Theo mặc định, chỉ có tên máy chủ của các liên kết trong thư. Chúng được tra cứu trên các trình phân giải có lọc của Cloudflare (1.1.1.2 và 1.1.1.3) bằng truy vấn DNS thông thường, và không phần nào của thư hay địa chỉ của nó được gửi đi. --no-cloudflare tắt cả việc này.

Mọi kiểm tra khác có dùng mạng đều tắt cho đến khi bạn bật:

Kiểm traBật bằngGửi gì
SPF, DKIM, DMARC, ARC--authTruy vấn DNS cho các bản ghi của người gửi
Danh sách chặn DNS--dnsbl, --uriblĐịa chỉ IP của máy khách và tên miền của liên kết, dưới dạng truy vấn DNS
ClamAV--clamavTệp đính kèm, tới clamd của chính bạn
Mô hình ngôn ngữ--llmBản tóm tắt thư, tới máy chủ bạn chỉ định

Các lần quét không được ghi nhật ký hay lưu lại. Bảo mật và quyền riêng tư

Cài trên máy chủ#

Shell
npm install --global spamscanner

Hoặc tệp nhị phân độc lập, có sẵn Node.js và mô hình:

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

Tập lệnh cài đặt kiểm tra tệp nhị phân với tệp SHA256SUMS của bản phát hành trước khi cài, và mỗi tệp nhị phân có chứng thực nguồn gốc bản dựng đã ký mà gh attestation verify kiểm tra. Có tệp nhị phân cho Linux (x64 và arm64), macOS và Windows. Tệp nhị phân Linux cần glibc, vì vậy trên Alpine hãy cài bằng npm. Bắt đầu

Không có kiểm tra cập nhật. Để cập nhật, hãy chạy lại lệnh cài đặt: cả hai lệnh đều cài bản phát hành mới nhất.

Chạy như một dịch vụ#

Các máy chủ milterMail filter: một giao thức của Sendmail, cũng được Postfix sử dụng, cho phép một chương trình riêng kiểm tra từng thư trong phiên SMTP., HTTP, TCP và spamdDaemon của SpamAssassin. Giao thức của nó được spamc, Exim, Haraka và các client SpamAssassin khác sử dụng. lắng nghe trên 127.0.0.1 trừ khi --host chỉ định khác. Hãy chạy chúng bằng người dùng không có đặc quyền, ví dụ dưới 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

Unit đầy đủ và cách thiết lập nằm trong hướng dẫn Postfix. Không máy chủ nào dùng TLS, vì vậy để truy cập từ máy khác, hãy dùng mạng riêng, đường hầm SSH hoặc reverse proxy có TLS.

Kết nối máy chủ thư của bạn#

Máy chủ thưLệnhCổng
Postfix hoặc Sendmailspamscanner milter7831
Postfix, không bao giờ từ chối thưspamscanner filter, một bộ lọc nội dungkhông có
Exim, Haraka hoặc spamcspamscanner spamd783
Bất cứ thứ gì dùng HTTPspamscanner http7832
Một máy khách TCP đơn giảnspamscanner server7830
Máy chủ thư viết bằng Node.jsimport SpamScanner from 'spamscanner'không có

Các máy chủ có thể thêm tiêu đề X-Spam-Flag, X-Spam-Score và X-Spam-Status vào thư, còn thư viện trả về điểm và mọi phép thử đã kích hoạt. Hướng dẫn: bộ lọc spam cho Postfix, các máy chủ thư khác và API HTTP.

Giữ mô hình ngôn ngữ ở cục bộ#

Mô hình ngôn ngữ là tùy chọn và chỉ đọc các trường hợp khó phân định: spam rõ ràng và hamThư mong muốn: ngược lại với spam. rõ ràng không bao giờ tới được nó. Với OllamaMột chương trình tải về và chạy các mô hình ngôn ngữ mở trên máy của bạn, kèm một HTTP API., mô hình chạy trên cùng máy chủ, nên không thư nào rời khỏi máy chủ:

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

qwen3.5:4b chạy trên CPU. Nếu dùng nhà cung cấp được lưu trữ, dữ liệu cá nhân sẽ bị xóa khỏi thư trước khi gửi. Mô hình ngôn ngữ

Huấn luyện bằng thư của chính bạn#

Mô hình đi kèm được huấn luyện trên các bộ dữ liệu công khai. Mô hình được huấn luyện bằng thư mà máy chủ của bạn nhận được sẽ làm tốt hơn, và nó ở lại trên máy chủ đó:

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

Tệp mô hình chứa số đếm đặc trưng đã băm, không chứa từ hay nội dung thư. Huấn luyện

Yêu cầu#

Node.js 18 trở lên trên Linux, macOS hoặc Windows, hoặc không cần gì với tệp nhị phân độc lập. ClamAVMột engine diệt virus mã nguồn mở. Daemon của nó, clamd, quét các tệp được gửi qua socket. và Ollama là tùy chọn và chạy như các dịch vụ riêng.

Sửa trang này trên GitHub · Markdown ·