Dormestmass: Админ — это состояние души

Заметки по мультидоменной связке exim+courier-imapd+dspam+mysql

Настроил сабж на сервере. Всё ставил из портов. До сегодняшнего дня ни с одним из этих софтин не сталкивался, вот и описываю впечатления.

Опции сборки exim:

WITHOUT_IPV6=yes WITHOUT_NIS=yes WITH_MYSQL=yes  WITH_CONTENT_SCAN=yes WITH_TCP_WRAPPERS=yes.

Возникло несколько траблов.

Во-первых, почтовые клиенты напрочь отказывались создавать дополнительные папки. Оутлук ругался, говоря «Invalid mailbox name». Mozilla вообще молчала как партизан.

После поиска на форумах нашёл решение. Как оказалось, для работы с courier-imapd требуется указания префикса в настройках почтового клиента, как показано на картинке.

Следующая проблема возникла через пяток-десяток минут неактивности.

Оутглюк отказался синхронизировать папки, говоря, что соединение с сервером было разорвано, код ошибки — 0x800CCC0F. Причина возникновения этой проблемы в следующем. Почтовый клиент открывает отдельную сессию с имап-сервером на каждую папку. А на сервере в настройках по умолчанию разрешено всего 4 соединения с одного адреса. Причём, как я понял, при попытке синхронизации, оутлук пытаеться открыть ещё отдельную сессию. Вообщем лимит коннектов исчерпываеться и имап-сервер отбивает клиента. Решение — увеличить количество одновременных сессий с одного адреса.

Дальше начал настраивать ssl. Создал самоподписанный сертификат и подпихнул его курьеру. (Вообщето есть скрипты, которыми можно генерировать сертификаты, лежат они в /usr/local/etc/courier-imap. Называються mkimapdcert и mkpop3dcert, но я генерировал руками, по привычке :) ). Вообщем отказался курьер работать с моими рукодельными сертификатами. Ругался страшно:

pop3d-ssl: couriertls: /etc/ssl/courier.pem: error:0906D06C:PEM routines:PEM_read_bio:no start line

Как оказалось, он хотел, чтобы и приватный ключ, и сертификат лежали в одном файле.
После того, как сделал:

cat server.pem >> server.crt

всё заработало хорошо.

DSPAM тоже подсунул свинью. К получателю доходили пустые письма, в заголовке которых было указано «Unable to open file for reading: firstrun.txt: No such file or directory». Такой файлик, и ещё парочка подобных, валялись в /var/db/dspam.
Оказалось, надо создать ${DSPAMHOME}/txt/ и вкинуть их туда. Вроде в документации по установке этого не было.

При тестировании отправки почты на внешние ящики выявил неприятность следующего характера. Поскольку на сервере крутиться несколько доменов, то при авторизации на SMTP сервере указываеться имя пользователя + домен. После приёма письма exim дополнительно к указанному имени+домену дописывает ещё раз домен. Результат налицо:

2006-09-19 14:39:06 1GPdwQ-000KUq-Bl <= "test@domain.ua"@domain.ua H=(rawbeer)
 [xxx.xxx.xxx.xxx] P=esmtpsa X=TLSv1:RC4-MD5:128 A=auth_login:test@domain.ua S=14
22 id=007301c6dbe0$1dc14340$4200640a@rawbeer
2006-09-19 14:39:09 1GPdwQ-000KUq-Bl ** remoteuser@mydomain.com R=dnslookup T=remote_smtp: SMTP error from remote mail server after MAIL FROM:<"test@domain.ua"@domain.ua>: host smtp.mydomain.com [194.44.50.1]: 550 Invalid recipient/sender mailing address

Вылечилось комментированием строчек с control = submission

  accept  hosts         = +relay_from_hosts
#          control       = submission
  accept  authenticated = *
#          control       = submission
Ротация логов exim через newsyslog:
/var/log/exim/mainlog   mailnull:mail   640  7     *    $D0   JN
/var/log/exim/rejectlog mailnull:mail   640  7     *    $D0   JN

Флаг N указывает на то, что перезапускать syslogd не нужно.

Статистика работы exim генерируеться при помощи eximstats.
Вставил в crontab для автоматической генерации отчета перед ротацией логов:

/usr/local/sbin/eximstats -nr /var/log/exim/mainlog

Популярность: 6%

  • >>Как оказалось, он хотел, чтобы и приватный ключ, и сертификат лежали в одном файле.

    Спасибо! мне помогло :) долго думал, что ему надо

Вы можете следить за обсуждением с помощью RSS 2.0 ленты.