Exim с патчем SA exim.
Exim сам по себе умеет обращаться к SpamAssassing для проверки писем на спам. Но при активном использовании SpamAssasing возникают проблемы, чаще всего они не очень опасны на слабонагруженных почтовых серверах, но под средней нагрузкой уже возникают нюансы. Проверка всех писем подряд, не самая лучшая идея, особенно когда писем большого размера идет плотный поток. Сделать ограничения по размеру проверяемого письма, ну то есть допустим проверять письма размером до 2 мегабайт, стандартными средствами очень сложно. Второй нюанс это отсутсвие в стандартной версии карантина. Откуда при желании можно вытянуть письмо.
Этих недостатков лишен exim с патчем sa-exim. Ставится он из портов:
cd /usr/ports/mail/exim-sa-exim make install clean
В новой версии порта exim появился диалог настройки сборки. Очень большой диалог. Тут перечисленны все фитчи exim. Выглядит он так:
┌────────────────────────────────────────────────────────────────────┐ │ Options for exim-sa-exim 4.71+4.2 │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │[ ] ALT_CONFIG_PREFIX Allow alternate configuration files │ │ │ │[ ] AUTH_CRAM_MD5 Enable CRAM-MD5 authentication mechanisms│ │ │ │[X] AUTH_DOVECOT Enable Dovecot authentication mechanisms │ │ │ │[ ] AUTH_PLAINTEXT Enalbe plaintext authentication │ │ │ │[ ] AUTH_RADIUS Enable radius (RFC 2865) authentication │ │ │ │[ ] AUTH_SASL Enable use of Cyrus SASL auth library │ │ │ │[ ] AUTH_SPA Enable Secure Password Authentication │ │ │ │[X] CDB Enable CDB-style lookups │ │ │ │[ ] CONTENT_SCAN Enable exiscan email content scanner │ │ │ │[X] DAEMON Install scripts to run as a daemon │ │ │ │[ ] DCC Enable DCC at ACL support via dccifd │ │ │ │[ ] DEBUG Build with debugging symbols │ │ │ │[X] DNSDB Enable DNS-style lookups │ │ │ │[X] DSEARCH Enable directory-list lookups │ │ │ │[X] EMBEDDED_PERL Enable embedded Perl interpreter │ │ │ │[ ] EXIMON Build eximon monitor (require XFree86!) │ │ │ │[X] ICONV Enable header charset conversion │ │ │ │[ ] IPV6 Enable IPv6 support │ │ │ │[ ] KAS Build with Kaspersky AntiSpam local scan │ │ │ │[X] LMTP RFC2033 SMTP over command pipe transport │ │ │ │[X] LSEARCH Enable wildcarded-file lookups │ │ │ │[X] MAILDIR Enable Maildir mailbox format │ │ │ │[X] MAILSTORE Enable Mailstore mailbox format │ │ │ │[X] MBX Enable MBX mailbox format │ │ │ │[X] MYSQL Link against libmysqlclient library │ │ │ │[ ] NIS Enable NIS-style lookups │ │ │ │[X] OLD_DEMIME Enable old, deprecated demime ACL │ │ │ │[ ] OPENLDAP Link against libldap │ │ │ │[X] PAM Enable PAM authentication mechanisms │ │ │ │[X] PASSWD Enable /etc/passwd lookups │ │ │ │[ ] PGSQL Link against libpq │ │ │ │[ ] READLINE Enable readline(3) library │ │ │ │[ ] SASLAUTHD Enable use of Cyrus SASL auth daemon │ │ │ │[X] SA_EXIM SA-Exim support │ │ │ │[ ] SPF Enable Sender Policy Framework checking │ │ │ │[ ] SQLITE Enable SQLite lookups │ │ │ │[ ] SRS Enable Sender Rewriting Scheme │ │ │ │[ ] SRS_ALT Enable alternative SRS library │ │ │ │[X] SUID Install the exim binary suid root │ │ │ │[X] TCP_WRAPPERS Enable /etc/hosts.allow access control │ │ │ │[X] TLS Link against OpenSSL │ │ │ │[ ] WISHLIST Include the unsupported patches │ │ │ │[ ] XCLIENT Enable XCLIENT command in exim │ │ ├─└────.(+)────────────────────────────────────────────────────────┘─┤ │ [ OK ] Cancel │ └────────────────────────────────────────────────────────────────────┘
Если у вас не стоит SpamAssassing, то он будет установлен по депендам.
Диалог настройки сборки SpamAssassing выглядит так:
┌────────────────────────────────────────────────────────────────────┐ │ Options for p5-Mail-SpamAssassin 3.3.0_2 │ │ ┌────────────────────────────────────────────────────────────────┐ │ │ │ [X] AS_ROOT Run spamd as root (recommended) │ │ │ │ [X] SPAMC Build spamd/spamc (not for amavisd) │ │ │ │ [X] SACOMPILE sa-compile │ │ │ │ [X] DKIM DKIM/DomainKeys Identified Mail │ │ │ │ [X] SSL Build with SSL support for spamd/spamc │ │ │ │ [X] GNUPG Install GnuPG (for sa-update) │ │ │ │ [ ] MYSQL Add MySQL support │ │ │ │ [ ] PGSQL Add PostreSQL support │ │ │ │ [ ] RAZOR Add Vipul''s Razor support │ │ │ │ [X] SPF_QUERY Add SPF query support │ │ │ │ [X] RELAY_COUNTRY Relay country support │ │ │ │ [ ] DCC Add DCC support (see LICENSE) │ │ ├─└────────────────────────────────────────────────────────────────┘─┤ │ [ OK ] Cancel │ └────────────────────────────────────────────────────────────────────┘
После того, как все соберется, можно переходить к настройке.
Начнем с того, что запустим SpamAssasing.
Разрешаем его запуск:
echo 'spamd_enable="YES"'>>/etc/rc.conf
и запускаем его:
/usr/local/etc/rc.d/sa-spamd start
Теперь по настройкам sa-exim. У него отдельный файл настроек sa-exim.conf, выглядит он так(Там немного комментариев, по самым интересным местам):
#Включаем вывод отладочной информации SAEximDebug: 1 #Путь и адрес с портом на котором отвечает spamd SAspamcpath: /usr/local/bin/spamc SAspamcHost: 127.0.0.1 SAspamcPort: 783 #Разрешаем проверять на спам все хосты кроме локальных отправок. SAEximRunCond: ${if and {{def:sender_host_address} {!eq {$sender_host_address}{127.0.0.1}} {!eq {$h_X-SA-Do-Not-Run:}{Yes}} } SAEximRejCond: ${if !eq {$h_X-SA-Do-Not-Rej:}{Yes} {1}{0}} #Проверяем 250 килобайт письма SAmaxbody: 256000 #При включении опции SATruncBodyCond будет происходить проверка любого сообщения #Просто сообщение будет проверенно частично, в соответствии с ограничением # SAmaxbody. Если же эта опция не включена, большие сообщения не будут проверяться. #При проверке части сообщения, возможны ложные срабатывания. SATruncBodyCond: 0 SARewriteBody: 0 SAPrependArchiveWithFrom: 1 SAmaxarchivebody: 20971520 SAerrmaxarchivebody: 1073741824 SAmaxrcptlistlength: 0 SAaddSAEheaderBeforeSA: 1 #Эти настройки отвечают за сохранение на диск сообщений, при проверке которых возникли #проблемы во взаимодействии со SpamAssassing SAtimeoutsave: /var/spool/exim/SAtimeoutsave SAtimeoutSavCond: 1 SAerrorsave: /var/spool/exim/SAerrorsave SAerrorSavCond: 1 SAtemprejectonerror: 0 SAteergrubetime: 900 SAteergrubeSavCond: 1 SAteergrubesave: /var/spool/exim/SAteergrube SAteergrubeoverwrite: 1 SAdevnullSavCond: 1 SAdevnullsave: /var/spool/exim/SAdevnull #Не принимать сообщения с 5 балами SApermreject: 5.0 #Сохранять их в карантин SApermrejectSavCond: 1 SApermrejectsave: /var/spool/exim/SApermreject #Временный отказ в приеме сообщения, реализации greylistа SAtempreject: 4.0 SAtemprejectSavCond: 1 SAtemprejectsave: /var/spool/exim/SAtempreject SAtemprejectoverwrite: 1 SAgreylistiswhitestr: GREYLIST_ISWHITE SAgreylistraisetempreject: 3.0 SAspamacceptsave: /var/spool/exim/SAspamaccept SAspamacceptSavCond: 0 SAnotspamsave: /var/spool/exim/SAnotspam SAnotspamSavCond: 0 #Сообщения которые выдает sa-exim SAmsgteergrubewait: Wait for more output SAmsgteergruberej: Please try again later SAmsgpermrej: Rejected SAmsgtemprej: Please try again later SAmsgerror: Temporary local error while processing message, please contact postmaster.
Перед тем, как запускать sa-exim в работу, нужно сделать еще несколько операций.
Во первых создать директорию, где SpamAssassing будет хранить настройки и кеш сообщений. Поскольку со спамассасином общается exim от имени mailnull, то директорию нужно создавать в домашнем каталоге пользователя mailnull:
mkdir /var/spool/mqueue/.spamassassin/
и сделаем mailnull владельцем этой директории:
chown mailnull /var/spool/mqueue/.spamassassin/
В принципе все. exim настраивается независимо, sa-exim мы настроили. Можно запускать exim.
echo 'exim_enable="YES"'>> /etc/rc.conf /usr/local/etc/rc.d/exim start
И немного по работе. Вместе с SpamAssassing идет sa-update, это обновлялка сигнатур спама. Я обычно запускаю его раз в сутки по крону. С помощью такого скрипта:
less /root/sh/bin/saupdate.sh #!/bin/sh /usr/local/bin/sa-update && /usr/local/etc/rc.d/sa-spamd reload
И переодически выгружаб пролазящий спам в mbox ящик spam и натравливаю на него sa-learn.
sa-learn --mbox -u mailnull --spam spam
Все это дает возможность более менее спокойно читать почту.
1 комментарий
Other Links to this Post
RSS-лента комментариев к этой записи. TrackBack URI



By Aleksey, 23.08.2010 @ 02:09
Интересно а если Exim уже установлен и настроен можно ставить sa-exim?