Релиз почтового сервера Postfix 2.9.0

После года разработки представлен релиз новой стабильной ветки почтового сервера Postfix - 2.9.0.

Из особенностей новой ветки можно отметить:

  • Поддержка длинных, не повторяющихся, идентификаторов элементов очереди сообщений, используемых в качестве имён файлов для сохраняемых в спуле сообщений. Наиболее важным достоинством не повторяющихся идентификаторов является упрощение анализа лог-файлов. Например, вместо идентификатора вида "0FCEE9247A9" будет использоваться более изощрённый вариант "3Ps0FS1Zhtz1PFjb", включающий все буквы алфавита и разделяющий регистр символов. По умолчанию длинные идентификаторы отключены, для их активации следует использовать опцию "enable_long_queue_ids";
  • Поддержка системы кэширования в памяти Memcached для хранения кэшей систем verify и postscreen, получающих доступ к данным через сервер proxymap. При использовании Memcached возможно создание конфигураций, при которых несколько серверов совместно используют единый кэш при проверке валидности email-адресов или выборке из списков блокировки зомби-машин, рассылающих спам. Memcached также можно использовать для хранения баз для проверки по серым спискам. Настройка осуществляется через директиву memcache_table;
  • Обеспечение максимально возможной живучести. Если какая-то база данных недоступна, например, невозможно открыть файл, наблюдаются ошибки записи/чтения или возникли проблемы в сети, отныне Postfix экстренно не завершает работу, а продолжает выполнение операций, не связанных с вышедшей из строя базой. Возможность работает для любых типов баз, как локальных (файлы), так и внешних (LDAP, *SQL и memcached), а также для сетевых протоколов (например, когда невозможно открыть сокет IPv6). Для мгновенного завершения работы при проблемах с открытием баз следует использовать опцию "daemon_table_open_error_is_fatal = yes";
  • Переработана команда postconf: добавлен вывод предупреждений о неиспользуемых параметрах "name=value" в конфигурационных файлах main.cf и master.cf, что позволяет выявить опечатки в именах параметров; реализована поддержка динамических имён параметров, таких как имена. зависящие от элементов master.cf; в более дружественном для восприятия формате оформлен вывод настроек из main.cf и master.cf (postconf -nf, postconf -Mf); в "postconf -M" добавлена поддержка фильтрации вывода, например, "postconf -M inet";
  • Реализована поддержка установки предельного времени обработки операций записи и чтения для клиента и сервера, что позволяет защититься от DoS-атак, манипулирующих большим числом вялотекущих соединений, при которых данные передаются очень медленно или читаются по одному байту. Если раньше таймаут задавался для системного вызова, то теперь его можно задать в привязке ко времени чтения/передачи отдельной записи, такой как сообщение с ответом SMTP-сервера. Настройка новых таймаутов осуществляется через директивы smtpd_per_record_deadline, smtp_per_record_deadline и lmtp_per_record_deadline;
  • В postscreen, выступающем в роли легковесного межсетевого экрана, предназначенного для первичного блокирования соединений от рассылающих спам зомби-машин, и в сервисе verify, используемом для обратной проверки валидности адресов, добавлена поддержка совместного использования баз блокировки между несколькими Postfix-серверами. Для организации доступа к единой базе с нескольких хостов начиная со следующей ветки Postfix 2.10 можно будет использовать схему proxymap-over-TCP. В настоящее время поддерживается только совместный доступ через memcached;
  • Для ограничения размера сообщений и почтовых ящиков через директивы message_size_limit, mailbox_size_limit и virtual_mailbox_limit отныне используются целые числа типа "long", что позволяет указывать лимиты, размером до 2 Гб;
  • По умолчанию директива inet_protocols установлена в значение "all" (до этого было "ipv4"), что подразумевает поддержку работы с IPv4 и IPv6. При выполнении "make upgrade" и "postfix upgrade-configuration" для текущих конфигураций сохраняется старое значение "ipv4".

© OpenNet