ALT Linux Team development discussions
 help / color / mirror / Atom feed
From: Evgeny Sinelnikov <sin@altlinux.org>
To: ALT Linux Team development discussions <devel@lists.altlinux.org>
Subject: [devel] Some premium Kea extensions that are not open source (GSS-TSIG)
Date: Sun, 10 Dec 2023 21:27:54 +0400
Message-ID: <CAK42-GpqZ+aLjtTZ5sHF5VmxejEykeHd+-2mTPfB-UUUhD6gUA@mail.gmail.com> (raw)

Добрый вечер,

дублирую выводы из разбора возможностей новой реализации dhcp-сервера
kea от ISC, для которого всплыл новый лицензионный подход к
расширениям. Для меня это было интересной неожиданностью.

Предыстория.

С одной стороны, с недавних пор старая реализация dhcp-сервер от ISC
объявлена более не обслуживаемой ("ISC has announced the end of
maintenance for ISC DHCP as of the end of 2022"):
- https://www.isc.org/dhcp/
- https://www.isc.org/blogs/isc-dhcp-eol/

Кроме того, для миграции предложен соответствующий инструментарий -
Kea Migration Assistant (KeaMA) tool (у нас в репозиторий пока не
собран):
- https://www.isc.org/dhcp_migration/
- https://gitlab.isc.org/isc-projects/keama

С другой стороны, миграция предлагается на новую реализацию Kea DHCP
(Modern, open source DHCPv4 & DHCPv6 server):
- https://www.isc.org/kea/
- https://gitlab.isc.org/isc-projects/kea


Проприетарные, коммерческие модули.

Лицензионный подход к расширениям - Kea Hooks Basic Commercial End
User License Agreement v2.0 (HBCEULA 2.0):
- https://www.isc.org/kea-premium-license/

То есть для kea теперь предоставляются платные, коммерческие модули в
том числе и в виде исходного кода, но только по подписке:
- https://kb.isc.org/docs/installing-the-kea-premium-hook-libraries-from-sources

И уже на системной уровне для сервера kea dhcp может возникнуть
необходимость альтернативной сборки с дополнительными внешними
плагинами, если это кому-то потребуется.


Выяснилось это при подготовке рекомендаций по развёртыванию
инфраструктры на базе новой реализации dhcp-сервера kea для обновления
dns записей в домене samba через службу kea-dhcp-ddns:
- https://kea.readthedocs.io/en/kea-2.4.1/arm/ddns.html
- https://kea.readthedocs.io/en/kea-2.4.1/arm/integrations.html#gss-tsig-overview

... Kea supports GSS-TSIG to protect DNS updates sent by the Kea
DHCP-DDNS (D2) server in a premium hook, called libddns_gss_tsig.so.


Выводы.

Получается, что для полноценного функционирования обновления
dns-записей в домене samba, есть следующие варианты:

1. Делать "ручные костыли", как и раньше (для kea эти костыли нужно
ещё готовить):
https://wiki.samba.org/index.php/Configure_DHCP_to_update_DNS_records#Create_the_script_for_the_updates

2. Покупать по подписке один из вариантов годовой лицензии у ISC:
- https://www.isc.org/shop/

3. Ожидать альтернативной реализации. Всё написано, примеры кода
других плагинов имеются. Никто не мешает написать свой
libddns_gss_tsig.so:
- https://kea.readthedocs.io/en/latest/arm/integrations.html#gss-tsig-overview
- https://kea.readthedocs.io/en/latest/arm/ddns.html

GSS-TSIG is defined in RFC 3645. The GSS-TSIG protocol itself is an
implementation of generic GSS-API v2 services, defined in RFC 2743

Secret Key Transaction Authentication for DNS (TSIG), November 2020:
- https://www.rfc-editor.org/info/rfc8945

HMAC SHA (Hashed Message Authentication Code, Secure Hash Algorithm)
TSIG Algorithm Identifiers, August 2006:
- https://www.rfc-editor.org/info/rfc4635

Generic Security Service Algorithm for Secret Key Transaction
Authentication for DNS (GSS-TSIG), October 2003:
- https://www.rfc-editor.org/info/rfc3645

Secret Key Transaction Authentication for DNS (TSIG), May 2000:
- https://www.rfc-editor.org/info/rfc2845

4. Искать другие, обходные пути. Например, если предположить, что
samba dlz-плагин для bind сможет аутентифицировать не только по
GSSAPI, то можно попытаться воспользоваться ручным "подсовыванием"
ключей, как это обычно везде и делалось.

Но это:
а) плохо масштабируется;
б) непонятно насколько легко реализуемо (это основное);
в) имеет свои издержки с точки зрения появления потенциальных уязвимостей.

Для этого требуется разбор механизма аутентификации через TSIG key
(генерируется tsig-keygen) по отношению в механизму GSS-TSIG для samba
dlz-плагина. То еcть вопрос звучит так: "Можно ли обновлять записи в
зоне обслуживаемой bind'ом через samba dlz-плагин без kerberos, то
есть без GSS-TSIG, то есть аутентифицируя на самом bind'е через
обычный TSIG Key Secret (TSIG-TKEY)?"
- https://wiki.samba.org/index.php/BIND9_DLZ_DNS_Back_End
- https://wiki.samba.org/index.php/Testing_Dynamic_DNS_Updates
- https://www.altlinux.org/ActiveDirectory/DC/BIND9_DLZ

При этом вопрос технически ставится так: "Можно ли управлять
настройками TSIG-Based Access Control (то есть правилами обновления
записей) в зоне, управляемой через dlz-плагин, для ключей
сгенерированных через tsig-keygen?"
- https://bind9.readthedocs.io/en/latest/chapter7.html#tsig

Возможно, для этого придётся внести патчи в dlz-плагин и добавить
опцию включения для такого режима.

-- 
Sin (Sinelnikov Evgeny)

                 reply	other threads:[~2023-12-10 17:27 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CAK42-GpqZ+aLjtTZ5sHF5VmxejEykeHd+-2mTPfB-UUUhD6gUA@mail.gmail.com \
    --to=sin@altlinux.org \
    --cc=devel@lists.altlinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git