vitus_wagner: My photo 2005 (Default)
vitus_wagner ([personal profile] vitus_wagner) wrote2017-04-17 03:46 pm

openvpn & subjectAltName

Задумался над идеей назначать клиентам OpenVPN ip-адреса по значению поля subjectAltName в их сертификатах.
RFC 5280 предусматривает тип поля IP в SubjectAltName, и OpenSSL его вполне поддерживает.

Идея хороша тем, что при подключении нового клиента не нужно вообще ничего делать на сервере. Удостоверяющий центр, выписывая клиенту сертификат (что все равно надо сделать) выделяет ему IP и DNS-имя и прописывает иъ в этот сертификат. А задача сервера - просто согласиться с тем что подписано удостоверяющим центром.

Правда, похоже просто так не получится. Что-то я не вижу там, чтобы client-connect скрипто получил доступ ко всему сертификату или хотя бы к subjectAltName.

Upd Благодаря [personal profile] dzz родилось более простое решение:
Сейчас у меня в скрипте client-connect соответствие CN сертификата клиента и выданного ему IP записывается в динамическую зону DNS. Чтобы на того клиента логиниться по имени.

Так вот - сначала надо в DNS посмотреть, и если там это CN есть, то сказать openvpn-у "этому дай вот этот адрес". А вот уж если адреса такого в DNS нет - назначать первый свободный.
Это, конечно, не гарантирует от того что адрес будет переисиользован пока клиент будет в оффлайне. но все же.
dzz: Dizzy の冬 (Default)

[personal profile] dzz 2017-04-17 03:08 pm (UTC)(link)
> Тогда вопрос так ли часто меняются IP-адреса серверов кажется странным.

Ну, я не знал твоей специфики. Теоретически, могут быть "медленно меняющиеся" адреса.

> отдает адреса из пула в порядке прихода клиентов

Может быть, проще доработать openvpn-сервер для раздачи lease-ов?
dzz: Dizzy の冬 (Default)

[personal profile] dzz 2017-04-17 03:26 pm (UTC)(link)
> А что у нас является аналогом mac-адреса?

Fingerprint открытого ключа? Ключ уникален для каждого устройства.

[identity profile] tzirechnoy [lj.rossia.org] 2017-04-17 04:44 pm (UTC)(link)
ifconfig-pool-persist