phd_ru: (Default)
[personal profile] phd_ru
Захотел избавиться от устаревшей настройки ns-cert-type в OpenVPN и заменить её на remote-cert-tls. Заодно научился пользоваться Easy RSA 3.0; с версии 2.0 там очень много изменений, особенно в файле конфигурации vars, его пришлось переписать целиком.

Теперь думаю, что все Issuer/Subject можно было сделать красивее. Потом пересоздам все сертификаты, но сейчас это не срочно, есть задачи поважнее. Нужно обновить сертификаты на почтовых серверах. И нужно переписать сетевые экраны на NetFilter.

Ещё нужно придумать скрипты OpenVPN для проверки клиентских сертификатов.

Date: 2020-08-21 05:31 am (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner

А у тебя на почтовых серверах еще не Let's encrypt-овские сертификаты? Просто у кого let's encrypt-овские со сроком действия 90 дней, у тех обычно все уже давно автоматизировано.

Я, например, просто по почте получаю письмо что сертификат обновился (ага после того как мне про это обновление всё-всё-всё рассказал claws mail).

А то тут уже два года как TLS everywhere продвигают, иметь на почтовом сервере сертификат, который может проверить абстрактный юзер, желающий послать почту тебе, становится необходимым.

А чего ты хочешь добиться от проверки клиентских сертифкатов в OpenVPN? Ну кроме надежной взаимной аутентификации?

У меня там имя хоста из CommonName в DNS прописывается и более ничего.

Date: 2020-08-21 08:57 am (UTC)
vitus_wagner: My photo 2005 (Default)
From: [personal profile] vitus_wagner

Для взаимной аутентификации скрипт не нужен. Встроенных возможностей openvpn более чем достаточно. Особенно если ей дать сертификат CA, который контролируешь ты, и ни для чего кроме выписывания сертификатов VPN-узлов не используешь.

А что касается DNS, то скрипт ровно для того и нужен, чтобы в конфиге сервера ничего не прописывать. Клиент коннектится к серверу, предъявляет ему сертификат. Сервер вызывает скрипт, передавая туда через переменные среды параметры этого сертификата, в частности CN, и выданный этому клиенту IP-адрес. Скрипт вызывает nsupdate и объясняет DNS-серверу, что теперь у хоста с вот таким доменным именем (которое прописано в CN сертификата) вот такой IP-адрес.

У меня-то клиентов не два, а добрый десяток.

А вообще у openvpn в режиме сервера предусмотрена возможность для каждого клиента читать дополнительный конфиг, имя которого совпадает с CN клиента. Так что ты можешь даже сделать так чтобы твои клиенты по CN статический IP получали и это без скриптов. Опция client-config-dir.

Я ее не использую в основном потому что у меня клиентов много и мне лень для каждого клиента прописывать отдельный конфиг на сервере.

А так - выписал сертификат на нужное имя и достаточно. Сертификат-то не на сервере выписывается.

Edited Date: 2020-08-21 08:59 am (UTC)

May 2025

S M T W T F S
     123
4 5 678910
1112 13141516 17
18192021222324
25262728293031

Most Popular Tags

Page Summary

Style Credit

Expand Cut Tags

No cut tags
Page generated May. 19th, 2025 02:05 pm
Powered by Dreamwidth Studios
OSZAR »