Защищенный паролем ключ клиента
-
Добрый день уважаемые форумчани.
Нужна консультация. Есть сервер 2.3.2-RELEASE-p1 (amd64) "FreeBSD 10.3-RELEASE-p9 "
На нем поднят OpenVpn сервер.
Нужно что бы пользователи подключались по OpenVpn к серверу используя сертификат и секретный ключь+пароль (логин и пароль)
С этим проблем нет все прекрасно работает
Но задачу усложнили, теперь ко всему этому добру нужно что бы при подключении дополнительно запрашивался пароль на секретный ключ пользователя.
Как это сделать через веб интерфейс?!?!
Нашел инструкцию через консоль https://doc.pfsense.org/index.php/Easyrsa_for_pfSense
Creating a password protected client key
To create a new client key with password protection:
cd /root/easyrsa4pfsense
source vars
./build-key-pass clientXXXX
Но если может через консоль должен уметь и через вэб.
Подскажите как??? -
Доброе.
Видимо только через консоль.P.s. Скоро еще и через ключ на флешке прикажут сделать.
-
Задачу удалось решить через веб интерфейс, не так как хотелось но все же есть результат!
Кому интересно набросал инструкцию:
Создаем OpenVpn для клиента
Для создания нового пользователя с использованием логина, пароля пользователя и (сертификат+ключ), а также пароля для (сертификата+ключ) необходимо выполнить следующее:- Переходим в утилиту OpenVPN/Client Export Utility
- Выбираем свой сервер ВПН (Remote Access Server )
- В разделе Password Protect Certificate устанавливаем галочку, а в Certificate Password- пароль на контейнер *.p12 в котором будут хранятся наши сертификаты и ключ клиента.
- Сохраняем изменения кнопкой Save as default
Пароль мы задали, теперь создаем пользователя и генерируем для него сертификат и ключ - Идем в System/User Manager/Users нажимаем ADD
- Задаем имя пользователя, логин+пароль, ниже устанавливаем галочку на «Click to create a user certificate»
- Заполняем имя сертификата, выбираем Certificate authority
- Возвращаемся в утилиту OpenVPN/Client Export Utility опускаемся в низ страницы и видим что появился наш пользователь, и мы можем импортировать настройки.
- В моем случае импортируем Windows Installers (2.3.11-Ix01): x64-win6
- Осталось скачать клиента OpenVPN Community Client с сайта производителя
http://openvpn.net/index.php/open-source/downloads.html
Установить и запустить ранее скачанную конфигурацию.
На этом все, зная логины и пароли можно подключатся по VPN.
Очень важно для создания нового пользователя проходим все пункты данной инструкции с самого начала.
Вот так, теперь при подключении нужно ввести логин и пароль пользователя и дополнительно пароль на ключ.
-
Все усложнилось еще больше!
Теперь задача стоит таким образом что центр сертификации СА будет отдельным сервером который еще и изолирован от локальной сети.
Я нашел прекрасную статью в которой расписано как это сделать с консоли. Но хочется делать все в веб интерфейсе.
https://habrahabr.ru/post/233971/
Я поставил новый Pfsense тот который изолирован, сгенерировал на нем СА (*.key *.cer)
Теперь на сколько я понимаю иду на сервер на котором у меня OpenVpn и создаю запрос на генерацию сертификата для сервера "Create a Certificate Signing Reqest"
Теперь я получил сертификат со статусом "external - signature pending"
Могу экспортировать его, но как подписать на сервере СА не понимаю
Подскажите люди добрые! -
В вами же приведенной ссылке пишут:
Файл ca.key представляет собой приватный ключ центра CA, он секретный, и его нельзя переносить на другие узлы вашей сети.
Файл сертификата удостоверяющего центра ca.crt, напротив, открытый, и он будет нужен на узлах серверов и клиентов OpenVPN. Запишите файл ca.crt на USB флэш-диск, чтобы перенести на другие узлы.
По вашему же ТЗ центр сертификации СА должен быть изолирован от локальной сети. Ну вот. Что вы хотите подписать еще?
В центре сертификации создаете сертификаты, на впн-сервере и клиентах их используете. Вы без ca.key просто не сможете создать новые серверные и клиентские сертификаты. Вот и вся безопасность.
Вот перевод OpenVPN HOWTO http://lithium.opennet.ru/articles/openvpn/openvpn-howto.html
Можно даже 2 центра СА сделать - один для сервера, другой - для клиента.Подписывайте сертификаты серверов в одном CA, а клиентские сертификаты в другом CA. Директива ca в конфигурации клиента должна ссылаться на CA, подписавший сертификат для сервера, в то время как директива ca в конфигурации сервера должна ссылаться на CA-файл, которым были подписаны сертификаты клиентов.