Консорциум ISC опубликовал (https://www.isc.org/blogs/kea-1-6/) релиз DHCP-сервера Kea 1.6.0 (http://kea.isc.org), идущего на смену классическому ISC DHCP. Исходные тексты проекта распространяются (https://github.com/isc-projects/kea) под лицензией Mozilla Public License (MPL) 2.0 (https://www.opennet.dev/opennews/art.shtml?num=32726), вместо ранее применяемой для ISC DHCP лицензии ISC License. DHCP-сервер Kea основан на технологиях BIND 10 и построен (https://www.opennet.dev/opennews/art.shtml?num=36235) с использованием модульной архитектуры, подразумевающей разбиение функциональности на разные процессы-обработчики. Продукт включает в себя полнофункциональную реализацию сервера с поддержкой протоколов DHCPv4 и DHCPv6, способную заменить собой ISC DHCP. В Kea встроены средства динамического обновления DNS-зон (Dynamic DNS), поддерживаются механизмы обнаружения серверов, назначения адресов, обновления и переподключения, обслуживания информационных запросов, резервирования адресов для хостов и PXE-загрузки. В реализации DHCPv6 дополнительно предусмотрена возможность делегирования префиксов. Для взаимодействия с внешними приложениями предоставляется специальный API. Возможно обновление конфигурации на лету без перезапуска сервера.
Информация о выделенных адресах и параметрах клиентов может храниться в разных типах хранилищ - в настоящее время предоставляются бэкенды для хранения в файлах CSV, СУБД MySQL, Apache Cassandra и PostgreSQL. Параметры резервирования хостов могут быть заданы в файле конфигурации в формате JSON или в виде таблицы в MySQL и PostgreSQL. В состав входит инструмент perfdhcp для измерения производительности сервера DHCP и компоненты для сбора статистики. Kea демонстрирует неплохую производительность, например, при использовании бэкеда MySQL сервер может выполнить 1000 присвоений адресов в секунду (около 4000 пакетов в секунду), а при использовании бэкенда memfile производительность достигает 7500 присвоений в секунду.
Ключевые улучшения (https://ftp.isc.org/isc/kea/1.6.0/Kea160ReleaseNotes.txt) в Kea 1.6:
- Реализован бэкенд конфигурации (CB, Configuration Backend), позволяющий централизованно управлять настройками нескольких серверов DHCPv4 и DHCPv6. Бэкенд может применяться для хранения большинства настроек Kea, включая глобальные параметры, информацию об общих сетях, подсетях, опциях, пулах и определениях опций. Вместо хранения всех этих настроек в локальном файле конфигурации, они теперь могут размещаться во внешней базе данных. При этом возможно определение через CB не всех, а части настроек с наложением параметров из внешней БД и локальных файлов конфигурации (например, в локальных файлах могут быть оставлены настройки сетевых интерфейсов).
Из СУБД для хранения конфигурации пока поддерживается только MySQL (для хранения баз присвоения адресов (leases) могут использоваться MySQL, PostgreSQL и Cassandra, а для резервирования хостов MySQL и PostgreSQL). Конфигурация в БД может меняться как через прямое обращение к СУБД, так и через специально подготовленные библиотеки-прослойки, предоставляющие типовой набор команд для управления конфигурацией, такие как добавление и удаление параметров, привязок, DHCP-опций и подсетей;
- Добавлен новый класс обработчиков "DROP" (все связанные с классом DROP пакеты сразу отбрасываются), который может быть использован для отбрасывания нежелательного трафика, например, определённых типов DHCP-сообщений;
- Добавлены новые параметры max-lease-time и min-lease-time, позволяющие определить время жизни привязки адреса к клиенту (lease) не в форме жёстко заданного значения, а в виде допустимого диапазона;
- Улучшена совместимость с устройствами, не полностью соблюдающими стандарты для DHCP. Для обхода проблем Kea теперь отправляет информацию о типе сообщения DHCPv4 в самом начале списка опций, обрабатывает различные представления имён хостов, распознаёт передачу пустого имени хоста и позволяет определять субопции с кодами с 0 по 255;
- Для демона DDNS добавлен отдельный управляющий сокет, через который можно напрямую передавать команды и вносить изменение в конфигурацию. Поддерживаются следующие команды: build-report, config-get, config-reload, config-set, config-test, config-write, list-commands, shutdown и version-get;
- Устранены уязвимости (https://www.openwall.com/lists/oss-security/2019/08/29/) (CVE-2019-6472, CVE-2019-6473, CVE-2019-6474), которые могут быть использованы для совершения отказа в обслуживании (вызов краха серверных обработчиков DHCPv4 и DHCPv6) через отправку запросов с некорректными опциями и значениями. Наибольшую опасность представляет проблема СVE-2019-6474 (https://kb.isc.org/docs/cve-2019-6474), которая в случае использования для привязок хранилища memfile, приводит к невозможности самостоятельного перезапуска серверного процесса, поэтому для восстановления работы требуется ручное вмешательство администратора (чистка базы привязок).
URL: https://www.isc.org/blogs/kea-1-6/
Новость: https://www.opennet.dev/opennews/art.shtml?num=51393