uvedenie systému filtrovania spamu , poskytujúca prostriedky na hodnotenie správ na základe rôznych kritérií, vrátane pravidiel, štatistických metód a čiernych zoznamov, na základe ktorých sa vytvára konečná váha správy, ktorá sa používa na rozhodovanie o potreby blokovania. Rspamd podporuje prakticky všetky funkcie implementované v SpamAssassin a má niekoľko výhod, ktoré umožňujú filtrovať poštu v priemere 10-krát rýchlejšie ako SpamAssassin a zároveň zabezpečiť lepšiu kvalitu filtrovania. Kód systému je napísaný v jazyku C a pod licenciou Apache 2.0.
Rspamd je postavený na báze architektúry riadenej udalosťami (Event-driven) a je pôvodne navrhnutý na používanie vo vysoko zaťažených systémoch, umožňujúc spracovávať stovky správ za sekundu. Pravidlá pre identifikáciu znakov spamu sú mimoriadne flexibilné a v najjednoduchšej forme môžu obsahovať regulárne výrazy, zatiaľ čo v zložitejších situáciách môžu byť definované v jazyku Lua. Rozšírenie funkcií a pridávanie nových typov kontrol sa realizuje prostredníctvom modulov, ktoré môžu byť vytvorené v jazykoch C a Lua. Napríklad sú dostupné moduly na kontrolu odosielateľa pomocou SPF, overenie domény odosielateľa cez DKIM, vytváranie dotazov do zoznamov DNSBL. Pre zjednodušenie konfigurácie, vytvárania pravidiel a sledovania štatistiky je k dispozícii administratívne webové rozhranie.
Hlavné novinky:
- Prešla sa na novú schému číslovania vydaní. Keďže prvé číslo vo verzii sa už niekoľko rokov nemenilo a reálnym ukazovateľom verzie je druhé číslo, rozhodlo sa prejsť z formátu „x.y.z“ na formát „y.z“;
- Pre cyklus spracovania udalostí namiesto bola použitá knižnica , zbavená niektorých obmedzení libevent a umožňujúca dosiahnuť vyšší výkon. Použitie
libev umožnilo zjednodušiť kód, zlepšiť spracovanie signálov a časových limitov, ako aj unifikovať sledovanie zmien súborov pomocou mechanizmu inotify (nie všetky vydania libevent dodávané na podporovaných platformách mohli pracovať s inotify); - Podpora modulu klasifikácie správ, ktorý využíva knižnicu hlbokého strojového učenia Torch, bola ukončená. Ako dôvod sa uvádza zbytočná zložitost Torch a veľká prácnosť na jeho aktualizácii. Ako náhrada za klasifikáciu pomocou metód strojového učenia bol navrhnutý úplne prepracovaný modul. , v ktorom sa na zabezpečenie chodu neurónovej siete používa knižnica , zahŕňajúca iba 4000 riadkov kódu v jazyku C. V novej implementácii boli vyriešené mnohé problémy so vznikajúcimi vzájomnými blokáciami počas učenia;
- Modul nahradil moduly SURBL a Emails, čo umožnilo zjednotenie spracovania všetkých kontrol podľa čiernych zoznamov. Možnosti RBL boli rozšírené podporou ďalších typov, ako sú selektory, a prostriedkami na zjednodušené rozširovanie existujúcich pravidiel. Pravidlá blokovania emailov na základe mapových zoznamov namiesto DNS RBL už nie sú podporované, miesto nich sa odporúča používať multimap so selektormi;
- Na určenie typov súborov podľa obsahu bola nasadená nová knižnica Lua Magic využívajúca Lua a Hyperscan namiesto libmagic.
Ako dôvod vytvorenia vlastnej knižnice sa uvádza túžba dosiahnuť vyšší výkon, zbaviť sa porúch pri identifikácii súborov docx, získať vhodnejšie API a pridať nové typy heuristiky, ktoré nie sú obmedzené prísnymi pravidlami; - Vylepšený modul pre uchovávanie údajov v DBMS . Pridané polia LowCardinality a zásadne optimalizovaná spotreba pamäte;
- Rozšírené možnosti modulu , v ktorom sa objavila podpora a mapovaní;
- V module Maillist bolo zlepšené určovanie zoznamov mailingov;
- V pracovných procesoch sa objavila možnosť posielania do hlavného procesu heartbeat správ, potvrdzujúcich činnosť v normálnom režime. Pri absencii takýchto správ po určitú dobu môže hlavný proces donútiť pracovný proces k ukončeniu. Podľa predvoleného nastavenia je tento režim zatiaľ vypnutý;
- Pridaná séria nových skenerov v jazyku Lua. Napríklad boli pridané moduly na skenovanie správ v antivírusových balíkoch Kaspersky ScanEngine, Trend Micro IWSVA (cez icap) a
F-Secure Internet Gatekeeper (cez icap), ako aj navrhnuté externé skenery pre Razor, oletools a P0F; - Pridaná možnosť zmeny správ cez Lua API. Na úpravu MIME blokov bol navrhnutý modul ;
- Zabezpečené oddelené spracovanie nastavení stanovených cez „Settings-Id:“, napríklad teraz je možné pripájať pravidlá len k určitým identifikátorom nastavení;
- Boli vykonané optimalizácie výkonu Lua enginu, dekódovania base64 a pre určovanie jazyka pre text. Pridaná podpora pre caching zložitých mapovaní (maps). Realizovaná podpora
HTTP keep-alive.
Zdroj: opennet.ru
