|
|||||||
OpenVPN на Ubuntu 16.04: установка
Время создания: 13.01.2022 22:29
Автор: alensav
Текстовые метки: OpenVPN на Ubuntu 16.04: установка
Раздел: VPN
Запись: alensav/MyTetra2/main/base/16421021495s41c2q39w/text.html на raw.githubusercontent.com
|
|||||||
|
|||||||
OpenVPN на Ubuntu 16.04: установка Обсудить В закладки Администрирование #Серверы #VPN #Ubuntu #Безопасность 11 мин. чтения OpenVPN – это технология, использующая принцип VPN для создания зашифрованных каналов между компьютерами. А технология VPN – или Virtual Private Network (виртуальная приватная сеть) – это, грубо говоря, защищенный канал, позволяющий паре устройств соединиться в рамках интернета. Ключевое слово – защищенный. VPN обладает и возможностями анонимайзера, когда IP-адрес компьютера изменяется для того, чтобы его было невозможно отследить. Отсюда пошел миф о том, что VPN и OpenVPN используют в основном злоумышленники – это не так. В первую очередь VPN призван защитить вас, ваши данные и ваш компьютер в целом: при использовании VPN данные шифруются по особому алгоритму, и взломать его крайне проблематично. Итак, еще раз о плюсах такой системы:
Использование OpenVPN на примере из жизни: допустим, вы хотите подключиться со смартфона или планшета к публичной (и неизвестно, насколько защищенной) сети Wi-Fi где-нибудь в отеле или кафе; технология VPN в сочетании с использованием HTTPS позволяет обеспечить полную защищенность и приватность всем данным, которые вы будете передавать (логины, пароли и другие данные). Требования Вам понадобится сервер с установленной операционной системой Ubuntu 16.04, а также пользователь с sudo правами (не суперпользователь). Авторизуйтесь под этим пользователем для того, чтобы выполнить написанные ниже действия. 1. Установка OpenVPN Начинаем с самого первого – с установки OpenVPN на сервер. Так как OpenVPN есть в стандартных репозиториях Ubuntu, для установки можно использовать утилиту apt. Необходимо еще также установить пакет easy-rsa; он нужен для настройки внутреннего центра сертификации (CA или certificate authority). Центр сертификации нужен для подтверждения подлинности ключей шифрования. Он и будет использоваться в создаваемой VPN сети. Обновите список доступных пакетов, а затем установите нужные: $ sudo apt-get update $ sudo apt-get install openvpn easy-rsa Следующая задача – настроить то, что мы только что установили. 2. Настройка центра сертификации OpenVPN – это TLS/SSL VPN. То есть для шифрования трафика между клиентами и сервером будут использоваться сертификаты. Для того, чтобы работали только проверенные сертификаты, необходимо установить собственный центр сертификации (или CA). $ make-cadir ~/openvpn-ca Теперь зайдите в эту директорию для того, чтобы приступить к настройке центра сертификации: $ cd ~/openvpn-ca Теперь нужно открыть для редактирования файл vars в этой директории. В нем вы сможете настроить переменные, которые будет использовать центр сертификации. Открыть файл можно в любом текстовом редакторе: $ nano vars Внутри вы увидите несколько переменных, которые можно изменять в зависимости от того, какие параметры вы хотите видеть у создаваемых сертификатов. export KEY_COUNTRY="US" export KEY_PROVINCE="CA" export KEY_CITY="SanFrancisco" export KEY_ORG="Fort-Funston" export KEY_EMAIL="me@myhost.mydomain" export KEY_OU="MyOrganizationalUnit" Все, что идет в кавычках, нужно отредактировать и поменять; главное – не оставляйте там пустое место!
Ниже также можно установить имя ключа. Можно и просто назвать server: export KEY_NAME="server" После этих изменений сохраните и закройте файл. 3. Создание центра сертификации Для создания центра сертификации можно использовать переменные, которые были установлены ранее, и утилиты easy-rsa. Теперь нужно убедиться, что вы находитесь в нужной директории (то есть директории CA – центра сертификации): $ cd ~/openvpn-ca А затем использовать следующую команду: $ source vars На экране должен отобразиться следующий вывод: Output NOTE: If you run ./clean-all, I will be doing a rm -rf on /home/sammy/openvpn-ca/keys Теперь нужно удалить все ненужные данные для того, чтобы почистить рабочую среду: $ ./clean-all Переходим к построению корня центра сертификации: $ ./build-ca Запустится процесс создания в том числе ключа и сертификата корня центра сертификации. Ранее необходимые переменные уже были заданы в файле vars, поэтому они будут вставлены автоматически. Во время возникающих вопросов нажимайте Enter для подтверждения: Output Generating a 2048 bit RSA private key ..........................................................................................+++ ...............................+++ writing new private key to 'ca.key' ----- You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----- Country Name (2 letter code) [RU]: State or Province Name (full name) [Moscow region]: Locality Name (eg, city) [Moscow]: Organization Name (eg, company) [GoodFirm]: Organizational Unit Name (eg, section) [IT]: Common Name (eg, your name or your server's hostname) [GoodFirm CA]: Name [server]: Email Address [hello@example.com]: Теперь у вас появился центр сертификации, который можно использовать для того, чтобы создать все остальные необходимые файлы. 4. Создание сертификата сервера, ключа и файлов шифрования На этом этапе необходимо сгенерировать сертификат и пару ключей для сервера, а также несколько дополнительных файлов, которые будут использоваться в процессе шифрования. Начните с генерирования OpenVPN сертификата сервера и пары ключей. Для этого используйте команду: $ ./build-key-server server Примечание. Если имя сервера отличается от написанного в этой статье (server), то вам нужно будет изменить некоторые команды, чтобы в них использовалось то имя, которое вы указали ранее. К примеру, необходимо будет изменить файл /etc/openvpn/server.conf для того, чтобы в нем содержались указания на правильные файлы .crt и .key. Как и до этого, вывод после введения команды будет содержать данные, которые были установлены до этого, поэтому можно просто нажимать Enter для подтверждения корректности данных. Однако не задавайте пароль вызова (challenge password) для этой установки. В конце вам нужно два раза ввести y (yes – да) на два вопроса для подписи и создания сертификата: Output . . . 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 Теперь нужно заняться созданием нескольких других вещей, в частности, нужно сгенерировать ключи протокола Диффи — Хеллмана: $ ./build-dh Для выполнения этой команды может потребоваться время. После этого нужно создать подпись HMAC для того, чтобы усилить способности сервера к проверке TLS: $ openvpn --genkey --secret keys/ta.key 5. Создание сертификата клиента и пары ключей Наконец, вам необходимо сгенерировать сертификат и пару ключей для клиента. Несмотря на то, что создать ключ можно и на машине клиента (а затем в целях безопасности подписать его в центре сертификации), в этой статье я расскажу о том, как сгенерировать подписанный ключ на сервере. Для удобства (чтобы вы могли использовать эту инструкцию и возвращаться к ней потом) для файла vars будет еще раз выполнена команда source. А client1 будет является значением для первого сертификата и пары ключей. $ cd ~/openvpn-ca $ source vars Если вы хотите создать файлы без пароля и облегчить автоматические соединения, пользуйтесь командой built-key: $ ./build-key client1 Если вы, наоборот, хотите использовать защиту паролем, то пользуйтесь командой build-key-pass: $ ./build-key-pass client1 Опять же, как и в предыдущих случаях во время создания файлов все значения по умолчанию будут заполнены, поэтому вам нужно просто подтверждать их, нажимая Enter. Как и ранее, оставьте пароль вызова пустым и убедитесь, что вы ввели y на все запросы подписи и подтверждения создания сертификата. |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|