[exim-conf] новый паровоз 4.70

Victor Ustugov victor на corvax.kiev.ua
Пн Янв 24 16:47:33 EET 2011


приветствую

создана новая ветка конфигуратора, версия 4.70. предназначена для работы
с exim 4.70 и выше.

изменения в 4.70:

- реализована конвертация текстовых файлов из покаталога m4 конфигуратора
в набор символов UTF-8 для систем с соответствующей локалью.
конвертация производится при выполнении gmake texts-utf8
в большинстве случае текстовые файлы уже будут сконвертированы в UTF-8.

- переименованы следующие переменные:
confCHECK_HELO_ACCESS в confCHECK_ACCESS_HELO
confCHECK_RCPT_ACCESS в confCHECK_ACCESS_RCPT
confCHECK_MAIL_ACCESS в confCHECK_ACCESS_MAIL
confCHECK_MAIL_DOMAIN_A в confCHECK_ACCESS_MAIL_DOMAIN_A
confCHECK_MAIL_DOMAIN_MX в confCHECK_ACCESS_MAIL_DOMAIN_MX
confCHECK_MAIL_DOMAIN_TXT в confCHECK_ACCESS_MAIL_DOMAIN_TXT
confCHECK_MAIL_DOMAIN_SPF в confCHECK_ACCESS_MAIL_DOMAIN_SPF
confCHECK_RELAY_ACCESS в confCHECK_ACCESS_RELAY
confCHECK_RELAY_DIALUP в confCHECK_ACCESS_RELAY_DYNAMIC
confCHECK_RELAY_COUNTRY_ACCESS в confCHECK_ACCESS_RELAY_COUNTRY
confCHECK_COMPAT в confCHECK_ACCESS_COMPAT
confCHECK_COMPAT_BACKEND в confCHECK_ACCESS_COMPAT_BACKEND
confCHECK_COMPAT_DBM_FILE в confCHECK_ACCESS_COMPAT_DBM_FILE
confCHECK_COMPAT_SQLITE_FILE в confCHECK_ACCESS_COMPAT_SQLITE_FILE
confCHECK_COMPAT_SQLITE_QUERY в confCHECK_ACCESS_COMPAT_SQLITE_QUERY
confCHECK_COMPAT_SQLITE_QUERY2 в confCHECK_ACCESS_COMPAT_SQLITE_QUERY2
confCHECK_COMPAT_MYSQL_QUERY в confCHECK_ACCESS_COMPAT_MYSQL_QUERY
confCHECK_COMPAT_MYSQL_QUERY2 в confCHECK_ACCESS_COMPAT_MYSQL_QUERY2
confCHECK_COMPAT_RELAY в confCHECK_ACCESS_COMPAT_RELAY
confCHECK_COMPAT_RELAY_BACKEND в confCHECK_ACCESS_COMPAT_RELAY_BACKEND
confCHECK_COMPAT_RELAY_DBM_FILE в confCHECK_ACCESS_COMPAT_RELAY_DBM_FILE
confCHECK_COMPAT_RELAY_SQLITE_FILE в
confCHECK_ACCESS_COMPAT_RELAY_SQLITE_FILE
confCHECK_COMPAT_RELAY_SQLITE_QUERY в
confCHECK_ACCESS_COMPAT_RELAY_SQLITE_QUERY
confCHECK_COMPAT_RELAY_SQLITE_QUERY2 в
confCHECK_ACCESS_COMPAT_RELAY_SQLITE_QUERY2
confCHECK_COMPAT_RELAY_SQLITE_QUERY3 в
confCHECK_ACCESS_COMPAT_RELAY_SQLITE_QUERY3
confCHECK_COMPAT_RELAY_SQLITE_QUERY4 в
confCHECK_ACCESS_COMPAT_RELAY_SQLITE_QUERY4
confCHECK_COMPAT_RELAY_MYSQL_QUERY в
confCHECK_ACCESS_COMPAT_RELAY_MYSQL_QUERY
confCHECK_COMPAT_RELAY_MYSQL_QUERY2 в
confCHECK_ACCESS_COMPAT_RELAY_MYSQL_QUERY2
confCHECK_COMPAT_RELAY_MYSQL_QUERY3 в
confCHECK_ACCESS_COMPAT_RELAY_MYSQL_QUERY3
confCHECK_COMPAT_RELAY_MYSQL_QUERY4 в
confCHECK_ACCESS_COMPAT_RELAY_MYSQL_QUERY4
confCHECK_COMPAT_RELAY_COUNTRY в confCHECK_ACCESS_COMPAT_RELAY_COUNTRY
confCHECK_COMPAT_RELAY_COUNTRY_SQLITE_QUERY в
confCHECK_ACCESS_COMPAT_RELAY_COUNTRY_SQLITE_QUERY
confCHECK_COMPAT_RELAY_COUNTRY_SQLITE_QUERY2 в
confCHECK_ACCESS_COMPAT_RELAY_COUNTRY_SQLITE_QUERY2
confCHECK_COMPAT_RELAY_COUNTRY_MYSQL_QUERY в
confCHECK_ACCESS_COMPAT_RELAY_COUNTRY_MYSQL_QUERY
confCHECK_COMPAT_RELAY_COUNTRY_MYSQL_QUERY2 в
confCHECK_ACCESS_COMPAT_RELAY_COUNTRY_MYSQL_QUERY2

переименование данных переменных в site/conf можно произвести с помощью
выполнинения команды gmake fix в подкаталогах m4 или site.

- упразднена переменная confCHECK_MAIL_DOMAIN (устаревший вариант
переменной confCHECK_MAIL_DOMAIN_A)

- в переменных confCONFIGURE_OWNER и confCONFIGURE_GROUP можно указать
владельца и группу владельца конфигурационного файла.
по умолчанию это root и wheel.

- значение по умолчанию для confGREYLIST_BACKEND измено на `SQLITE'

- значение по умолчанию для confMAILERTABLE_LMTP изменить с `YES' на `NO'

- реализовано определение первичной MX записи доменов с помощью ${reduce
без использования embedded perl при обработке конструкции /bestMX в
mailertable

- реализовано определение первичной MX записи доменов с помощью ${reduce
без использования рекурсивно вызываемого ACL acl_get_bestmx при рилеинге
входящей почты доменов, для которых мы являемся backup MX, и best MX
запись которых входит в наши trusted сети (переменная
confRELAY_BASED_ON_MX).
также упразднен ACL acl_check_mx.

- фильтрация по стране рилея отправителя (переменная
confCHECK_ACCESS_RELAY_COUNTRY) теперь является лишь расширением
фильтрации по хосту отправителя, т. е. может использовать только
совместно с confCHECK_ACCESS_RELAY).
расширение confCHECK_ACCESS_RELAY_COUNTRY задействуется позже расширения
confCHECK_ACCESS_RELAY_DYNAMIC.
т. е. сначала производится запрос к access-relay по адресу хоста
отправителя, потом производится запрос к access-relay по имени хоста
отправителя, потом производится проверка на принадлежность адреса хоста
отправителя к списку хостов и сетей из access-relay-blacklist, потом
опционально производится проверка на принадлежность адреса хоста
отправителя к списку хостов и сетей из access-relay-dynamic, и уже после
этого производится запрос к access-relay по стране хоста отправителя.
файл acls/check_relay_country.m4 упразднен, его код интегрирован в
acls/check_relay.m4

- при фильтрации писем по стране рилея отправителя (переменная
confCHECK_ACCESS_RELAY_COUNTRY) в аргументе поиска больше не нужно
использовать "country_" в качестве префикса.

- результат вычисления страны по $sender_host_address (IP адресу хоста
рилея отправителя) кешируется для дальнейшего использования в переменной
$acl_m_sender_host_address_country.
название именно именно этой переменной нужно использовать в тексте запросов:
confCHECK_ACCESS_COMPAT_RELAY_COUNTRY_SQLITE_QUERY
confCHECK_ACCESS_COMPAT_RELAY_COUNTRY_SQLITE_QUERY2
confCHECK_ACCESS_COMPAT_RELAY_COUNTRY_MYSQL_QUERY
confCHECK_ACCESS_COMPAT_RELAY_COUNTRY_MYSQL_QUERY2

- упразднена проверка HELO в виде IP адреса без квадратных скобок
(переменная confCHECK_HELO_IP).
фильтровать письма с HELO в виде IP адреса без квадратных скобок можно с
помощью регулярного выражения в access-helo:
\N^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$\N : deny : Invalid greeting used
: HELO used IP address

- упразднена синтаксическая проверка HELO/EHLO (переменная
confCHECK_HELO_MISCONFIGURED).
фильтровать письма с синтаксически некорректными HELO/EHLO можно с
помощью регулярных выражений в access-helo. примеры:
\N^<.*>$\N	: deny : Invalid greeting used
\N^<.+$\N	: deny : Invalid greeting used
\N^.+>$\N	: deny : Invalid greeting used
\N^\.$\N	: deny : Invalid greeting used : HELO with only point
\N\.\.\N	: deny : Invalid greeting used : HELO with double point
\N^\.\N		: deny : Invalid greeting used : HELO begins with point
\N^[^\.]+\.$\N	: deny : Invalid greeting used : HELO ends with point
\N^.*\@.*$\N	: deny : Invalid greeting used : @ found in HELO/EHLO

- упразднена проверка существования получателей в доменах с
фиксированным списком получателей (переменная confCHECK_RCPT_INVALID,
файл recipients_invalid).
ограничивать прием писем для доменов в ограниченным набором получателей
следует в access-rcpt.

- упразднена проверка наличия угловых скобок в командах MAIL FROM и RCPT
TO (переменная confCHECK_ANGLE_BRACKETS).
проверку наличия угловых скобок в командах MAIL FROM и RCPT TO следует
производить с помощью confCHECK_SMTP_COMMANDS.
для проверки наличия угловых скобок в команде MAIL FROM следует добавить
следующую строку в файл access-smtp-command-mail:
\N^mail\x20from\x3A\s*[^<\s]\N      : warn delay:20 greylist:10 reject:2

для проверки наличия угловых скобок в команде RCPT TO следует добавить
следующую строку в файл access-smtp-command-rcpt:
\N^rcpt\x20to\x3A\s*[^<\s]\N        : warn delay:20 greylist:10 reject:2

действия в обеих строках приведены для примера.

- упразднена проверка наличия почтового ящика и домена получателя в
почтовом ящике отправителя (переменная confCHECK_SENDER_MAILBOX).
пример:
MAIL FROM:
<b.eUnreal.0-24e1626-2208.max.odessa.ua.-rita на 13.bluerocketonline.com>
RCPT TO:<rita на max.odessa.ua>

для проверки наличия почтового ящика и домена получателя в почтовом
ящике отправителя следует использовать confCHECK_ACCESS_COMPAT с `TEXT'
в качестве значения confCHECK_ACCESS_COMPAT_BACKEND:

*: ${if
and{{match{$sender_address_local_part}{\N(?i)^.*\N$local_part\N.*$\N}}{match{$sender_address_local_part}{\N(?i)^.*\N$domain\N.*$\N}}}{deny
: Access denied. Suspicious sender address : Invalid sender mailbox.
There are recipient mailbox and domain in sender mailbox}{ok}}

*: ${if
match{$sender_address_local_part}{\N(?i)^.*(\N$local_part\N.*\N$domain\N|\N$domain\N.*\N$local_part\N).*$\N}{deny
: Access denied. Suspicious sender address : Invalid sender mailbox.
There are recipient mailbox and domain in sender mailbox}{ok}}

нужно использовать один из этих примеров. данная строка должна быть
последней в access-compat.
в случае хранения данных для compat проверки в sqlite/mysql придется
использовать дополнительно и текстовый бекенд.

- все механизмы сборки ports, pkgsrc, portage, rpms перенесены в
подкаталог packages.
подкаталоги pkgsrc-dragonfly, pkgsrc-netbsd, pkgsrc-solaris,
ports-freebsd и ports-openbsd просто перенесены в подкаталог packages.
подкаталоги redhat и suse переименованы с добавлением префикса "rpms".
подкаталог gentoo переименован с добавление префикса "portage".

обновление всех механизмов сборки бинарных пакетов производится одной
команндой gmake sync_packages. при этом из обновлений исключаются файлы
make.conf и Makefile.local.
при первом выполнении команды gmake sync_packages при обновлении
конфигуратора подкаталги сборки бинарных пакетов будут предварительно
перенесены в созданный подкаталог packages, что позволит сохранить все
ранее созданные файлы make.conf и Makefile.local.


-- 
Best wishes Victor Ustugov   mailto:victor на corvax.kiev.ua
public GnuPG/PGP key:        http://victor.corvax.kiev.ua/corvax.asc
ICQ UIN: 77186900, 371808614 nic-handle: CRV-UANIC




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