Как настроить сервер OpenVPN в Ubuntu 18.04
В этом руководстве вы настроите сервер OpenVPN на сервере Ubuntu 18.04, а затем настроите доступ к нему из Windows, macOS, iOS и / или Android. В этом руководстве все этапы установки и настройки будут максимально простыми для каждой из этих установок.
Шаг 1 - Установка OpenVPN и EasyRSA
Для начала обновите индекс пакетов вашего VPN-сервера и установите OpenVPN. OpenVPN доступен в репозиториях Ubuntu по умолчанию, поэтому вы можете использовать его apt для установки:
OpenVPN - это TLS / SSL VPN. Это означает, что он использует сертификаты для шифрования трафика между сервером и клиентами. Для выдачи доверенных сертификатов вы создадите свой собственный простой центр сертификации (CA). Для этого мы загрузим последнюю версию EasyRSA, которую мы будем использовать для построения нашей инфраструктуры открытых ключей CA (PKI), из официального репозитория проекта GitHub.
Как упоминалось в предварительных условиях, мы будем строить ЦС на отдельном сервере. Причина такого подхода заключается в том, что если злоумышленник сможет проникнуть на ваш сервер, он сможет получить доступ к вашему секретному ключу CA и использовать его для подписи новых сертификатов, предоставляя им доступ к вашей VPN. Соответственно, управление ЦС с автономного компьютера помогает предотвратить доступ неавторизованных пользователей к вашей VPN. Также обратите внимание, что рекомендуется держать CA-сервер выключенным, когда он не используется для подписи ключей, в качестве дополнительной меры предосторожности.
Чтобы приступить к созданию инфраструктуры CA и PKI, wget загрузите последнюю версию EasyRSA как на своем компьютере CA, так и на сервере OpenVPN . Чтобы получить последнюю версию, перейдите на страницу « Релизы» официального проекта EasyRSA GitHub , скопируйте ссылку на скачивание для файла, оканчивающегося на .tgz, и вставьте его в следующую команду:
Вы успешно установили все необходимое программное обеспечение на свой сервер и компьютер CA. Продолжайте настраивать переменные, используемые EasyRSA, и настраивать каталог CA, из которого вы будете создавать ключи и сертификаты, необходимые для доступа вашего VPN-сервера и клиентов.
Шаг 2 - Конфигурирование переменных EasyRSA и построение CA
EasyRSA поставляется с файлом конфигурации, который вы можете редактировать, чтобы определить ряд переменных для вашего CA.
После этого easyrsaснова вызовите скрипт, следуя за ним с build-caопцией. Это создаст ЦС и создаст два важных файла - ca.crtи ca.key- которые составляют открытую и закрытую стороны сертификата SSL.
- ca.crtэто файл открытого сертификата CA, который в контексте OpenVPN сервер и клиент используют для информирования друг друга о том, что они являются частью одной и той же сети доверия, а не того, кто выполняет атаку «человек посередине». По этой причине вашему серверу и всем вашим клиентам потребуется копия ca.crtфайла.
- ca.keyэто закрытый ключ, который машина CA использует для подписи ключей и сертификатов для серверов и клиентов. Если злоумышленник получит доступ к вашему ЦС и, в свою очередь, к вашему ca.keyфайлу, он сможет подписывать запросы на сертификаты и получать доступ к вашему VPN, нарушая его безопасность. Вот почему ваш ca.keyфайл должен быть только на вашем компьютере CA, и в идеале ваш компьютер CA должен оставаться в автономном режиме, если не подписывает запросы на сертификат в качестве дополнительной меры безопасности.
Общее имя - это имя, используемое для ссылки на этот компьютер в контексте центра сертификации. Вы можете ввести любую строку символов для общего имени ЦС, но для простоты нажмите, ENTER чтобы принять имя по умолчанию.
Шаг 3 - Создание сертификата сервера, ключа и файлов шифрования
Теперь, когда у вас есть готовый центр сертификации, вы можете сгенерировать секретный ключ и запрос сертификата со своего сервера, а затем передать запрос в ваш центр сертификации для подписи, создав необходимый сертификат. Вы также можете создавать дополнительные файлы, используемые в процессе шифрования.
При этом все файлы сертификатов и ключей, необходимые вашему серверу, были сгенерированы. Вы готовы создать соответствующие сертификаты и ключи, которые ваш клиентский компьютер будет использовать для доступа к вашему серверу OpenVPN.
Шаг 1 - Генерация клиентского сертификата и пары ключей
Хотя вы можете сгенерировать закрытый ключ и запрос сертификата на своем клиентском компьютере, а затем отправить его в ЦС для подписи, в этом руководстве описан процесс создания запроса сертификата на сервере. Преимущество этого заключается в том, что мы можем создать сценарий, который будет автоматически генерировать файлы конфигурации клиента, которые содержат все необходимые ключи и сертификаты. Это позволяет избежать необходимости передавать ключи, сертификаты и файлы конфигурации клиентам и упрощает процесс присоединения к VPN.
Для этого руководства мы создадим один ключ клиента и пару сертификатов. Если у вас более одного клиента, вы можете повторить этот процесс для каждого. Обратите внимание, однако, что вам нужно будет передать уникальное значение имени в сценарий для каждого клиента. В этом руководстве первая пара сертификат / ключ упоминается как client1.
При этом все сертификаты и ключи вашего сервера и клиента были сгенерированы и хранятся в соответствующих каталогах на вашем сервере. Есть еще несколько действий, которые необходимо выполнить с этими файлами, но они придут на более позднем этапе. Сейчас вы можете перейти к настройке OpenVPN на вашем сервере.
Шаг 1 - Настройка службы OpenVPN
Теперь, когда сертификаты и ключи вашего клиента и сервера были сгенерированы, вы можете приступить к настройке службы OpenVPN для использования этих учетных данных.
Начните с копирования образца файла конфигурации OpenVPN в каталог конфигурации, а затем распакуйте его, чтобы использовать его в качестве основы для вашей настройки:
Изменения, которые вы внесли в server.conf файл примера до этого момента, необходимы для функционирования OpenVPN. Изменения, описанные ниже, являются необязательными, хотя они также необходимы для многих общих случаев использования.
Шаг 6 - Настройка сетевой конфигурации сервера
Есть некоторые аспекты сетевой конфигурации сервера, которые необходимо настроить, чтобы OpenVPN мог правильно маршрутизировать трафик через VPN. Первым из них является IP-пересылка , метод определения, куда должен направляться IP-трафик. Это важно для функциональности VPN, которую предоставляет ваш сервер.
Затем настройте сам брандмауэр, чтобы разрешить трафик в OpenVPN. Если вы не изменили порт и протокол в /etc/openvpn/server.conf файле, вам нужно будет открыть UDP-трафик к порту 1194. Если вы изменили порт и / или протокол, подставьте значения, которые вы выбрали здесь.
Ваш сервер теперь настроен для правильной обработки трафика OpenVPN.