[exim-conf] Проблемы с Berkley DB

Sasha Usov blessendor на gmail.com
Пт Июл 18 21:43:21 EEST 2008


Здравствуйте, Victor.

Вы писали 18 июля 2008 г., 15:00:25:

> Sasha Usov wrote:
>> Здравствуйте, Виктор!

> добрый день

>> После обновления порта exim стандартным методом (из /urs/ports...)
>> случилась оказия с обработкой DB-файлов:
>> 
>> 2008-07-16 16:10:45 H=gromsgo.pfizer.com
>> (gromsgoa01.pfizer.com) [148.168.224.84] F=<user на mail.com>
>> temporarily rejected RCPT <anna.pogodaeva на maxima.com.ua>: failed to
>> expand ACL string
>> "${lookup{0.0.0.0|$sender_address|$local_part@$domain}dbm{/var/spool/exim/db/greylist-new.db}}":
>> failed to open /var/spool/exim/db/greylist-new.db as a db (v3/4) file:
>> Unknown error: 0
>> 
>> 2008-07-16 16:36:55 H=mail.morinda.com [66.236.69.43]
>> F=<user на mail.com> temporarily rejected RCPT
>> <nataliya.danilyuk на maxima.com.ua>: failed to expand ACL string
>> "${if
>> eq{${perl{dbm_save}{/var/spool/exim/db/greylist.db}{$sender_host_address|$sender_address|$local_part@$domain}{block_expires=${eval:$tod_epoch+6*60}
>> record_expires=${eval:$tod_epoch+300*60} blocked_count=1
>> passed_count=0 aborted_count=0 origin_type=AUTO
>> create_time=$tod_epoch last_update=$tod_epoch }}}{}{yes}{yes}}":
>> couldn't init DB '/var/spool/exim/db/greylist.db':
>> Inappropriate file type or format
>> 
>> 2008-07-16 16:38:20 H=(pubchesmt3.urgo.groupe.priv)
>> [86.66.18.46] F=<user на mail.com> temporarily rejected RCPT
>> <alla.timina на deltamedical.com.ua>: failed to expand ACL string
>> "${if
>> eq{${perl{dbm_save}{/var/spool/exim/db/greylist.db}{$sender_host_address|$sender_address|$local_part@$domain}{block_expires=${eval:$tod_epoch+6*60}
>> record_expires=${eval:$tod_epoch+300*60} blocked_count=1
>> passed_count=0 aborted_count=0 origin_type=AUTO
>> create_time=$tod_epoch last_update=$tod_epoch }}}{}{yes}{yes}}":
>> Undefined subroutine &main::dbm_save called.
>> 
>> Все работало, и порт в принципе тот же самый - я только убедиться
>> хотел, что есть поддержка lmtp и пересобрал. В Makefile четко задал
>> версию Berkley DB - 41, при сборке она учитывается (хотя я потом
>> пробовал уже все возможные версии, но ошибки не исчезают).
>> 
>> Сейчас оставил как есть - удалив из конфига грейлистинг :/

> самое простое - перенести файл кеша, потом выполнить gmake install, при
> этом в том числе будет создан файл кеша грейлистинга.

Так тоже делал - все равно...

>> Рабочая база у меня называлась greylist-new.db. Так что в логах об
>> ошибке все верно. Последний раз собрано было уже со стандартным именем
>> greylist.db.
>> 
>> Паровоз 4.67.
>> На более новый не переходил, так как не хотел пока экспериментировать
>> с проверкой пользователя на exchange новым методом.

> проверка существования пользователей exchange не отличается от любого
> другого коллаута. на стороне exchange нужно только включить проверку
> существования получателей на этапе RCPT TO.

На первый взгляд пробежался по настройкам exchange не уидел, где нужно
поставить требуемую галочку, но тест по телнету свидетельствет, что
exchange дает 5.1.1 на неизвестного получателя. Так что, можно было бы
попробовать. А чем, exchange router себя дискредетирует для дальнейшей
поддержки? По личному опыту использования - почти безотказно работает.
Почти - потому что иногда бывают таймауты при проверке пользователя по ldap на
контроллере домена.

> кроме того, в паровозе 4.68 реализовано использование в качестве кеша
> грейлистинга SQLite и MySQL. SQLite в данном случае является вполне 
> достойной заменой Berkeley DB.

Попробую такой вариант, хотя включать глобальный грейлист для всех,
наверное, уже не буду... За пару дней без него - не так уж пострадала
фильтрация - больше стало коситься на этапе контент-фильтра.


-- 
Sasha Usov 
<blessendor на gmail.com>





Подробная информация о списке рассылки exim-conf