<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>jared.kiev.ua &#187; SpamAssassin</title>
	<atom:link href="http://jared.kiev.ua/topics/freebsd/mail/spamassassin-mail-freebsd/feed/" rel="self" type="application/rss+xml" />
	<link>http://jared.kiev.ua</link>
	<description>Сетап как стиль жизни</description>
	<lastBuildDate>Wed, 07 Mar 2012 19:15:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Exim &#8212; ошибка в конфиге</title>
		<link>http://jared.kiev.ua/2010/07/exim-bug/</link>
		<comments>http://jared.kiev.ua/2010/07/exim-bug/#comments</comments>
		<pubDate>Wed, 14 Jul 2010 11:10:09 +0000</pubDate>
		<dc:creator>jared</dc:creator>
				<category><![CDATA[Exim]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[SpamAssassin]]></category>
		<category><![CDATA[Почта]]></category>
		<category><![CDATA[e-mail]]></category>
		<category><![CDATA[Spamassassin]]></category>

		<guid isPermaLink="false">http://jared.kiev.ua/?p=228</guid>
		<description><![CDATA[<p>К сожалению, в мою <a href="http://jared.kiev.ua/2010/01/isp-mailserver-1-exim/">конфигурацию</a> Экзима закралась ошибка, которая хоть и появлялась редко, была довольно досадной. В частности, при определенных условиях, ACL, который проверяет почту на спам, не видел переменную, в которой хранился адрес адресата и не отрабатывал. В основную статью изменения уже добавлены, решил выложить дополнительный пост для тех, кто ее не будет перечитывать. Итак, надо поправить 2 файла: 500.acl-check-data.conf и configure.</p>
<p><a href="http://jared.kiev.ua/2010/07/exim-bug/" class="more-link">Далее&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>К сожалению, в мою <a href="http://jared.kiev.ua/2010/01/isp-mailserver-1-exim/">конфигурацию</a> Экзима закралась ошибка, которая хоть и появлялась редко, была довольно досадной. В частности, при определенных условиях, ACL, который проверяет почту на спам, не видел переменную, в которой хранился адрес адресата и не отрабатывал. В основную статью изменения уже добавлены, решил выложить дополнительный пост для тех, кто ее не будет перечитывать. Итак, надо поправить 2 файла: 500.acl-check-data.conf и configure.</p>
<p>500.acl-check-data.conf: после &#171;.ifdef USE_SPAMD&#187; добавляем строку:</p>
<pre>warn set acl_m5 = $acl_c_lp
</pre>
<p>configure: после строки &#171;acl_check_rcpt:&#187; вставляем:</p>
<pre>warn set acl_c_lp       = $local_part@$domain</pre>
<p>Перед обоими вставками лучше вставить пустую строку.</p>
]]></content:encoded>
			<wfw:commentRss>http://jared.kiev.ua/2010/07/exim-bug/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Почтовый сервер как у провайдера, часть 2: ClamAV, SpamAssassin, Dovecot</title>
		<link>http://jared.kiev.ua/2010/01/isp-mailserver-2-clam-assassin/</link>
		<comments>http://jared.kiev.ua/2010/01/isp-mailserver-2-clam-assassin/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 15:55:34 +0000</pubDate>
		<dc:creator>jared</dc:creator>
				<category><![CDATA[ClamAV]]></category>
		<category><![CDATA[Dovecot]]></category>
		<category><![CDATA[Exim]]></category>
		<category><![CDATA[FreeBSD]]></category>
		<category><![CDATA[SpamAssassin]]></category>
		<category><![CDATA[Почта]]></category>
		<category><![CDATA[e-mail]]></category>
		<category><![CDATA[Spamassassin]]></category>

		<guid isPermaLink="false">http://jared.kiev.ua/?p=67</guid>
		<description><![CDATA[<p>Продолжим с нашим почтовым сервером, ставим Spamassassin и ClamAV:</p>
<pre># cd /usr/ports/security/clamav
# make config

  ┌────────────────────────────────────────────────────────────────────┐
  │                    Options for clamav 0.95.3                       │
  │ ┌────────────────────────────────────────────────────────────────┐ │
  │ │    [X] ARC           Enable arch archives support              │ │
  │ │    [X] ARJ           Enable arj archives support               │ │
  │ │    [X] LHA           Enable lha archives support               │ │
  │ │    [X] UNZOO         Enable zoo archives support               │ │
  │ │    [X] UNRAR         Enable rar archives support               │ │
  │ │    [ ] MILTER        Compile the milter interface              │ │
  │ │    [ ] LDAP          libmilter was built with LDAP             │ │
  │ │    [X] ICONV         Enable ICONV support                      │ │
  │ │    [ ] STDERR        Print logs to stderr instead of stdout    │ │
  │ │    [ ] EXPERIMENTAL  Build experimental code                   │ │
  ├─└────────────────────────────────────────────────────────────────┘─┤
  │                       [  OK  ]       Cancel                        │
  └────────────────────────────────────────────────────────────────────┘</pre>
<p><a href="http://jared.kiev.ua/2010/01/isp-mailserver-2-clam-assassin/" class="more-link">Далее&#8230;</a></p>
]]></description>
			<content:encoded><![CDATA[<p>Продолжим с нашим почтовым сервером, ставим Spamassassin и ClamAV:</p>
<pre># cd /usr/ports/security/clamav
# make config

  ┌────────────────────────────────────────────────────────────────────┐
  │                    Options for clamav 0.95.3                       │
  │ ┌────────────────────────────────────────────────────────────────┐ │
  │ │    [X] ARC           Enable arch archives support              │ │
  │ │    [X] ARJ           Enable arj archives support               │ │
  │ │    [X] LHA           Enable lha archives support               │ │
  │ │    [X] UNZOO         Enable zoo archives support               │ │
  │ │    [X] UNRAR         Enable rar archives support               │ │
  │ │    [ ] MILTER        Compile the milter interface              │ │
  │ │    [ ] LDAP          libmilter was built with LDAP             │ │
  │ │    [X] ICONV         Enable ICONV support                      │ │
  │ │    [ ] STDERR        Print logs to stderr instead of stdout    │ │
  │ │    [ ] EXPERIMENTAL  Build experimental code                   │ │
  ├─└────────────────────────────────────────────────────────────────┘─┤
  │                       [  OK  ]       Cancel                        │
  └────────────────────────────────────────────────────────────────────┘

# make install clean
# cd /usr/ports/mail/p5-Mail-SpamAssassin/
# make config

   ┌────────────────────────────────────────────────────────────────────┐
   │             Options for p5-Mail-SpamAssassin 3.2.5_4               │
   │ ┌────────────────────────────────────────────────────────────────┐ │
   │ │   [X] AS_ROOT        Run spamd as root (recommended)           │ │
   │ │   [X] SPAMC          Build spamd/spamc (not for amavisd)       │ │
   │ │   [ ] SACOMPILE      sa-compile                                │ │
   │ │   [ ] DKIM           DKIM/DomainKeys Identified Mail           │ │
   │ │   [X] SSL            Build with SSL support for spamd/spamc    │ │
   │ │   [X] GNUPG          Install GnuPG (for sa-update)             │ │
   │ │   [X] MYSQL          Add MySQL support                         │ │
   │ │   [ ] PGSQL          Add PostreSQL support                     │ │
   │ │   [X] RAZOR          Add Vipul's Razor support                 │ │
   │ │   [X] SPF_QUERY      Add SPF query support                     │ │
   │ │   [ ] RELAY_COUNTRY  Relay country support                     │ │
   ├─└────────────────────────────────────────────────────────────────┘─┤
   │                       [  OK  ]       Cancel                        │
   └────────────────────────────────────────────────────────────────────┘
# make install clean</pre>
<p>В дефолтной конфигурации clamav написаны вполне разумные значения, потому файл конфига /usr/local/etc/clamd.conf вышел маленький:</p>
<pre><span style="color: #000000;"># Включаем логгирование. </span>
LogFile /var/log/clamav/clamd.log

<span style="color: #000000;"># Писать ли в лог время события</span>
#LogTime yes

<span style="color: #000000;"># Расположение pid-файла</span>
PidFile /var/run/clamav/clamd.pid

<span style="color: #000000;"># Путь к временному каталогу</span>
TemporaryDirectory /tmp

<span style="color: #000000;"># Путь к базе данных</span>
DatabaseDirectory /var/db/clamav

<span style="color: #000000;"># Демон может работать в локальном режиме, сетевом или обоих сразу.</span>
# Рекомендуется локальный, оставим.

<span style="color: #000000;"># Путь к локальному сокету.</span>
LocalSocket /var/run/clamav/clamd.sock

<span style="color: #000000;"># Удалять сокет-файл после нечистого завершения</span>
FixStaleSocket yes

<span style="color: #000000;"># Работать под указанным юзером</span>
User exim
<span style="color: #000000;">
# Дополнительные группы AllowSupplementaryGroups yes

# Включить e-mail сканер</span>
ScanMail yes</pre>
<p>/usr/local/etc/freshclam.conf:</p>
<pre><span style="color: #000000;"># Путь к каталогу с базой, должен совпадать с путем самого clamav</span>
DatabaseDirectory /var/db/clamav

<span style="color: #000000;"># Путь к лог-файлу</span>
UpdateLogFile /var/log/clamav/freshclam.log

<span style="color: #000000;"># Логгировать ли время</span>
LogTime yes

<span style="color: #000000;"># PID-файл</span>
PidFile /var/run/clamav/freshclam.pid

<span style="color: #000000;"># Пользователь, под которым работать</span>
DatabaseOwner exim

<span style="color: #000000;"># Дополнительные группы</span>
AllowSupplementaryGroups yes

<span style="color: #000000;"># Зеркала для обновления, для Украины - ua</span>
DatabaseMirror db.ua.clamav.net
DatabaseMirror database.clamav.net

<span style="color: #000000;"># Настройки прокси, если кому надо</span>
# Default: disabled
#HTTPProxyServer myproxy.com
#HTTPProxyPort 1234
#HTTPProxyUsername myusername
#HTTPProxyPassword mypass

<span style="color: #000000;"># Исходящий ip-адрес, с которого будут запрашиваться обновления</span>
#LocalIPAddress aaa.bbb.ccc.ddd

<span style="color: #000000;"># Путь к конфигу clamd для его перегрузки с новыми базами</span>
NotifyClamd /usr/local/etc/clamd.conf</pre>
<p>Со SpamAssassin-ом та же история, большинство дефолтных опций нам подходит, /usr/local/etc/mail/spamassassin/local.cf:</p>
<pre><span style="color: #000000;"># Хедеры, которые не принимаем во внимание при проверке</span>
bayes_ignore_header X-Bogosity
bayes_ignore_header X-Spam-Flag
bayes_ignore_header X-Spam-Status</pre>
<p>Теперь включаем Clamd и SpamAssassin и взлетаем:</p>
<pre># chown -R exim:mail /var/log/clamav
# chown -R exim:mail /var/db/clamav
# chown -R exim:mail /var/run/clamav
# chown -R exim:mail /var/run/spamd
# echo clamav_clamd_enable=\"YES\" &gt;&gt; /etc/rc.conf
# echo clamav_freshclam_enable=\"YES\" &gt;&gt; /etc/rc.conf
# echo spamd_flags=\"--socketpath=/var/run/spamd.sock\" &gt;&gt; /etc/rc.conf
# echo spamd_enable=\"YES\" &gt;&gt; /etc/rc.conf
# sa-update
# /usr/local/etc/rc.d/sa-spamd start
# /usr/local/etc/rc.d/clamav-clamd restart
# /usr/local/etc/rc.d/clamav-freshclam start
</pre>
<p>Теперь займемся POP3-сервером,  который будет отдавать почту клиентам. В качестве него мы используем давно проверенное и надежное решение на базе Dovecot. Это многофункциональный сервер, который умеет оба эти протокола, как с поддержкой SSL, так и без, плюс умеет работать с MySQL-базой, что, стобственно, нам и нужно. Итак, начнем:</p>
<pre># cd /usr/ports/mail/dovecot
# make config

 ┌────────────────────────────────────────────────────────────────────┐
 │                    Options for dovecot 1.2.8                       │
 │ ┌────────────────────────────────────────────────────────────────┐ │
 │ │              [X] KQUEUE       kqueue(2) support                │ │
 │ │              [X] SSL          SSL support                      │ │
 │ │              [ ] IPV6         IPv6 support                     │ │
 │ │              [X] LDA          LDA support                      │ │
 │ │              [ ] MANAGESIEVE  ManageSieve support              │ │
 │ │              [ ] GSSAPI       GSSAPI support                   │ │
 │ │              [ ] VPOPMAIL     VPopMail support                 │ │
 │ │              [ ] BDB          BerkleyDB support                │ │
 │ │              [ ] LDAP         OpenLDAP support                 │ │
 │ │              [ ] PGSQL        PostgreSQL support               │ │
 │ │              [X] MYSQL        MySQL support                    │ │
 │ │              [ ] SQLITE       SQLite support                   │ │
 │ │                                                                │ │
 │ │                                                                │ │
 │ │                                                                │ │
 ├─└────────────────────────────────────────────────────────────────┘─┤
 │                       [  OK  ]       Cancel                        │
 └────────────────────────────────────────────────────────────────────┘

# make install clean
</pre>
<p>Пока довкот собирается, напишем ему конфигурационные файлы и положим в /usr/local/etc. Большинство значений по умолчанию достаточно разумны, потому тут пишем только то, что нам надо заменить.</p>
<p>dovecot.conf:</p>
<pre># Каталог для хранения рабочих данных
base_dir = /var/run/dovecot/

# Протоколы, которые будем поддерживать
protocols = imap pop3 imaps pop3s

# Адреса, которые будем слушать, мы слушаем все
listen = *

# Отключать ли авторизацию без SSL
disable_plaintext_auth = no

# Сбрасывать ли клиентские подключения при остановке главного процесса.
# Теоретически с этой опцией можно апгрейдить довкот на ходу
shutdown_clients = no

# Лог-файл для ошибок
log_path = /var/log/dovecot.log

# Лог-файл для остального
info_log_path = /var/log/dovecot-info.log

# На каких адресах ждать соединений с SSL, нам надо на всех
ssl_listen = *

# Включаем SSL
ssl = yes

# Файлы ключа и сертификата SSL
ssl_cert_file = /etc/ssl/certs/mail.pem
ssl_key_file = /etc/ssl/certs/mail.pem

# Каталог, где довкот держит сокеты для логин-процессов
login_dir = /var/run/dovecot/login

# Делать ли chroot для логин-процессов
login_chroot = yes

# Пользователь, под которым запускать логин-процессы. НЕ должен совпадать с тем, под которым работает почтовый сервер
login_user = dovecot

# Надо ли для каждой попытки логина запускать новый процесс
#login_process_per_connection = no

# Приветственное сообщение для клиентов, не будем палиться <img src='http://jared.kiev.ua/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> )
login_greeting = Microsoft POP3 server

# Место и формат хранения пользовательской почты. У нас - Maildir
mail_location = maildir:/var/mail/%d/%n

# Пользователь и группа, под которыми работаем с почтой
mail_uid = exim
mail_gid = mail

# "Привелигированная группа" для доступа к письмам. У нас и так основная - mail, но пусть будет
mail_privileged_group = mail

# Если что - тут включается дебаг
mail_debug = no

# Показывать в top и ps более подробные данные о процессах
verbose_proctitle = yes

# Ограничиваем UID/GID, которым с нами можно вообще работать
first_valid_uid = 500
last_valid_uid = 0
first_valid_gid = 0
last_valid_gid = 0

# Каталоги, куда можно делать chroot
valid_chroot_dirs = /var/mail

protocol imap {

 # Исправление известных глюков с почтовыми клиентами
 imap_client_workarounds = delay-newmail netscape-eoh tb-extra-mailbox-sep
}

protocol pop3 {
 # Поддерживать ли команду LAST из ранних спецификаций POP3
 #pop3_enable_last = no

 # Лочить ли ящик на время сессии
 #pop3_lock_session = no

 # Формат POP3 UIDL идентификатора
 pop3_uidl_format = %08Xu%08Xv

 # Формат POP3 logout сообщения:
 #pop3_logout_format = top=%t/%p, retr=%r/%b, del=%d/%m, size=%s

 # Исправление известных глюков с почтовыми клиентами
 pop3_client_workarounds = outlook-no-nuls oe-ns-eoh
}

# Допустимые символы в логине
auth_username_chars = abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ01234567890.-_@

# Логгирование безуспешных попыток входа с причинами
auth_verbose = no

# Дебаг авторизации
#auth_debug = no

# Если пароль не подходит, записать его в лог
auth_debug_passwords = no

auth default {

 # Список желаемых механизмов авторизации. Допускаются:
 # plain login digest-md5 cram-md5 ntlm rpa apop anonymous gssapi otp skey gss-spnego
 mechanisms = plain login cram-md5

 # База откуда брать пароли
 passdb sql {
 # Путь к файлу конфигурации SQL
 args = /usr/local/etc/dovecot-sql.conf
 }

 # База откуда брать пользовательские данные (путь, uid/gid и т.д.)
 userdb sql {
 # Путь к файлу конфигурации SQL
 args = /usr/local/etc/dovecot-sql.conf
 }

 # Пользователь, под которым проводить авторизацию. По возможности - не root
 user = exim

}
</pre>
<p>dovecot-sql.conf:</p>
<pre># Тип SQL-сервера
driver = mysql

# Параметры соединения с SQL
connect = host=localhost user=vexim password=9gp784whp9w28wy5 dbname=vexim

# Схема хранения паролей
default_pass_scheme = PLAIN-MD5

# Запросы для извлечения данных из БД
password_query = SELECT users.crypt as `password` FROM users,domains WHERE users.username = '%u' AND users.enabled = '1' AND users.type='local' and domains.enabled='1' and domains.domain_id = users.domain_id
user_query = SELECT pop as home, uid, gid FROM users WHERE username = '%u'
</pre>
<p>Вот и все, конфигурация достаточно простая (хотя в дефолтном файле dovecot.conf есть еще большоt количество опций). Теперь запускаем всю конструкцию и тестируем:</p>
<pre># echo dovecot_enable=\"YES\" &gt;&gt; /etc/rc.conf
# /usr/local/etc/rc.d/dovecot restart
# telnet localhost 110
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Microsoft POP3 server
^C
</pre>
<p>Все хорошо, довкот нас приветствует правильно. Дальше уже тестировать будем вживую, почтовыми клиентами, хотя проблем быть не должно.</p>
<p>С сопутствующим софтом вроде закончили, можно <a href="http://jared.kiev.ua/2010/01/isp-mailserver-3-vexim/">ехать дальше</a>.</p>
<p class="post-title"><a href="http://jared.kiev.ua/2010/01/isp-mailserver-1-exim/">Почтовый сервер как у провайдера, часть 1: Exim</a></p>
<p class="post-title"><a href="http://jared.kiev.ua/2010/01/isp-mailserver-2-clam-assassin/">Почтовый сервер как у провайдера, часть 2: ClamAV, SpamAssassin, Dovecot</a></p>
<p class="post-title"><a href="http://jared.kiev.ua/2010/01/isp-mailserver-3-vexim/">Почтовый сервер как у провайдера, часть 3: Vexim</a></p>
<p class="post-title"><a href="http://jared.kiev.ua/2010/01/isp-mailserver-4-start/">Почтовый сервер как у провайдера, часть 4: взлетаем</a></p>
]]></content:encoded>
			<wfw:commentRss>http://jared.kiev.ua/2010/01/isp-mailserver-2-clam-assassin/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Served from: jared.kiev.ua @ 2012-05-20 01:24:28 -->
