RFC zaleca przekierowanie ruchu użytkowików na porty 587 tls oraz 465 ssl natomiast port 25 wykorzystać wyłącznie do komunikacji między serwerami. tpsa poszła o krok dalej i zablokowała port 25.
w Postfixie porty odblokowujemy odhaszowując linie w master.cf
submission inet n - - - - smtpd # port 587 smtps inet n - - - - smtpd # port 465
Na początku tworzymy użytkownika i bazę danych w postgresie :
CREATE USER sauser PASSWORD 'password'; CREATE DATABASE spamassassin OWNER = sauser;
Następnie logujemy sie jako sauser do bazy spamassassin i tworzymy schemat bazy.
Schemat zależy od wersji spamassassin Możemy go ściągnąć ze strony http://svn.apache.org/repos/asf/spamassassin/tags/spamassassin_release_3_3_2/sql/
Następnie edytujemy plik local.cf :
vi /etc/spamassassin/local.cf
loadplugin Mail::SpamAssassin::Plugin::TextCat user_scores_dsn DBI:Pg:database=spamassassin user_scores_sql_username sauser user_scores_sql_password password # Store bayesian data in PostgreSQL bayes_store_module Mail::SpamAssassin::BayesStore::PgSQL bayes_sql_dsn DBI:Pg:database=spamassassin bayes_sql_username sauser bayes_sql_password password # bayes_sql_override_username vmail # nadpisuje użytkownika jeśli chcemy mieć wspólną bazę
Edytujemy plik /etc/defaults/spamassassin
OPTIONS="-x -u vmail -q --max-children 5"
Opcje: -x pozwala na użytkowników których nie ma w systemie -q wskazuje na korzystanie z bazy danych -u vmail z tymi uprawnieniami zostanie uruchomiony spamd
Upewniamy sie że użytkownik jest prawisłowo przekazywany do spamd sprawdzając
/etc/postfix/master.cf
flags=DRhu user=vmail:vmail argv=/usr/bin/spamc -u ${recipient} -e /usr/lib/dovecot/dovecot-lda -f ${sender} -d ${recipient}
-u musi być ustawiony ${recipient} a nie np ${user} o ile użytkownicy przyjmują postać pełnego adresu mail
Na koniec sprawdzamy czy całość działa:
sa-learn -D --spam -u vmail /usr/share/doc/spamassassin/examples/sample-spam.txt
Uruchamiamy wtyczkę markasjunk2 Do pracy wymaga sa-learn
i ustawiamy w pliku konfiguracyjnym
$rcmail_config['markasjunk2_learning_driver'] = cmd_learn; $rcmail_config['markasjunk2_spam_cmd'] = 'sa-learn --spam --username=%u %f'; $rcmail_config['markasjunk2_ham_cmd'] = 'sa-learn --ham --username=%u %f';