Закрыть OpenVPN
Aug. 20th, 2020 11:50 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Захотел избавиться от устаревшей настройки
Теперь думаю, что все Issuer/Subject можно было сделать красивее. Потом пересоздам все сертификаты, но сейчас это не срочно, есть задачи поважнее. Нужно обновить сертификаты на почтовых серверах. И нужно переписать сетевые экраны на NetFilter.
Ещё нужно придумать скрипты OpenVPN для проверки клиентских сертификатов.
ns-cert-type
в OpenVPN и заменить её на remote-cert-tls
. Заодно научился пользоваться Easy RSA 3.0; с версии 2.0 там очень много изменений, особенно в файле конфигурации vars
, его пришлось переписать целиком.Теперь думаю, что все Issuer/Subject можно было сделать красивее. Потом пересоздам все сертификаты, но сейчас это не срочно, есть задачи поважнее. Нужно обновить сертификаты на почтовых серверах. И нужно переписать сетевые экраны на NetFilter.
Ещё нужно придумать скрипты OpenVPN для проверки клиентских сертификатов.
no subject
Date: 2020-08-21 05:31 am (UTC)А у тебя на почтовых серверах еще не Let's encrypt-овские сертификаты? Просто у кого let's encrypt-овские со сроком действия 90 дней, у тех обычно все уже давно автоматизировано.
Я, например, просто по почте получаю письмо что сертификат обновился (ага после того как мне про это обновление всё-всё-всё рассказал claws mail).
А то тут уже два года как TLS everywhere продвигают, иметь на почтовом сервере сертификат, который может проверить абстрактный юзер, желающий послать почту тебе, становится необходимым.
А чего ты хочешь добиться от проверки клиентских сертифкатов в OpenVPN? Ну кроме надежной взаимной аутентификации?
У меня там имя хоста из CommonName в DNS прописывается и более ничего.
no subject
Date: 2020-08-21 06:10 am (UTC)Нет пока. Хотя и такая задача записана в TODO.
>
Кроме взаимной аутентификации — ничего.
>
Я не могу в конфиге сервера прописать статический
CN
— это же имя клиента, а они разные. Как минимум 2 — ноутбук и телефон.no subject
Date: 2020-08-21 08:57 am (UTC)Для взаимной аутентификации скрипт не нужен. Встроенных возможностей openvpn более чем достаточно. Особенно если ей дать сертификат CA, который контролируешь ты, и ни для чего кроме выписывания сертификатов VPN-узлов не используешь.
А что касается DNS, то скрипт ровно для того и нужен, чтобы в конфиге сервера ничего не прописывать. Клиент коннектится к серверу, предъявляет ему сертификат. Сервер вызывает скрипт, передавая туда через переменные среды параметры этого сертификата, в частности CN, и выданный этому клиенту IP-адрес. Скрипт вызывает nsupdate и объясняет DNS-серверу, что теперь у хоста с вот таким доменным именем (которое прописано в CN сертификата) вот такой IP-адрес.
У меня-то клиентов не два, а добрый десяток.
А вообще у openvpn в режиме сервера предусмотрена возможность для каждого клиента читать дополнительный конфиг, имя которого совпадает с CN клиента. Так что ты можешь даже сделать так чтобы твои клиенты по CN статический IP получали и это без скриптов. Опция client-config-dir.
Я ее не использую в основном потому что у меня клиентов много и мне лень для каждого клиента прописывать отдельный конфиг на сервере.
А так - выписал сертификат на нужное имя и достаточно. Сертификат-то не на сервере выписывается.
no subject
Date: 2020-08-21 11:57 am (UTC)Пока ты мне не напомнил про
>
я был уверен, что разные
CN
клиентов в один конфиг не пропишешь. Спасибо, что напомнил! Да, так можно настроить всё в статике, без скриптов.>
DNS меня мало беспокоит, так что скрипт планировалось сделать только для проверки сертификата.