Устанока SpamAssassin (Postfix, MySQL, SSL, WebUsePpref)
Published on Апрель 23, 2009 by Support · Комментариев нет
Устанока 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 — это будет:
— и т.д, если 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 '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 и запишите туда нижеследующие строки:
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 = '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' 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 найдите такую строку:
замените на:
В директории /etc/sysconfig найдите такой файл apache найдите такую строку:
замените на: 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-базе данных, эти правила автоматически активируются. Ну вот и всё ….
Смотрите также:
Exchange 2007
Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам:
Проведение мониторинга Exchange 2007 с помощью диспетчера System ...
[+]
Введение
В этой статье из нескольких частей я хочу показать вам процесс, который недавно использовал для перехода с существующей среды Exchange 2003 ...
[+]
Если вы пропустили первую часть этой серии, пожалуйста, прочтите ее по ссылке Использование инструмента Exchange Server Remote Connectivity Analyzer Tool (Часть ...
[+]
Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Мониторинг Exchange 2007 с помощью диспетчера System Center Operations ...
[+]
Если вы пропустили предыдущие части этой серии статей, перейдите по ссылкам:
Подробное рассмотрение подготовки Active Directory для Exchange 2007 (часть 1)
...
[+]
If you missed the previous parts in this article series please read:
Exchange 2007 Install and Configuration from the command line (Part ...
[+]
Инструмент ExRCA
Текущий выпуск инструмента предоставляется только в целях тестирования и оснащен 5 опциями:
Тест подключения Outlook 2007 Autodiscover
Тест подключения Outlook 2003 RPC ...
[+]
Если вы хотите прочитать предыдущие части этой серии статей, перейдите по ссылкам:
Развертывание сервера Exchange 2007 Edge Transport (часть 1)
Развертывание ...
[+]
Если вы пропустили первую статью данного цикла, пожалуйста, перейдите по ссылке: Exchange 2007 Install and Configuration from the command line (Part ...
[+]
Если вы пропустили предыдущую часть этой серии статей, перейдите по ссылке Использование интегрированных сценариев Using Exchange Server 2007 – часть ...
[+]