Mail-relay (со Spam-Фильтром) принимает почту из интернета,
анализирует её и передаёт на локальный Mail-Server ( напр. Domino)
Домен: gennadi.ru
Mail-relay: mail-relay.gennadi.ru 192.168.0.1
Mail-Server Domino:domino.gennadi.ru 192.168.0.2
Итак... для полного счастья нам необходимо будет установить следующие
пакеты:
Это простая конфигурация ( для примера ), где я указал, что письма
содержащие слова VIAGRA и PENIS или от отправителей *@msn.com и
*@hotmail.com будут признаны как spam. Письма от отправителей
*@gennadi.ru будут свободно проходить.
Сконфигурируйте его для своей сети и своих нужд.
В Google достаточно примеров по конфигурации этого файла.
8.) Что бы все письма из интернета проходили проверку на spam,
сделайте на вашем firewall'e NAT к хосту mail-relay.gennadi.ru на порт
25 ( smtp) и порт 465 ( smtps ).
9.) Test
Теперь можно послать письмо из интернета локальному юзеру.
В моём примере это gennadi@gmx.net посылает письмо на адрес
gennadi@gennadi.ru.
mail-relay:~ # tail -fn 100 /var/log/mail
Jan 25 16:37:33 mail-relay postfix/smtpd[7484]: starting TLS engine
Jan 25 16:37:33 mail-relay postfix/smtpd[7484]: connect from unknown[213.165.64.20]
Jan 25 16:37:33 mail-relay postfix/smtpd[7484]: 93F9924C9E: client=unknown[213.165.64.20]
Jan 25 16:37:33 mail-relay postfix/cleanup[7486]: 93F9924C9E: message-id=<16175.1075044591@www15.gmx.net>
Jan 25 16:37:34 mail-relay postfix/qmgr[1555]: 93F9924C9E: from=<gennadi@gmx.net>, size=897, nrcpt=1 (queue active)
Jan25 16:37:34 mail-relay postfix/smtpd[7484]: disconnect from unknown[213.165.64.20]
Jan 25 16:37:34 mail-relay spamd[7483]: connection from localhost [127.0.0.1] at port 34496
Jan 25 16:37:34 mail-relay spamd[7491]: info: setuid to spamfilte succeeded
Jan 25 16:37:34 mail-relay spamd[7491]: processing message <16175.1075044591@www15.gmx.net> for spamfilter:501.
Jan 25 16:37:34 mail-relay spamd[7491]: clean message (0.4/2.0) for spamfilter:501 in 0.7 seconds, 872 bytes.
Jan 25 16:37:35 mail-relay postfix/pickup[7265]: 3F4D624CDB: uid=501 from=<gennadi@gmx.net>
Jan 25 16:37:35 mail-relay postfix/cleanup[7486]: 3F4D624CDB: message-id=<16175.1075044591@www15.gmx.net>
Jan 25 16:37:35 mail-relay postfix/pipe[7487]: 93F9924C9E: to=<gennadi@gennadi.ru>, relay=filter, delay=2, status=sent (mail-relay.gennadi.ru)
Jan 25 16:37:35 mail-relay postfix/qmgr[1555]: 3F4D624CDB: from=<gennadi@gmx.net>, size=1168, nrcpt=1 (queue active)
Jan 25 16:37:35 mail-relay postfix/smtp[7496]: 3F4D624CDB: to=<gennadi@gennadi.ru>, relay=192.168.0.2[192.168.0.2], delay=0, status=sent (250 Ok: queued as BBA504A75)
Письмо от gennadi@gmx.net, пройдя проверку через spamfilter направлено
на Domino-Server для юзера gennadi@gennadi.ru ....
10.) MySQL и WebUserPrefs.
Есть возможность связать SpamAssassin с MySQL'ем и управлять через
вебброузер.
Для этого нужен пакет SpamAssissin 2.55 - не ниже!.
Здесь MySQL (http://www.mysql.com/downloads/)
Здесь WebUserPrefs (http://freshmeat.net/projects/webuserprefs/?topic_id=29)
CREATE TABLE userpref (
username varchar(100) NOT NULL,
value varchar(100) NOT NULL,
prefid int(11) NOT NULL auto_increment,
PRIMARY KEY (prefid),
INDEX (username)
) TYPE=MyISAM;
mail-relay:~ # mysql -h localhost -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 159 to server version: 3.23.55-Max-log
Type 'help;' or 'h' for help. Type 'c' to clear the buffer.
mysql> create database spamassassin;
Query OK, 1 row affected (0.19 sec)
mysql> use spamassassin;
Database changed
mysql> CREATE TABLE userpref (
-> username varchar(100) NOT NULL,
-> value varchar(100) NOT NULL,
-> prefid int(11) NOT NULL auto_increment,
-> PRIMARY KEY (prefid),
-> INDEX (username)
-> ) TYPE=MyISAM;
Query OK, 0 rows affected (0.03 sec)
mysql>GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER ON
spamassassin.* TO spamassassin@localhost identified by 'spampassword';
Query OK, 0 rows affected (0.12 sec)
mysql>quit
mail-relay:~ #
12.) В директории /etc/mail/spamassassin найдите файл local.cf и
запишите туда нижеследующие строки:
13.) В файл /etc/sysconfig/spamd внесите следующие изменения ( эти
опции нужны для работы с MySQL'ем ):
## Path: Network/Mail/Spamassassin
## Description: Arguments for the spam daemon
## Type: string
## Default: "-d -c -a -L"
## ServiceRestart: spamd
SPAMD_ARGS="-d -x -q "
Примечание: У RedHat этот файл называется /etc/sysconfig/spamassassin
14.) Распакуйте сгруженный пакет WebUserPrefs и установите его в
Root-директорию - вашего Web-Server'a Apache - "/srv/www/htdocs/"
В файле /srv/www/htdocs/webuserprefs/config.php внесите следующие
изменения :
16.) Apache, SSL и spamassassin-aliases
В директории /etc/httpd найдите такой файл httpd.conf и
подредактируйте его под вашу систему:
<VirtualHost _default_:443>
# General setup for the virtual host
DocumentRoot "/srv/www/htdocs"
ServerName mail-relay.gennadi.ru
ServerAdmin [39]webadmin@gennadi.ru
ErrorLog /var/log/httpd/error_log
TransferLog /var/log/httpd/access_log
# Server Certificate:
# Point SSLCertificateFile at a PEM encoded certificate. If
# the certificate is encrypted, then you will be prompted for a
# pass phrase. Note that a kill -HUP will prompt again. A test
# certificate can be generated with `make certificate' under
# built time. Keep in mind that if you've both a RSA and a DSA
# certificate you can configure both in parallel (to also allow
# the use of DSA ciphers, etc.)
SSLCertificateFile /etc/ssl/certs/server.crt
#SSLCertificateFile /etc/httpd/ssl.crt/server-dsa.crt
# Server Private Key:
# If the key is not combined with the certificate, use this
# directive to point at the key file. Keep in mind that if
# you've both a RSA and a DSA private key you can configure
# both in parallel (to also allow the use of DSA ciphers, etc.)
SSLCertificateKeyFile /etc/ssl/certs/server.key
#SSLCertificateKeyFile /etc/ssl/certs/server.key
Alias /spamassassin/ /srv/www/htdocs/spamassassin
<Directory /srv/www/htdocs/spamassassin/>
Options None
SSLRequireSSL
order deny,allow
deny from all
AuthType Basic
AuthUserFile /srv/www/passwd/spamassassin/users
AuthGroupFile /srv/www/passwd/spamassassin/group
AuthName "SpamAssassin Admin"
require group mail
Satisfy Any
</Directory>
В директории /etc/ найдите такой файл php.ini найдите такую строку:
register_globals = Off
замените на:
register_globals = On
В директории /etc/sysconfig найдите такой файл apache найдите такую
строку:
HTTPD_SEC_MOD_SSL=no
замените на:
HTTPD_SEC_MOD_SSL=yes
У SuSE и UnitedLinux необходимо выполнить следуюшие приказы:
17.) Дополнительные возможности версии SpamAssissin 2.55
Одна из важных функций этой версии даёт возможность обучать
SpamAssissin делать различие между SPAM и NOSPAM.
В SpamAssissin интегрирован Bayesian Filter, который активируется
приказом sa-learn. Сначала пользователь собирает до 1000 SPAM и
NOSPAM(HAM) писем и передаёт SpamAssissin'у :
Так же учиться SpamAssissin автоматически различать письма SPAM от
NOSPAM и вводит их в BAYES-базу данных (Autolearning). После того как
SpamAssissin выучит достаточно правил и соберёт их в BAYES-базе
данных, эти правила автоматически активируются.