Archiwa tagu: dspam

DSPAM – panel użytkownika

Jednym z plusów używania systemu DSPAM jest wygodny sposób zarządzania przez administratora, a także przez każdego użytkownika. W połączeniu z wysoką skutecznością programu, używanie systemu staje się wręcz przyjemne.
Logo, jakie wymyślił autor programu Jonathan Zdzierski jest adekwatne to możliwości.
Logo Dspam

Panel dla użytkownika zawiera Centrum kontroli z zakładkami, których najważniejsza jest Historia. Znajduje sę tam historia ostatnich kilkuset maili użytkownika. Każdy oznaczony odpowiednim kolorem i napisem.

Oznaczenia

Maile oznaczone jako Resend to te, które zostały przez użytkownika lub administratora powtórnie przesłane przy użyciu funkcji Redirect, czasem także sam system je oznacza jako wymagające uwagi. Używając funkcji Retrain można, zmienić kwalifikacje danego maila, jeśli jest błędna.
Zmiana kwalifikacji

Oznaczenie na danym mailu zmienia się na Miss i kolor również w zależności, jak mail został oznaczony.

Miss

W zakładce Analiza każdy użytkownik może zobaczyć, statystykę odwzorowaną graficznie. Są dwa wykresy, jeden przedstawia ostatnia dobę, drugi okres dwóch tygodni.

Wykres

W zakładce Kwarantanna są maile zakwalifikowane jako spam. Można zobaczyć punktację, zaznaczyć dany mail do usunięcia lub zobaczyć jego zawartość.

Kwarantanna

W podglądzie maila nie działa opcja Dostarcz (wynika to z problemów na linii exim – dspam). Jednak na podstawie adresu można użyć własnego programu pocztowego, aby po przeczytaniu maila ewentualnie odpisać. Oczywiscie można też użyć opcji Retrain, aby skorygować na przyszłość decyzje systemu.
Administrator ma dodatkowy panel, na którym widzi dane o pracy systemu.

System

Może także zobaczyć ile maili przyszło w ciagu ostatniej doby i godziny.

Dane admina

Może też zobaczyć wykres godzinowy w ciągu ostatniej doby i wykres dzienny z ostatniego miesiąca.

Wykres - dni

Może także obejrzeć statystyki użytkowników, sprawdzić czy skrzynka ze spamem u któregoś nie jest zbyt duża i w razie potrzeby ją oczyścić. Może też dokonywac operacji Retrain na mailach każdego użytkownika. Funkcja istotna tam, gdzie admin musi czuwać nad całością poczty (np. w jakiejś instytucji, czy firmie).
Samo używanie panelu jest bardzo łatwe i dowolnie wybrany użytkownik poczty może być administartorem panelu. Ustala się to w pliku admins w /home/httpd/dspam/cgi-bin. Tam też znajduje się plik configure.pl. w którym ustawiamy adres naszego serwera. Tak więc instalacja i konfiguracja nie jest trudna, jednak wcześniej trzeba zainstalować mod_perl apache (informacja zmian w httpd.conf, wyświetla się po zainstalowaniu panelu) i kilka dodatkowych modułów perla: ‚mod_perl’ ‚perl-error’ ‚perl-digest-sha1’ ‚perl-cache-cache’ ‚perl-apache-authpop3’ ‚perl-gd’ ‚perl-gd-graph’ ‚perl-gd-graph3d’ ‚perl-gdtextutil’ – system nie był sprawdzany na innym serwerze www niż apache. Warunkiem krytycznym jest obsługa skryptów perla i zainstalowane moduły umożliwiające logowanie użytkowników poczty. Dodatkowo potrzebne są moduły umożliwiające wyświetlanie wykresów.
Aby działała funkcja Retrain i pokazywanie statystyk użytkowników należy dodać w /etc/sudoers dwa wpisy:
nobody ALL=(ALL) NOPASSWD: /usr/bin/dspam
nobody ALL=(ALL) NOPASSWD: /usr/bin/dspam_stats
Przy czym trzeba zaznaczyć, że ta ostatnia opcja działa tylko w połaczeniu z bazą mysql. Jeśli administrator zdecyduje się używać dspam bez bazy, panel nie będzie miał skąd wyświetlić statystyk użytkowników. Będą jednak działać pozostałe funkcje, które dane biora bezpośrednio z logów.
W konfiguracji apache należy dodać (po innych modułach):
LoadModule perl_module           /usr/lib/apache/mod_perl.so
oraz po wpisie ScriptAlias dla cgi:
ScriptAlias /dspam/ /home/httpd/dspam/cgi-bin/
Alias /dspam-files/ /home/httpd/dspam/htdocs/
<Directory /home/httpd/dspam/cgi-bin>
Options None
AllowOverride AuthConfig
Order allow,deny
Allow from all
</Directory>

Oczywiście po zmianach w konfiguracji serwera www, należy go uruchomić ponownie.

autor: W. Trąmpczyński (Maciek)

No już… przysyłaj mi Viagrę…

Spam staje się problemem numer jeden internetu. W zasadzie nawet małe serwery nie mogą obejść się bez jakiegoś systemu antyspamowego. Chcę zaproponować użytkownikom NND jeden z nich.

DSPAM jest programem napisanym w c++ stosującym w pracy klasyfikator bayesowski oraz testy Chi-Square i ocenę Markowa, chained tokens, BNR (Redukcja szumu bayesowskiego) i inne połączone metody. Nadaje się zarówno na małe, jak i rozbudowane systemy. Jest wydajny, szybki i nieźle wspólpracuje z eximem.
Zaletą jest dość intuicyjny panel ze statystykami i możliwością zarządzania – dla każdego użytkownika z osobna.

Administrator widzi wykresy całego systemu, może oglądać statystyki użytkowników, wykonywać czynności administracyjne dotyczące ich kont.

Oczywiście program może być także używany bez panelu www i z wykorzystaniem wyłącznie własnej bazy tekstowej. Jednak jeśli moc serwera pozwala, warto zainstalować także panel i mysql, aby ułatwić sobie pracę.
Przed przystąpieniem do instalacji należy wypisać sobie wszystkich użytkowników poczty do pliku /etc/mail/mailusers.
Jeśli jest ich kilku, można do zrobic ręcznie, w przypadku większej ilości mozna pomóc sobie poleceniem ls -w 1 /home, które w kolumnie pokaże nam całą zawartość /home i wystarczy zawartość ekranu skopiować oraz usunąć katalogi nienależące do użytkowników (np. httpd). Na końcu pliku musi byc pusta linia inaczej skrypty potraktują ostatniego użytkownika po macoszemu.
Kolejnym krokiem jest instalacja (w zależności od źródła użyjemy opcji -S lub -U). Po instalacji na ekranie wyświetli się instrukcja konfiguracji. Nie jest ona szczególnie skomplikowana, lecz dla tych mają „pamięć dobrą, ale krótką” dobra rada – skopiujcie tekst do jakiegoś edytora, aby można było powtórnie go przeczytać.
Konfiguracja
Są rozmaite możliwości konfiguracji.
A) Najprostsze jest wyłącznie znakowanie maili. Wystarczy jedynie skonfigurować exima z nowym plikiem, oraz zmienić nazwę pliku dspam.conf.hsash na dspam.conf. Można pominąć naukę, choć program będzie się częściej mylił i trzeba będzie go uczyć odsyłając mu wadliwe maile.
Druga możliwość to użycie również pliku dspam.conf.hash (czyli bez bazy mysql) i wstępny ręczny trening na własnych próbkach pojedyncze maile zgromadzone w katalogach (dspam_train nzawa-usera /katalog/spam /katalog/nospam).
Można łatwiej skorzystać z przygotowanych skryptów dspam_mbox_spam i dspam_mbox_nospam, ale trzeba sporządzić w /etc/mail spis użytkowników o nazwie mailusers.
Tak zakończyć można najprostszą konfigurację. Sugeruję jednak więcej wysiłku, co pozwoli cieszyć się potem łatwym zarządzaniem spamem.
B) Pierwszym krokiem będzie zmiana konfiguracji exima, dołączony plik exim.conf.dspam trzeba wyedytować, wpisując własną domenę i zmienić jego nazwę na exim.conf, swój stary plik warto zachować jako exim.conf.old.
Po zainstalowaniu programu utworzyć bazę danych dspam i założyć tabele w tej bazie. Plik dspam.sql znajduje się w /var/dspam. Można to zrobić w linii poleceń, ale zapewne jest to przyjemniejsze przy użyciu phpMyAdmin.
Używanie dspam z bazą mysql jest domyślne, choć można z tego zrezygnować. Z bazą mysql program działa szybciej i sprawniej. Dopiszemy też użytkownika bazy i haslo do pliku dspam.conf.
Następnie należy uruchomić kolejno skrypty automatyzujące czynności konfiguracyjne, ale wcześniej upewnić się, że mamy już w /etc/mail plik mailusers z nazwami użytkowników.
dspam_files – skrypt, który tworzy w /var/dspam/data potrzebne pliki dla każdego użytkownika z /etc/mail/mailusers i nadaje im odpowiednie prawa.
dspam_mbox_spam i dspam_mbox_nospam – te skrypty mają zadanie wykonać uczenie wstępne programu dla każdego użytkownika wpisanego w /etc/mail/mailusers.
Jeśli użytkownik ma własne maile do nauki w postaci jeden plik = jeden mail, może użyć skryptu dspam_learndir.
W późniejszym okresie do powtórnego treningu służy skrypt dspam_train (używany z parametrami user /katalog/spam /katalog/nospam).
dspam_procmail – skrypt domyślnie kieruje spam do skrzynki użytkownika w /var/dspam/$user/$user.mbox, wymaga to oczywiście użycia panelu www. Inaczej użytkownik plików nie obejrzy. Można wcześniej zdecydować się na inne rozwiązanie. Jeśli na serwerze jest używany Squirrelmail, który tworzy w katalogu użytkownika plik FOLDER.Kosz to można tam właśnie skierować spam. Można utworzyć specjalne konto spamcheck i kierować cały spam do /var/mail/spamcheck, administrator może to konto obsługiwac w swoim programie pocztowym i zarządzać spamem. Dwa ostatnie sposoby nie wymagają instalowania panelu, jednak koniecznie trzeba używać opery lub thunderbirda z wtyczką redirect. Korygowanie decyzji dspam wymaga użycia opcji „Przeadresuj”. Ostatnim sposobem jest brak wszelkich akcji, oznaczone maile wędrują do użytkownika i on decyduje, co z nimi zrobić. Jednak moim zdaniem to dla użytkownika nie oznacza żadnej zmiany, nadal będzie dostawał spam, tyle, że może filtrowanie będzie nieco łatwiejsze.
Przykładowy plik .procmailrc wygląda następująco:
MAILDIR=$HOME
PMDIR=$HOME/.procmail
LOGFILE=$HOME/procmail.log
SHELL=/bin/sh

# segregowanie spamu
:0
*^X-DSPAM-Result: Spam
# kosz usera w squirrelmail (nie wymaga panelu dspam)
#/home/nazwa/FOLDER.Kosz
# domyślnie – skrzynka dspam usera (wymaga panelu dspam
/var/dspam/data/nazwa/nazwa.mbox
# mbox usera spamcheck (trzeba go utworzyć, nie wymaga panelu dspam)
# mbox musi mieć prawa 660 (jest 600)
#/var/spool/mail/spamcheck

# reszta poczty
:0
/var/spool/mail/nazwa

Jeśli w przyszłości administrator bedzie dodawał ręcznie nowe konta i będzie chciał włączyć segregację spamu dla użytkownika, musi pamiętać dokonaniu koniecznych zmian w pliku.
To jest ostatni skrypt jaki trzeba wykonać.
Użytkowanie
Jeśli już wykonane zostały wszystkie czynności konfiguracyjne, mozna uruchomić /etc/rc.d/dspam start. Jak już wcześniej napisałem, możemy używać dspam bez mysql, procmaila, apacza i panelu. Jednak sprawniej będzie jeśli zainstalujemy także dodatki.
Opcją zalecaną jest dopisanie dspam do sekcji DAEMONS w rc.conf. Program działa dzięki temu sprawniej, nie jest wywoływany osobny proces dla każdego maila. Wyniki są natychmiast zapisywane do bazy mysql (w przeciwnym razie należałoby co pewien czas używać programu dspam_2sql).
Jeśli używamy dspam bez panelu, każdy spam trzeba odesłać na adres login-spam@twoja.domena, w ten spsoób program się uczy. Ze znanych mi programów jedynie opera i thunderbird (z wtyczką redirect) mają opcję „Przeadresuj”.
W panelu można użyć opcji „Retrain”.
Zarządzanie spamem dobrze jest zorganizowane własnie w panelu, ponieważ może to robić i administrator, i każdy użytkownik.
System przetestowałem najpierw kilkakrotnie na serwerze testowym, a potem na działającym serwerze produkcyjnym. Przez kilka dni zbierałem cały spam na osobnym koncie pocztowym. Pomyłek typu false_positives było naprawdę niewiele i takie maile forwardowałem użytkownikom na ich konta. Po kilku dniach praktycznie ich już nie było. Obserwując pracę systemu na bieżąco widzę, że ilość przepuszczonego spamu jest naprawdę minimalna.
Uwagi końcowe
Przygotowując pakiet starałem się, aby jego konfiguracja po instalacji była maksymalnie uproszczona. Dlatego też wbrew opinii niektórych kolegów zdecydowałem, że opcją domyślną będzie użycie panelu i kierowanie tam spamu. Uważałem, że dostarczenie programu, który domyślnie nic nie robi, a jego faktyczne uruchomienie wymaga dopiero działania, nie bardzo ma sens. Oczywiście jeśli komuś bardzo zależy aby przynajmniej na poczatku program faktycznie nic nie robił, wystarczy, że wybierze najprostszą wersję konfiguracji i pominie trening, nawet wtedy program będzie działać. Uczyć program można ogladając w nagłowku znacznik X-DSPAM-Result, jeśli będzie błędna diagnoza, mail odsyłamy na user-spam@domena (dla spamu) lub user-notspam@domena (jeśli znacznik wskazuje na spam, a mail spamem nie jest).
Więcej informacji o codziennym używaniu programu można znaleźć w artykule o panelu www dspam.

Notatka: autor: W. Trąmpczyński (Maciek)