|
Rozmiar: 1018
Komentarz: *** kreacja ***
|
Rozmiar: 13310
Komentarz: + dspam txt db
|
| Usunięcia zostały oznaczone w ten sposób. | Dodatki zostały oznaczone w ten sposób. |
| Linia 4: | Linia 4: |
| <<TableOfContents()>> |
|
| Linia 9: | Linia 11: |
| Jeżeli nie był instalowany wcześniej, to należy wybrać następujące opcje (wyciąg z pliku /var/db/ports/mail_dspam/options): {{{#!bsdmake numbers=off OPTIONS_FILE_SET+=CLAMAV OPTIONS_FILE_SET+=CLAMAV_LOCAL OPTIONS_FILE_SET+=DAEMON OPTIONS_FILE_SET+=DOMAIN_SCALE OPTIONS_FILE_SET+=EXTERNAL_LOOKUP OPTIONS_FILE_SET+=HASH OPTIONS_FILE_SET+=PGSQL_LOCAL OPTIONS_FILE_SET+=SYSLOG OPTIONS_FILE_SET+=VIRT_USERS OPTIONS_FILE_SET+=PGSQL }}} |
Wszystko zostało przedstawione w etapie instalacji [[SerwerPocztowy|serwera pocztowego]] |
| Linia 28: | Linia 17: |
| createdb -U pgsql -E UTF8 -O dspam dspam }}} |
createdb -U pgsql -E UTF8 -O dspam dspam_db createlang -U pgsql plpgsql dspam_db }}} == Wgranie schematu do bazy danych == Jest gotowy skrypt SQLowy, który pozwala na założenie bazy danych dla dspam: {{{#!shell numbers=off cat /usr/local/share/examples/dspam/pgsql/pgsql_objects.sql | psql -U pgsql dspam_db cat /usr/local/share/examples/dspam/pgsql/virtual_users.sql | psql -U pgsql dspam_db }}} === Dopisanie konta dspam do dspam_virtual_uids === W logach przy próbie nauki ('''dspam-retrain''') pojawiały się błędy typu ''Unable to find a valid signature. Aborting.'' Potrzeba dopisania specjalnego wirtualnego użytkownika do tabeli wirtualnych identyfikatorów: {{{#!sql numbers=off INSERT INTO dspam_virtual_uids (username) VALUES ('dspam') }}} === Zmiana właściciela obiektów w bazie danych === {{{#!shell numbers=off echo '\dt' | psql -U pgsql dspam_db | awk '/public/ {print "ALTER TABLE",$3,"OWNER TO dspam;";}' | psql -U pgsql dspam_db echo '\ds' | psql -U pgsql dspam_db | awk '/public/ {print "ALTER SEQUENCE",$3,"OWNER TO dspam;";}' | psql -U pgsql dspam_db }}} == Konfigurowanie dspam.conf == Plik konfiguracyjny to '''/usr/local/etc/dspam.conf''': {{{ # Katalog domowy do przechowywania wszelkich danych # Home /var/db/dspam # Sterownik do bazy danych (zgodnie z wyborem przy instalacji) # StorageDriver /usr/local/lib/dspam/libpgsql_drv.so # Agent do dostarczenia poczty po sprawdzeniu poczty # #TrustedDeliveryAgent "/usr/libexec/mail.local" TrustedDeliveryAgent "/usr/local/cyrus/bin/deliver $u" # sposób alternatywny: # DeliveryHost 127.0.0.1 DeliveryPort 10026 DeliveryIdent dspam DeliveryProto SMTP # co zrobić, jak się nie uda przekazać do kwarantanny # OnFail error # zaufani użytkownicy # Trust root Trust dspam Trust apache Trust mail Trust mailnull Trust smmsp Trust daemon #Trust nobody #Trust majordomo # sposób samonauczania # TrainingMode teft TestConditionalTraining on # dodatki # Feature whitelist # algortym nauki # Algorithm graham burton # rozbieranie maila na czynniki pierwsze - sposób sprawdzania # Tokenizer chain # PValue: Specify the technique used for calculating Probability Values, # overriding any defaults configured in the build. These options are: PValue bcr # statystyki # WebStats on # ImprobabilityDrive: Calculate odds-ratios for ham/spam, and add to # X-DSPAM-Improbability headers # ImprobabilityDrive on Preference "trainingMode=TEFT" # { TOE | TUM | TEFT | NOTRAIN } -> default:teft Preference "spamAction=tag" # { quarantine | tag | deliver } -> default:quarantine Preference "spamSubject=[SPAM]" # { string } -> default:[SPAM] Preference "statisticalSedation=5" # { 0 - 10 } -> default:0 Preference "enableBNR=on" # { on | off } -> default:off Preference "enableWhitelist=on" # { on | off } -> default:on Preference "signatureLocation=message" # { message | headers } -> default:message Preference "tagSpam=on" # { on | off } Preference "tagNonspam=off" # { on | off } Preference "showFactors=off" # { on | off } -> default:off Preference "optIn=off" # { on | off } Preference "optOut=off" # { on | off } Preference "whitelistThreshold=10" # { Integer } -> default:10 Preference "makeCorpus=off" # { on | off } -> default:off Preference "storeFragments=off" # { on | off } -> default:off Preference "localStore=" # { on | off } -> default:username Preference "processorBias=on" # { on | off } -> default:on Preference "fallbackDomain=off" # { on | off } -> default:off Preference "trainPristine=off" # { on | off } -> default:off Preference "optOutClamAV=off" # { on | off } -> default:off Preference "ignoreRBLLookups=off" # { on | off } -> default:off Preference "RBLInoculate=off" # { on | off } -> default:off # nadpisywanie preferencji przez użytkowników # AllowOverride enableBNR AllowOverride enableWhitelist AllowOverride fallbackDomain AllowOverride ignoreGroups AllowOverride ignoreRBLLookups AllowOverride localStore AllowOverride makeCorpus AllowOverride optIn AllowOverride optOut AllowOverride optOutClamAV AllowOverride processorBias AllowOverride RBLInoculate AllowOverride showFactors AllowOverride signatureLocation AllowOverride spamAction AllowOverride spamSubject AllowOverride statisticalSedation AllowOverride storeFragments AllowOverride tagNonspam AllowOverride tagSpam AllowOverride trainPristine AllowOverride trainingMode AllowOverride whitelistThreshold AllowOverride dailyQuarantineSummary # parsowanie nag/l/owk/ow (na podstawie poszukiwa/n rozwi/azania problem/ow z b/l/ednym tokenem) ParseToHeaders on ChangeModeOnParse on ChangeUserOnParse full # ustawienia do bazy danych PostgreSQL PgSQLServer /tmp #PgSQLPort PgSQLUser dspam PgSQLPass _haslo_do_zmiany_ PgSQLDb dspam_db PgSQLUIDInSignature on PgSQLVirtualTable dspam_virtual_uids PgSQLVirtualUIDField uid PgSQLVirtualUsernameField username HashRecMax 98317 HashAutoExtend on HashMaxExtents 0 HashExtentSize 49157 HashPctIncrease 10 HashMaxSeek 10 HashConnectionCache 10 Notifications off PurgeSignatures 14 # Stale signatures PurgeNeutral 90 # Tokens with neutralish probabilities PurgeUnused 90 # Unused tokens PurgeHapaxes 30 # Tokens with less than 5 hits (hapaxes) PurgeHits1S 15 # Tokens with only 1 spam hit PurgeHits1I 15 # Tokens with only 1 innocent hit LocalMX 127.0.0.1 SystemLog on UserLog on TrackSources spam Opt out # przekazywanie poczty do antywirusa # ClamAVPort 3310 ClamAVHost 127.0.0.1 ClamAVResponse accept # -- CLIENT / SERVER -- # ServerMode auto ServerPass.Relay1 "secret" ServerParameters "--deliver=innocent -d %u" ServerDomainSocketPath "/var/run/dspam.sock" ProcessorURLContext on ProcessorBias on StripRcptDomain off ## EOF }}} == Utworzenie użytkownika na potrzeby postfixa == {{{#!shell numbers=off pw add user dspam -g mail -d /var/db/dspam -s /sbin/nologin }}} == Dopisanie potrzebnych wpisów w transport.px == W celu dobrego działania nauki dspam konieczne jest dopisanie poniższych linijek w transport.px {{{ # --- dspam ------------------------------------------------------ # spam.spam dspam-retrain:spam ham.ham dspam-retrain:innocent }}} == Utworzenie plików - komunikatów dla retrain == {{{#!shell numbers=off mkdir -p /var/db/dspam/txt/ chgrp mail /var/db/dspam/txt/ echo "Scanned and tagged as SPAM by DSPAM on BSD Serwis spam laboratory" > /var/db/dspam/txt/msgtag.spam echo "Scanned and tagged as HAM by DSPAM on BSD Serwis spam laboratory" > /var/db/dspam/txt/msgtag.nospam echo "Scanned and tagged as HAM by DSPAM on BSD Serwis spam laboratory" > /var/db/dspam/txt/msgtag.ham }}} = Czyszczenie bazy danych ze starych wpisów = Aby nie dopuścić do przepełnienia bazy danych, dspam oferuje dwa skrypty, które należy uruchamiać w porach nocnych (może w ramach periodic??). Skrypty mogą powodować obciążenie serwera, stąd zalecenie na godziny nocne. == purge-pe.sql == Skrypt do uruchomienie, jeżeli użytkownicy mogą ustawiać swoje preferencje dla dspam. == purge.sql == Skrypt do uruchomienia, jeżeli ustawienia są tylko globalne. Więcej informacji można znaleźć w dokumentacji: '''/usr/local/share/doc/dspam/pgsql_drv.txt'''. = Instalacja interfejsu webowego = W opcjach instalacji jest możliwość zaznaczenia instalacji interfejsu webowego. Niemniej widać, że aktualnie jest to mocno niedopracowane i wymaga poprawek. == Modyfikacja Makefile == Patrz konfiguracje zapisane w instalacji [[SerwerPocztowy|serwera pocztowego]]. == Doinstalowanie brakujących modułów PERLa == Aby poprawnie działały skrypty administracyjne, konieczne jest doinstalowanie pakietów do PERLa: {{{#!shell numbers=off cpan -i Time::CTime }}} == Patchowanie skryptów CGI == Należy zmienić pliki .cgi wg następujących patchy: {{{#!diff numbers=off --- admin.cgi.orig 2014-06-25 12:45:46.380605000 +0200 +++ admin.cgi 2014-06-25 13:20:23.473464481 +0200 @@ -19,9 +19,9 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. use strict; +use Time::CTime; use Time::Local; use vars qw { %CONFIG %DATA %FORM %LANG }; -require "ctime.pl"; # Read configuration parameters common to all CGI scripts require "configure.pl"; }}} {{{#!diff numbers=off --- dspam.cgi.orig 2014-06-25 12:45:46.380605000 +0200 +++ dspam.cgi 2014-06-25 13:20:14.042463887 +0200 @@ -19,10 +19,10 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. use strict; +use Time::CTime; use Time::Local; use vars qw { %CONFIG %DATA %FORM %LANG $MAILBOX $CURRENT_USER $USER $TMPFILE}; use vars qw { $CURRENT_STORE }; -require "ctime.pl"; # Read configuration parameters common to all CGI scripts require "configure.pl"; }}} Dodatkowo trzeba "utworzyć" pliki na podstawie plików przykładowych: {{{#!shell numbers=off cp -p configure.pl.sample configure.pl cp -p admins.sample admins }}} Można skorzystać z poniższych patchy: {{{#!diff numbers=off --- configure.pl.sample 2014-06-25 12:45:46.378605000 +0200 +++ configure.pl 2014-06-25 12:57:39.982557075 +0200 @@ -45,11 +45,11 @@ $CONFIG{'MAX_COL_LEN'} = 50; # Max chars in list columns $CONFIG{'SORT_DEFAULT'} = "Rating"; # Show quarantine by "Date" or "Rating" $CONFIG{'3D_GRAPHS'} = 1; # 0=graphs in 2D, 1=graphs in 3D -$CONFIG{'OPTMODE'} = "NONE"; # OUT=OptOut IN=OptIn NONE=not selectable -$CONFIG{'LOCAL_DOMAIN'} = "localhost"; +$CONFIG{'OPTMODE'} = "OUT"; # OUT=OptOut IN=OptIn NONE=not selectable +#$CONFIG{'LOCAL_DOMAIN'} = "localhost"; # Add customized settings below -$CONFIG{'LOCAL_DOMAIN'} = "yourdomain.com"; +$CONFIG{'LOCAL_DOMAIN'} = "bsdserwis.com"; $ENV{'PATH'} = "$ENV{'PATH'}:$CONFIG{'DSPAM_BIN'}"; }}} {{{#!diff numbers=off --- admins.sample 2014-06-25 12:45:46.388606000 +0200 +++ admins 2014-06-25 12:56:44.407559896 +0200 @@ -1 +1,2 @@ root +wtps0n }}} == Dodanie uprawnień do katalogu /var/db/dspam == Aby możliwe było czytanie statystyk z przetworzonej poczty, konieczne jest poprawienie uprawnień do plików dspam {{{#!shell numbers=off /usr/local/admin/setfacl-in-dir.sh -z /var/db/dspam/ www r setfacl -m u:www:rx::allow /var/db/dspam/ }}} == Integracja z Apache == === Utworzenia pliku do autentykacji === {{{#!shell numbers=off htpasswd -m -c /var/www/htdocs/virtuals/rtm.bsdserwis.com/authdb/dspamdb wtps0n }}} === .htaccess === Zawartość pliku '''/usr/local/www/dspam/.htaccess''': {{{ AuthName "Dspam Control Center" AuthType Basic AuthUserFile /var/www/htdocs/virtuals/rtm.bsdserwis.com/authdb/dspamdb require valid-user }}} === Konfiguracja Apache === Zawartość pliku '''/usr/local/etc/apache22/Includes/common.dspam.directory.conf''': {{{ # --- definicja katalogu z plikami/skryptami webowymi -------------------- # <Directory /usr/local/www/dspam> Options Indexes FollowSymLinks ExecCGI AllowOverride AuthConfig Order allow,deny Allow from all <IfModule mod_php5.c> php_value default_charset "utf-8" </IfModule> </Directory> }}} A następnie wykonanie aliasu (najlepiej dla witryny https): {{{ Alias /dspam/ /usr/local/www/dspam/ }}} = Nauczanie dspam = Na podstawie powyższej dokumentacji można dokonywać nauczania dspam poprzez przesyłanie maili na następujące adresy: 1. spam@spam.spam 1. ham@ham.ham Inne próby mogą się zakończyć niepowodzeniem. Wynika to z konfiguracji zapisanej w '''dspam_filter_access.pcre''' oraz '''transport.px''' (patrz konfiguracja powyżej) = Przydatne linki w sieci internet = Lista linków, które były pomocne przy utworzeniu powyższego przepisu: 1. http://tobias.schroepf.de/doku/doku.php?id=linux:postfix_dspam_and_clamav 1. http://wiki.linuxwall.info/doku.php/en:ressources:dossiers:dspam |
Spis Treści
- Uruchomienie filtrowania poczty za pomocą dspam
- Czyszczenie bazy danych ze starych wpisów
- Instalacja interfejsu webowego
- Nauczanie dspam
- Przydatne linki w sieci internet
Uruchomienie filtrowania poczty za pomocą dspam
Dspam to alternatywa do bogofiltra czy mocno rozbudowanego spamd oraz amavisd-new. Dspam potrafi przekazać maila do sprawdzenia do silnika antywirusowego ClamAV, tak więc dla postfixa jest tylko jeden content_filter.
Zainstalowanie dspam
Wszystko zostało przedstawione w etapie instalacji serwera pocztowego
Przygotowanie bazy danych
Kolejnym krokiem jest przygotowanie bazy danych (PostgreSQL):
createuser -U pgsql -DERS dspam
createdb -U pgsql -E UTF8 -O dspam dspam_db
createlang -U pgsql plpgsql dspam_db
Wgranie schematu do bazy danych
Jest gotowy skrypt SQLowy, który pozwala na założenie bazy danych dla dspam:
cat /usr/local/share/examples/dspam/pgsql/pgsql_objects.sql | psql -U pgsql dspam_db
cat /usr/local/share/examples/dspam/pgsql/virtual_users.sql | psql -U pgsql dspam_db
Dopisanie konta dspam do dspam_virtual_uids
W logach przy próbie nauki (dspam-retrain) pojawiały się błędy typu Unable to find a valid signature. Aborting. Potrzeba dopisania specjalnego wirtualnego użytkownika do tabeli wirtualnych identyfikatorów:
INSERT INTO dspam_virtual_uids (username) VALUES ('dspam')
Zmiana właściciela obiektów w bazie danych
echo '\dt' | psql -U pgsql dspam_db | awk '/public/ {print "ALTER TABLE",$3,"OWNER TO dspam;";}' | psql -U pgsql dspam_db
echo '\ds' | psql -U pgsql dspam_db | awk '/public/ {print "ALTER SEQUENCE",$3,"OWNER TO dspam;";}' | psql -U pgsql dspam_db
Konfigurowanie dspam.conf
Plik konfiguracyjny to /usr/local/etc/dspam.conf:
# Katalog domowy do przechowywania wszelkich danych
#
Home /var/db/dspam
# Sterownik do bazy danych (zgodnie z wyborem przy instalacji)
#
StorageDriver /usr/local/lib/dspam/libpgsql_drv.so
# Agent do dostarczenia poczty po sprawdzeniu poczty
#
#TrustedDeliveryAgent "/usr/libexec/mail.local"
TrustedDeliveryAgent "/usr/local/cyrus/bin/deliver $u"
# sposób alternatywny:
#
DeliveryHost 127.0.0.1
DeliveryPort 10026
DeliveryIdent dspam
DeliveryProto SMTP
# co zrobić, jak się nie uda przekazać do kwarantanny
#
OnFail error
# zaufani użytkownicy
#
Trust root
Trust dspam
Trust apache
Trust mail
Trust mailnull
Trust smmsp
Trust daemon
#Trust nobody
#Trust majordomo
# sposób samonauczania
#
TrainingMode teft
TestConditionalTraining on
# dodatki
#
Feature whitelist
# algortym nauki
#
Algorithm graham burton
# rozbieranie maila na czynniki pierwsze - sposób sprawdzania
#
Tokenizer chain
# PValue: Specify the technique used for calculating Probability Values,
# overriding any defaults configured in the build. These options are:
PValue bcr
# statystyki
#
WebStats on
# ImprobabilityDrive: Calculate odds-ratios for ham/spam, and add to
# X-DSPAM-Improbability headers
#
ImprobabilityDrive on
Preference "trainingMode=TEFT" # { TOE | TUM | TEFT | NOTRAIN } -> default:teft
Preference "spamAction=tag" # { quarantine | tag | deliver } -> default:quarantine
Preference "spamSubject=[SPAM]" # { string } -> default:[SPAM]
Preference "statisticalSedation=5" # { 0 - 10 } -> default:0
Preference "enableBNR=on" # { on | off } -> default:off
Preference "enableWhitelist=on" # { on | off } -> default:on
Preference "signatureLocation=message" # { message | headers } -> default:message
Preference "tagSpam=on" # { on | off }
Preference "tagNonspam=off" # { on | off }
Preference "showFactors=off" # { on | off } -> default:off
Preference "optIn=off" # { on | off }
Preference "optOut=off" # { on | off }
Preference "whitelistThreshold=10" # { Integer } -> default:10
Preference "makeCorpus=off" # { on | off } -> default:off
Preference "storeFragments=off" # { on | off } -> default:off
Preference "localStore=" # { on | off } -> default:username
Preference "processorBias=on" # { on | off } -> default:on
Preference "fallbackDomain=off" # { on | off } -> default:off
Preference "trainPristine=off" # { on | off } -> default:off
Preference "optOutClamAV=off" # { on | off } -> default:off
Preference "ignoreRBLLookups=off" # { on | off } -> default:off
Preference "RBLInoculate=off" # { on | off } -> default:off
# nadpisywanie preferencji przez użytkowników
#
AllowOverride enableBNR
AllowOverride enableWhitelist
AllowOverride fallbackDomain
AllowOverride ignoreGroups
AllowOverride ignoreRBLLookups
AllowOverride localStore
AllowOverride makeCorpus
AllowOverride optIn
AllowOverride optOut
AllowOverride optOutClamAV
AllowOverride processorBias
AllowOverride RBLInoculate
AllowOverride showFactors
AllowOverride signatureLocation
AllowOverride spamAction
AllowOverride spamSubject
AllowOverride statisticalSedation
AllowOverride storeFragments
AllowOverride tagNonspam
AllowOverride tagSpam
AllowOverride trainPristine
AllowOverride trainingMode
AllowOverride whitelistThreshold
AllowOverride dailyQuarantineSummary
# parsowanie nag/l/owk/ow (na podstawie poszukiwa/n rozwi/azania problem/ow z b/l/ednym tokenem)
ParseToHeaders on
ChangeModeOnParse on
ChangeUserOnParse full
# ustawienia do bazy danych PostgreSQL
PgSQLServer /tmp
#PgSQLPort
PgSQLUser dspam
PgSQLPass _haslo_do_zmiany_
PgSQLDb dspam_db
PgSQLUIDInSignature on
PgSQLVirtualTable dspam_virtual_uids
PgSQLVirtualUIDField uid
PgSQLVirtualUsernameField username
HashRecMax 98317
HashAutoExtend on
HashMaxExtents 0
HashExtentSize 49157
HashPctIncrease 10
HashMaxSeek 10
HashConnectionCache 10
Notifications off
PurgeSignatures 14 # Stale signatures
PurgeNeutral 90 # Tokens with neutralish probabilities
PurgeUnused 90 # Unused tokens
PurgeHapaxes 30 # Tokens with less than 5 hits (hapaxes)
PurgeHits1S 15 # Tokens with only 1 spam hit
PurgeHits1I 15 # Tokens with only 1 innocent hit
LocalMX 127.0.0.1
SystemLog on
UserLog on
TrackSources spam
Opt out
# przekazywanie poczty do antywirusa
#
ClamAVPort 3310
ClamAVHost 127.0.0.1
ClamAVResponse accept
# -- CLIENT / SERVER --
#
ServerMode auto
ServerPass.Relay1 "secret"
ServerParameters "--deliver=innocent -d %u"
ServerDomainSocketPath "/var/run/dspam.sock"
ProcessorURLContext on
ProcessorBias on
StripRcptDomain off
## EOF
Utworzenie użytkownika na potrzeby postfixa
pw add user dspam -g mail -d /var/db/dspam -s /sbin/nologin
Dopisanie potrzebnych wpisów w transport.px
W celu dobrego działania nauki dspam konieczne jest dopisanie poniższych linijek w transport.px
# --- dspam ------------------------------------------------------ # spam.spam dspam-retrain:spam ham.ham dspam-retrain:innocent
Utworzenie plików - komunikatów dla retrain
mkdir -p /var/db/dspam/txt/
chgrp mail /var/db/dspam/txt/
echo "Scanned and tagged as SPAM by DSPAM on BSD Serwis spam laboratory" > /var/db/dspam/txt/msgtag.spam
echo "Scanned and tagged as HAM by DSPAM on BSD Serwis spam laboratory" > /var/db/dspam/txt/msgtag.nospam
echo "Scanned and tagged as HAM by DSPAM on BSD Serwis spam laboratory" > /var/db/dspam/txt/msgtag.ham
Czyszczenie bazy danych ze starych wpisów
Aby nie dopuścić do przepełnienia bazy danych, dspam oferuje dwa skrypty, które należy uruchamiać w porach nocnych (może w ramach periodic??). Skrypty mogą powodować obciążenie serwera, stąd zalecenie na godziny nocne.
purge-pe.sql
Skrypt do uruchomienie, jeżeli użytkownicy mogą ustawiać swoje preferencje dla dspam.
purge.sql
Skrypt do uruchomienia, jeżeli ustawienia są tylko globalne.
Więcej informacji można znaleźć w dokumentacji: /usr/local/share/doc/dspam/pgsql_drv.txt.
Instalacja interfejsu webowego
W opcjach instalacji jest możliwość zaznaczenia instalacji interfejsu webowego. Niemniej widać, że aktualnie jest to mocno niedopracowane i wymaga poprawek.
Modyfikacja Makefile
Patrz konfiguracje zapisane w instalacji serwera pocztowego.
Doinstalowanie brakujących modułów PERLa
Aby poprawnie działały skrypty administracyjne, konieczne jest doinstalowanie pakietów do PERLa:
cpan -i Time::CTime
Patchowanie skryptów CGI
Należy zmienić pliki .cgi wg następujących patchy:
--- admin.cgi.orig 2014-06-25 12:45:46.380605000 +0200
+++ admin.cgi 2014-06-25 13:20:23.473464481 +0200
@@ -19,9 +19,9 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
use strict;
+use Time::CTime;
use Time::Local;
use vars qw { %CONFIG %DATA %FORM %LANG };
-require "ctime.pl";
# Read configuration parameters common to all CGI scripts
require "configure.pl";
--- dspam.cgi.orig 2014-06-25 12:45:46.380605000 +0200
+++ dspam.cgi 2014-06-25 13:20:14.042463887 +0200
@@ -19,10 +19,10 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
use strict;
+use Time::CTime;
use Time::Local;
use vars qw { %CONFIG %DATA %FORM %LANG $MAILBOX $CURRENT_USER $USER $TMPFILE};
use vars qw { $CURRENT_STORE };
-require "ctime.pl";
# Read configuration parameters common to all CGI scripts
require "configure.pl";
Dodatkowo trzeba "utworzyć" pliki na podstawie plików przykładowych:
cp -p configure.pl.sample configure.pl
cp -p admins.sample admins
Można skorzystać z poniższych patchy:
--- configure.pl.sample 2014-06-25 12:45:46.378605000 +0200
+++ configure.pl 2014-06-25 12:57:39.982557075 +0200
@@ -45,11 +45,11 @@
$CONFIG{'MAX_COL_LEN'} = 50; # Max chars in list columns
$CONFIG{'SORT_DEFAULT'} = "Rating"; # Show quarantine by "Date" or "Rating"
$CONFIG{'3D_GRAPHS'} = 1; # 0=graphs in 2D, 1=graphs in 3D
-$CONFIG{'OPTMODE'} = "NONE"; # OUT=OptOut IN=OptIn NONE=not selectable
-$CONFIG{'LOCAL_DOMAIN'} = "localhost";
+$CONFIG{'OPTMODE'} = "OUT"; # OUT=OptOut IN=OptIn NONE=not selectable
+#$CONFIG{'LOCAL_DOMAIN'} = "localhost";
# Add customized settings below
-$CONFIG{'LOCAL_DOMAIN'} = "yourdomain.com";
+$CONFIG{'LOCAL_DOMAIN'} = "bsdserwis.com";
$ENV{'PATH'} = "$ENV{'PATH'}:$CONFIG{'DSPAM_BIN'}";
--- admins.sample 2014-06-25 12:45:46.388606000 +0200
+++ admins 2014-06-25 12:56:44.407559896 +0200
@@ -1 +1,2 @@
root
+wtps0n
Dodanie uprawnień do katalogu /var/db/dspam
Aby możliwe było czytanie statystyk z przetworzonej poczty, konieczne jest poprawienie uprawnień do plików dspam
/usr/local/admin/setfacl-in-dir.sh -z /var/db/dspam/ www r
setfacl -m u:www:rx::allow /var/db/dspam/
Integracja z Apache
Utworzenia pliku do autentykacji
htpasswd -m -c /var/www/htdocs/virtuals/rtm.bsdserwis.com/authdb/dspamdb wtps0n
.htaccess
Zawartość pliku /usr/local/www/dspam/.htaccess:
AuthName "Dspam Control Center" AuthType Basic AuthUserFile /var/www/htdocs/virtuals/rtm.bsdserwis.com/authdb/dspamdb require valid-user
Konfiguracja Apache
Zawartość pliku /usr/local/etc/apache22/Includes/common.dspam.directory.conf:
# --- definicja katalogu z plikami/skryptami webowymi --------------------
#
<Directory /usr/local/www/dspam>
Options Indexes FollowSymLinks ExecCGI
AllowOverride AuthConfig
Order allow,deny
Allow from all
<IfModule mod_php5.c>
php_value default_charset "utf-8"
</IfModule>
</Directory>A następnie wykonanie aliasu (najlepiej dla witryny https):
Alias /dspam/ /usr/local/www/dspam/
Nauczanie dspam
Na podstawie powyższej dokumentacji można dokonywać nauczania dspam poprzez przesyłanie maili na następujące adresy:
Inne próby mogą się zakończyć niepowodzeniem. Wynika to z konfiguracji zapisanej w dspam_filter_access.pcre oraz transport.px (patrz konfiguracja powyżej)
Przydatne linki w sieci internet
Lista linków, które były pomocne przy utworzeniu powyższego przepisu:
