Инструменты пользователя

Инструменты сайта


openvpn_access_server

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
openvpn_access_server [2020/03/27 07:11]
darkfire [Шаг 3. Настройка переменных EasyRSA и построение CA]
— (текущий)
Строка 1: Строка 1:
-====== Установка OpenVPN Access Server на Linux ====== 
  
-~~Title: Настройка и управление сервером OpenVPN ~~ 
-{{htmlmetatags>​ 
-metatag-description=(Пошаговая инструкция по установке OpenVPN Access Server на Linux.) 
-}} 
- 
- 
- 
- 
-За основу по установке сервиса OpenVPN и создания сертификато взяты мануалы:​ 
- 
-  * [[https://​www.digitalocean.com/​community/​tutorials/​how-to-set-up-an-openvpn-server-on-ubuntu-16-04|How To Set Up an OpenVPN Server on Ubuntu 16.04]] и её перевод на русский [[https://​www.digitalocean.com/​community/​tutorials/​openvpn-ubuntu-16-04-ru|Как настроить сервер OpenVPN в Ubuntu 16.04]] 
- 
-====== Пошаговая инструкция настройки OpenVPN сервера Ubuntu 18.04.4 LTS ====== 
-Куплена самый дешевая виртуальная машина под управлением Ubuntu 18.04.4 LTS на DigitalOcean за 5 долларов в месяц. 
- 
-Делаем первичную настройку [[https://​www.digitalocean.com/​community/​tutorials/​initial-server-setup-with-ubuntu-18-04|безопасности Ubuntu]]. Iptables при помощи [[ufw|ufw]] разрешаем только SSH. 
- 
- 
- 
- 
-===== Шаг 4. Создание центра сертификации ===== 
- 
-Теперь мы можем использовать заданные нами переменные и утилиты easy-rsa для создания центра сертификации. 
- 
-Убедитесь,​ что вы находитесь в директории центра сертификации и используйте команду source к файлу vars: 
- 
-<​file>​ 
-cd ~/​openvpn-ca 
-source vars 
-</​file>​ 
-Вы должны увидеть следующий вывод: 
- 
-Вывод 
-<​file>​ 
-NOTE: If you run ./​clean-all,​ I will be doing a rm -rf on /​home/​sammy/​openvpn-ca/​keys 
-</​file>​Возможно вам нужно будет переименовать файл: 
-<file bash> 
-cp openssl-1.0.0.cnf openssl.cnf 
-</​file>​ 
-Убедимся,​ что мы работаем в “чистой среде” выполнив следующую команду:​ 
- 
-<​file>​ 
-./clean-all 
-</​file>​ 
-Теперь мы можем создать наш корневой центр сертификации командой:​ 
- 
-<​file>​ 
-./build-ca 
-</​file>​ 
-Эта команда запустит процесс создания ключа и сертификата корневого центра сертификации. Поскольку мы задали все переменные в файле vars, все необходимые значения будут введены автоматически. Нажимайте ENTER для подтверждения выбора:​ 
- 
-В результате будет создан центр сертификации и два важных файла, ca.crt и ca.key, представляющие открытую и закрытую части сертификата SSL. 
- 
-  * ca.crt — файл открытой части сертификата CA, который используется сервером и клиентом OpenVPN, чтобы информировать друг друга о том, что они входят в единую сеть доверия и что между ними отсутствует потенциальный злоумышленник в качестве посредника. В связи с этим, копия файла ca.crt потребуется для вашего сервера и для всех ваших клиентов. 
-  * ca.key — закрытый ключ CA, используемый для подписания ключей и сертификатов серверов и клиентов. Если злоумышленник получит доступ к CA и файлу ca.key, он сможет подписывать запросы сертификатов и получать доступ к вашей VPN, что нарушит ее безопасность. Поэтому файл ca.key должен храниться только на компьютере CA, и для дополнительной безопасности компьютер CA следует выключать,​ когда он не используется для подписывания запросов сертификатов. 
- 
-Теперь у нас есть центр сертификации,​ который мы сможем использовать для создания всех остальных необходимых нам файлов. 
- 
-Теперь ваш центр сертификации установлен и готов подписывать запросы сертификатов. 
- 
-===== Шаг 5. Создание сертификата сервера,​ ключа и файлов шифрования ===== 
-Далее создадим сертификат,​ пару ключей и некоторые дополнительные файлы, используемые для осуществления шифрования,​ для нашего сервера. 
- 
-Начнём с создания сертификата OpenVPN и ключей для сервера. Это можно сделать следующей командой:​ 
- 
-Внимание:​ Если ранее вы выбрали имя, отличное от server, вам придётся немного изменить некоторые инструкции. Например,​ при копировании созданных файлов в директорию /​etc/​openvpn вам придётся заменить имена на заданные вами. Вам также придётся изменить файл /​etc/​openvpn/​server.conf для того, чтобы он указывал на корректные .crt и .key файлы. 
- 
-<​file>​ 
-./​build-key-server server 
-</​file>​ 
-Вывод опять будет содержать значения по умолчанию,​ переданные этой команде (server), а также значения из файла vars. 
- 
-Согласитесь со всеми значениями по умолчанию,​ нажимая ENTER. Не задавайте challenge password. В конце процесса два раза введите y для подписи и подтверждения создания сертификата:​ 
- 
-Вывод 
-<​file>​ 
-. . . 
- 
-Certificate is to be certified until May  1 17:51:16 2026 GMT (3650 days) 
-Sign the certificate?​ [y/n]:y 
- 
- 
-1 out of 1 certificate requests certified, commit? [y/n]y 
-Write out database with 1 new entries 
-Data Base Updated 
-</​file>​ 
-Далее создадим оставшиеся файлы. Мы можем сгенерировать сильные ключи протокола Диффи-Хеллмана,​ используемые при обмене ключами,​ командой:​ 
- 
-<​file>​ 
-./build-dh 
-</​file>​ 
-Для завершения этой команды может потребоваться несколько минут. 
- 
-Далее мы можем сгенерировать подпись HMAC для усиления способности сервера проверять целостность TSL: 
- 
-<​file>​ 
-openvpn --genkey --secret keys/ta.key 
-</​file>​ 
- 
-===== Шаг 6. Создание сертификата и пары ключей для клиента ===== 
- 
-Далее мы можем сгенерировать сертификат и пару ключей для клиента. Вообще это можно сделать и на клиентской машине и затем подписать полученный ключ центром сертификации сервера,​ но в этой статье для простоты мы сгенерируем подписанный ключ на сервере. 
- 
-В этой статье мы создадим ключ и сертификат только для одного клиента. Если у вас несколько клиентов,​ вы можете повторять этот процесс сколько угодно раз. Просто каждый раз передавайте уникальное значение скрипту. 
- 
-Поскольку мы можем вернуться к этому шагу позже, мы повторим команду source для файла vars. Мы будем использовать параметр client1 для создания первого сертификата и ключа. 
- 
-Для создания файлов без пароля для облегчения автоматических соединений используйте команду build-key: 
- 
-<​file>​ 
-cd /​etc/​openvpn/​easy-rsa/​ 
-source vars 
-./build-key client1 
-</​file>​ 
-Для создания файлов,​ защищённых паролем,​ используйте команду build-key-pass:​ 
- 
-<​file>​ 
-cd /​etc/​openvpn/​easy-rsa/​ 
-source vars 
-./​build-key-pass client1 
-</​file>​ 
-В ходе процесса создания файлов все значения по умолчанию будут введены,​ вы можете нажимать ENTER. Не задавайте challenge password и введите y на запросы о подписи и подтверждении создания сертификата. 
- 
-===== Шаг 7. Настройка сервиса OpenVPN ===== 
- 
-Далее настроим сервис OpenVPN с использованием созданных ранее файлов. 
- 
-Копирование файлов в директорию OpenVPN 
-Нам необходимо скопировать нужные нам файлы в директорию /​etc/​openvpn. 
- 
-Сначала скопируем созданные нами файлы. Они находятся в директории ~/​openvpn-ca/​keys,​ в которой они и были созданы. Нам необходимо скопировать сертификат и ключ центра сертификации,​ сертификат и ключ сервера,​ подпись HMAC и файл Diffie-Hellman:​ 
- 
-<file bash> 
-cd /​etc/​openvpn/​easy-rsa/​keys 
-sudo cp ca.crt ca.key server.crt server.key ta.key dh2048.pem /​etc/​openvpn 
-</​file>​ 
-Далее нам необходимо скопировать и распаковать файл-пример конфигурации OpenVPN в конфигурационную директорию,​ мы будем использовать этот файл в качестве базы для наших настроек:​ 
- 
-<file bash> 
-gunzip -c /​usr/​share/​doc/​openvpn/​examples/​sample-config-files/​server.conf.gz | sudo tee /​etc/​openvpn/​server.conf 
-</​file>​ 
openvpn_access_server.1585307501.txt.gz · Последние изменения: 2020/03/27 07:11 — darkfire