Представлен (https://blog.powerdns.com/2017/11/30/powerdns-authoritative-.../) значительный релиз авторитетного (authoritative) DNS-сервера PowerDNS Authoritative Server 4.1 (https://www.powerdns.com/auth.html), предназначенного для организации отдачи DNS-зон. По данным (https://www.powerdns.com/software.html) разработчиков проекта, PowerDNS Authoritative Server обслуживает примерно 30% из общего числа доменов в Европе (если рассматривать только домены с подписями DNSSEC, то 90%). Код проекта распространяется (https://github.com/PowerDNS/pdns) под лицензией GPLv2.
PowerDNS Authoritative Server предоставляет возможность хранения информации о доменах в различных базах данных, включая MySQL, PostgreSQL, SQLite3, Oracle, и Microsoft SQL Server, а также в LDAP и обычных текстовых файлах в формате BIND. Отдача ответа может быть дополнительно отфильтрована (например, для отсеивания спама) или перенаправлена при помощи подключения собственных обработчиков на языках Lua, Java, Perl, Python, Ruby, C и C++. Из особенностей также выделяются средства для удалённого сбора статистики, в том числе по SNMP или через Web API (для статистики и управления встроен http-сервер), мгновенный перезапуск, встроенный движок для подключения обработчиков на языке Lua, возможность балансировки нагрузки с учётом географического местоположения клиента.
Основные новшества (https://doc.powerdns.com/authoritative/changelog/4.1.html):
- Проведена большая работа по увеличению производительности. Например, в результате переработки системы кэширования скорость выполнения некоторых видов запросов при работе в роли корневого сервера, обслуживающего сотни тысяч доменов, возросла (https://hackernoon.com/optimizing-optimizing-some-insights-t...) до 4 раз. Кроме того более чем в два раза увеличена скорость генерации пакетов, оптимизирован процесс выделения памяти, расширено кэширование данных с бэкендов, добавлены дополнительные индексы для данных в бэкендах;
- Обеспечен полный набор средств для управления ключами шифрования и настройками DNSSEC через RESTful API. Из достоинств нового API называется возможность управления зонами с DNSSEC без оглядки на особенности DNSSEC;
- Добавлена поддержка механизма быстрого открытия TCP-соединений (TFO - TCP Fast Open, RFC 7413), который позволяет сократить число шагов установки соединения за счёт комбинирования в один запрос первого и второго шагов классического 3-этапного процесса согласования соединения и даёт возможность отправки данных на начальном этапе установки соединения;
- Возможность привязки к нелокальным сетевым адресам (non-local-bind (https://doc.powerdns.com/authoritative/settings.html#setting...)), например, можно привязать обработчик к пока отсутствующему на сетевом интерфейсе IP при настройке отказоустойчивых конфигураций;
- Поддержка криптографической библиотеки Botan 2.x (https://github.com/randombit/botan) и прекращение поддержки Botan 1.10;
- Включена поддержка спецификации PKCS #11 (https://ru.wikipedia.org/wiki/PKCS_%E2%99%AF11) для доступа к криптографическим устройствам и смарткартам (ранее для поддержки PKCS #11 требовалась перекомпиляция);
- Расширено число проблем, выявляемых командой "pdnsutil check-zone";
- Улучшена интеграция с системой ведения логов systemd;
- Изменена логика отслеживания обрывов соединения с СУБД, что позволило снизить задержки на установку повторного соединения. Структуры хранения данных в СУБД переведены на использование 64-разрядных идентификаторов;
- Удалена поддержка проброса запросов для резолвинга через рекурсивный DNS-сервер PowerDNS Recursor (опция "recursor="). В качестве причин называется неверная трактовка данной возможности многими администраторами, что часто приводит к непредсказуемым результатам (например, когда запрос заканчивается ссылкой на CNAME). Для двух типовых применений проброса на рекурсивный сервер (использование авторитетного сервера как рекурсивного с несколькими приватными зонами или одновременное использования для резолвинга запросов клиентов и обслуживание общедоступных зон) подготовлена инструкция (https://doc.powerdns.com/authoritative/guides/recursion.html) по решению данных задач другими способами.
- Расширены возможности бэкенда для хранения зон в текстовых файлах в формате BIND (например, добавлена (https://github.com/PowerDNS/pdns/issues/1284) поддержка зон с типом "native"), а также скрипта для миграции зон из BIND в хранилища на базе СУБД;
- Переработан бэкенд для хранения DNS-зон в LDAP;
Дополнительно можно отметить выход (https://blog.powerdns.com/2017/11/27/powerdns-authoritative-.../) корректирующих выпусков PowerDNS Authoritative Server 4.0.5 и PowerDNS Recursor 4.0.7, в которых устранено несколько уязвимостей и бэкпортирована большая порция исправлений из ветки 4.1.x. В частности, устранены уязвимости, связанные с неверной проверкой доступа к API (CVE-2017-15091 (https://doc.powerdns.com/authoritative/security-advisories/p...)), некорректной валидацией сигнатур DNSSEC (CVE-2017-15090 (https://doc.powerdns.com/recursor/security-advisories/powerd...)), межсайтовым скриптингом в web-интерфейсе (CVE-2017-15092 (https://doc.powerdns.com/recursor/security-advisories/powerd...)), подстановкой сторонних конфигурационных файлов через API (CVE-2017-15093 (https://doc.powerdns.com/recursor/security-advisories/powerd...)) и отказом в обслуживании из-за исчерпания доступной памяти при разборе запросов DNSSEC (CVE-2017-15094 (https://doc.powerdns.com/recursor/security-advisories/powerd...)).
URL: https://blog.powerdns.com/2017/11/30/powerdns-authoritative-.../
Новость: http://www.opennet.dev/opennews/art.shtml?num=47654