Устанока SpamAssassin (Postfix, MySQL, SSL, WebUsePpref)

Published on Апрель 23, 2009 by   ·   Комментариев нет

Устанока SpamAssassin, Postfix, MySQL, WebUsePpref 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 Итак… mu legend redzen для полного счастья нам необходимо будет установить следующие пакеты:

 rpm -i perl-Digest-SNA1* rpm -i perl-Digest-SMAC* rpm -i perl-HTML-Target* rpm -i perl-HTML-Parser* rpm -i perl-Net-DNSr* rpm -i perl-Time-HiResr* rpm -i spamassassin*

Если это SuSE — это будет:

 mail-relay:~ # yast

— и т.д, если RedHat то :

 mail-relay:~ # up2date spamassassin

1.) Установка Postfix Файл /etc/postfix/main.cf выглядит так:

 mail_spool_directory = /var/mail canonical_maps = hash:/etc/postfix/canonical virtual_maps = hash:/etc/postfix/virtual relocated_maps = hash:/etc/postfix/relocated transport_maps = hash:/etc/postfix/transport sender_canonical_maps = hash:/etc/postfix/sender_canonical masquerade_exceptions = root masquerade_classes = envelope_sender, header_sender, header_recipient masquerade_domains = gennadi.ru mydomain = gennadi.ru myorigin = $mydomain myhostname = mail-relay.gennadi.ru internal_mail = 192.168.0.2 #(Ваш Domino Mail-Server) program_directory = /usr/lib/postfix inet_interfaces = all mydestination = $myhostname, localhost.$mydomain defer_transports = disable_dns_lookups = no relayhost = content_filter = mailbox_command = mailbox_transport = cyrus fallback_transport = cyrus smtpd_sender_restrictions = hash:/etc/postfix/access smtpd_relay_reject = no smtpd_client_restrictions = smtp_always_send_ehlo = yes smtpd_helo_required = no smtpd_helo_restrictions = strict_rfc821_envelopes = no smtpd_recipient_restrictions = permit_mynetworks,permit_mx_backup,permit_sasl_authenticated,check_rel ay_domains broken_sasl_auth_clients = yes smtp_sasl_auth_enable = yes smtp_sasl_security_options = noanonymous smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd smtpd_sasl_auth_enable = yes smtpd_use_tls = yes smtpd_tls_key_file = /etc/ssl/certs/cert.pem smtpd_tls_cert_file = /etc/ssl/certs/cert.pem smtpd_tls_CAfile = /etc/ssl/certs/cert.pem smtpd_tls_loglevel = 3 smtpd_tls_received_header = yes smtpd_tls_session_cache_timeout = 3600s tls_random_source = dev:/dev/urandom alias_maps = hash:/etc/aliases mailbox_size_limit = 51200000 message_size_limit = 10240000

2.) В файл /etc/postfix/transport внесём следующую строку:

 gennadi.ru smtp:[192.168.0.2 ]

и актуализируем transport.db

 mail-relay:~ # postmap /etc/postfix/transport

3.) В файл /etc/postfix/master.cf внесём следующие изменения:

 # # service type private unpriv chroot wakeup maxproc command + args # (yes) (yes) (yes) (never) (100) # smtp inet n - n - - smtpd smtps inet n - n - - smtpd -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes #submission inet n - n - - smtpd # -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes #628 inet n - n - - qmqpd pickup fifo n - n 60 1 pickup cleanup unix n - n - 0 cleanup qmgr fifo n - n 300 1 qmgr #qmgr fifo n - n 300 1 nqmgr #tlsmgr fifo - - n 300 1 tlsmgr rewrite unix - - n - - trivial-rewrite bounce unix - - n - 0 bounce defer unix - - n - 0 bounce flush unix n - n 1000? 0 flush proxymap unix - - n - - proxymap smtp unix - - n - - smtp relay unix - - n - - smtp # -o smtp_helo_timeout=5 -o smtp_connect_timeout=5 showq unix n - n - - showq error unix - - n - - error local unix - n n - - local virtual unix - n n - - virtual #lmtp unix - - n - - lmtp #localhost:10025 inet n - n - - smtpd -o content_filter= # # Interfaces to non-Postfix software. Be sure to examine the manual # pages of the non-Postfix software to find out what options it wants. # # maildrop.  <a href="https://www.mu2legendzen.com/">buy mu legend zen</a> See the Postfix MAILDROP_README file for details. # maildrop unix - n n - - pipe flags=DRhu user=vmail argv=/usr/local/bin/maildrop -d ${recipient} cyrus unix - n n - - pipe flags=R user=cyrus argv=/usr/lib/cyrus/bin/deliver -e -m ${extension} ${user} uucp unix - n n - - pipe flags=Fqhu user=uucp argv=uux -r -n -z -a$sender - $nexthop!rmail ($recipient) ifmail unix - n n - - pipe flags=F user=ftn argv=/usr/lib/ifmail/ifmail -r $nexthop ($recipient) bsmtp unix - n n - - pipe flags=Fq. user=foo argv=/usr/local/sbin/bsmtp -f $sender $nexthop $recipient vscan unix - n n - 10 pipe user=vscan argv=/usr/sbin/amavis ${sender} ${recipient} procmail unix - n n - - pipe flags=R user=nobody argv=/usr/bin/procmail -t -m /etc/procmailrc ${sender} ${recipient} filter unix - n n - - pipe user=spamfilter argv=/usr/local/bin/spamfilter.sh -f $(sender) -- $(recipient) smtp inet n - y - - smtpd -o content_filter=filter:

4.) Создайте SSL Cerifikat для Postfix

 mail-relay: # openssl req -new -x509 -sha1 -extensions v3_ca -nodes -days 365 -out cert.pem

Получили два файла — privkey.pem и cert.pem. Теперь:

 mail-relay: # cat privkey.pem cert.pem > /etc/ssl/certs/server.crt mail-relay: # mv -f privkey.pem /etc/ssl/certs/server.key

5.) Создадим юзера spamfilter, от имени которого будет выполняться скрипт spamfilter.sh . mu legend zen online

 mail-relay:~ # useradd -s /bin/false -d /var/spool/filter spamfilter mail-relay:~ # mkdir /var/spool/filter mail-relay:~ # chown spamfilter:mail /var/spool/filter

6.) Этот скрипт spamfilter.sh поместим в директорию /usr/local/bin.

 --------------------------------- #!/bin/sh INSPECT_DIR=/var/spool/filter SENDMAIL="/usr/sbin/sendmail -i" SPAMASSASSIN=/usr/bin/spamc EX_TEMPFAIL=75 EX_UNAVAILABLE=69 cd $INSPECT_DIR || { echo $INSPECT_DIR does not exist; exit $EX_TEMPFAIL; } # Clean up when done or when aborting.  <a href="https://www.mu2legendzen.com/mu-legend-zen">mu legend zen for sale</a> trap "rm -f in.$$; rm -f out.$$" 0 1 2 3 15 cat | $SPAMASSASSIN > out.$$ || { echo Message content rejected; exit $EX_UNAVAILABLE; } $SENDMAIL "$@" < out.$$ exit $? ---------------------------------

7.) Конфигурация SpamAssissin. В директории /etc/mail/spamassassin найдите файл local.cf и запишите туда нижеследующие строки:

 required_hits 5 rewrite_header 1 report_safe 1 use_bayes 1 auto_learn 1 use_terse_report 1 always_add_headers 1 fold_headers 1 spam_level_stars 1 spam_level_char * rewrite_subject 1 subject_tag !!!!*****SPAM*****!!!! ok_languages ru ok_locales en use_razor1 1 use_razor2 1 use_pyzor 1 use_dcc 1 skip_rbl_checks 0 body VIAGRA /viagra/i body PENIS /penis/i score VIAGRA 2 score PENIS 2 blacklist_from *@msn.com blacklist_from *@hotmail.com whitelist_from *@gennadi.ru

Это простая конфигурация ( для примера ), где я указал, что письма содержащие слова VIAGRA и PENIS или от отправителей *@msn.com и *@hotmail.com будут признаны как spam. Письма от отправителей *@gennadi.ru будут свободно проходить. Сконфигурируйте его для своей сети и своих нужд. В Google достаточно примеров по конфигурации этого файла.

 mail-relay:~ # postfix reload mail-relay:~ # /etc/init.d/postfix restart mail-relay:~ # /etc/init.d/spamd restart

8.) Что бы все письма из интернета проходили проверку на spam, сделайте на вашем firewall'e NAT к хосту mail-relay.gennadi.ru на порт 25 ( smtp) и порт 465 ( smtps ). 9.) Test Теперь можно послать письмо из интернета локальному юзеру. В моём примере это gennadi@gmx.net посылает письмо на адрес gennadi@gennadi.ru. mu legend zen for sale

 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] <div style="display: none"><a href="http://wikiexback.com/getting-your-ex-back-the-groundwork/" title="How To Get Your Ex Back Christian">How To Get Your Ex Back Christian</a></div>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.  <a href="https://www.goldufo.com/mu-legend-gold">mu legend zen for sale</a> 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) 11.) Создайте SpamAssassin MySQL-БД Таблица userpref

 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 &#039;help;&#039; or &#039;\h&#039; for help. Type &#039;\c&#039; 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 &#039;spampassword&#039;; Query OK, 0 rows affected (0.12 sec) mysql>quit mail-relay:~ #

12.) В директории /etc/mail/spamassassin найдите файл local.cf и запишите туда нижеследующие строки:

 user_scores_dsn DBI:mysql:spamassassin:localhost user_scores_sql_username spamassassin user_scores_sql_password spampassword user_scores_sql_table userpref

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 внесите следующие изменения :

 $prefs_source = "db"; $db_host = "localhost"; $db_username = "spamassassin"; $db_password = &#039;spampassword; $db_database = "spamassassin"; $db_sauser = $PHP_AUTH_USER;

15.) Пароль для login spamassassin'a через Browser:

 mail-relay: # mkdir /srv/www/passwd/ mail-relay: # mkdir /srv/www/passwd/spamassassin mail-relay: # htpasswd -c /srv/www/passwd/spamassassin/users spamassassin New password: spampassword Re-type new password: spampassword mail-relay: # echo "mail:spamassassin" > /srv/www/passwd/spamassassin/group

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&#039; under # built time. Keep in mind that if you&#039;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&#039;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 [/cc] У SuSE и UnitedLinux необходимо выполнить следуюшие приказы:

 mail-relay: # SuSEconfig mail-relay: # rcapache restart

У других дистрибутивов

 mail-relay: # service apache restart

или mail-relay: # /etc/init.d/apache restart [/cc] https://mail-relay.gennadi.ru/webuserprefs 17.) Дополнительные возможности версии SpamAssissin 2.55 Одна из важных функций этой версии даёт возможность обучать SpamAssissin делать различие между SPAM и NOSPAM. В SpamAssissin интегрирован Bayesian Filter, который активируется приказом sa-learn. buy mu legend redzen Сначала пользователь собирает до 1000 SPAM и NOSPAM(HAM) писем и передаёт SpamAssissin'у :

 mail-relay: # sa-learn -- spam /path/to/spam/ordner mail-relay: # sa-learn -- ham /path/to/nospam/ordner

Так же учиться SpamAssissin автоматически различать письма SPAM от NOSPAM и вводит их в BAYES-базу данных (Autolearning). После того как SpamAssissin выучит достаточно правил и соберёт их в BAYES-базе данных, эти правила автоматически активируются. Ну вот и всё ….


Смотрите также:

Readers Comments (Комментариев нет)

Comments are closed.



Exchange 2007

Проведение мониторинга Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 3)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Проведение мониторинга Exchange 2007 с помощью диспетчера System ... [+]

Практическое рассмотрение перехода с Exchange 2003 на Exchange 2007 (часть 1)

Введение В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 2)

Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть ... [+]

Мониторинг Exchange 2007 с помощью диспетчера System Center Operations Manager 2007 (часть 2)

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ... [+]

Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 5)

Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам: Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 1) ... [+]

Установка и настройка Exchange 2007 из командной строки (Часть 3)

If you missed the previous parts in this article series please read: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (часть 1)

Инструмент ExRCA Текущий выпуск инструмента предоставляется только в целях тестирования и оснащен 5 опциями: Тест подключения Outlook 2007 Autodiscover Тест подключения Outlook 2003 RPC ... [+]

Развертывание сервера Exchange 2007 Edge Transport (часть 5)

Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам: Развертывание сервера Exchange 2007 Edge Transport (часть 1) Развертывание ... [+]

Установка и настройка Exchange 2007 из командной строки (часть 2)

Если вы пропустили первую статью данного цикла, пожалуйста, перейдите по ссылке: Exchange 2007 Install and Configuration from the command line (Part ... [+]

Использование интегрированных сценариев Using Exchange Server 2007 – часть 2: генерирование отчетов агента Transport AntiSpam Agent

Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Использование интегрированных сценариев Using Exchange Server 2007 – часть ... [+]