Меню Рубрики

Установка openvpn vps ubuntu

Настройка OpenVPN в Ubuntu

Настоящая частная виртуальная сеть или Virtual Private Network (VPN) — это зашифрованное соединенный туннель между двумя сетями, который соединяет две доверенные точки. Это не веб-протокол HTTPS, который считает доверенными всех клиентов. К VPN могут подключиться только те клиенты, которые имеют специальные ключи доступа.

Понятие VPN в наши дни стало очень растянутым, после появления частных виртуальных сетей, которые доверяют всем и распространения HTTPS. Многие из сетей VPN представляют из себя коммерческие решения с минимальным количеством настроек для обеспечения удаленного доступа сотрудников. Но не все доверяют этим решениям. Частная виртуальная сеть соединяет две сети в одну, например, сеть офиса и домашнюю сеть работника. Сервер VPN необходим для того чтобы сервер и клиент могли пройти аутентификацию друг с другом.

Настройка аутентификации сервера и клиента требует много работы, и поэтому коммерческие решения с минимумом настроек проигрывают в этом плане. Но на самом деле не так уж трудно установить сервер OpenVPN. Вам понадобится два узла в разных сетях чтобы организовать тестовое окружение, например, можно использовать несколько виртуальных машин или реальные серверы. Как вы уже поняли, в этой статье будет рассмотрена настройка OpenVPN в Ubuntu для создания полноценной частной виртуальной сети.

Установка OpenVPN

На обоих машинах должен быть установлен OpenVPN, это довольно популярная программа, поэтому вы можете установить ее из официальных репозиториев. Также нам понадобится Easy-RSA для работы с секретными ключами. Для установки программ в Ubuntu используйте такую команду:

sudo apt install openvpn easy-rsa

Оба пакеты должны быть установлены как на сервере, так и на клиенте. Они понадобятся для настройки программы. Первый этап статьи установка и настройка openvpn завершен.

Настройка центра сертификации

Первое что нужно сделать, это создать правильную инфраструктуру для открытых ключей на сервере. Сервером мы считаем ту машину, к которой будут подключаться пользователи. Собственный центр сертификации дает несколько преимуществ, у вас будет собственный орган сертификации, который упростит распространение ключей и управление ими. Например, вы можете отозвать сертификаты клиента на сервере. Также теперь не нужно хранить все клиентские сертификаты, центру сертификации будет достаточно знать, что сертификат подписан CA. Кроме сложной системы ключей, вы можете использовать статические ключи, если нужно предоставить доступ только нескольким пользователям.

Обратите внимание, что все секретные ключи должны находится в надежном месте. В OpenVPN открытый ключ называется сертификатом и имеет расширение .crt, а закрытый ключ так и называется ключом, его расширение — .key.

Сначала создайте папку для хранения сертификатов Easy-RSA. Фактически, конфигурация OpenVPN выполняется вручную, так что папку можно разместить где угодно:

sudo mkdir /etc/openvpn/easy-rsa

Затем скопируем в эту папку все необходимые скрипты easy-rsa:

sudo cp -R /usr/share/easy-rsa /etc/openvpn/

Далее нам нужно создать центр сертификации в этой папке. Для этого перейдите в нее и выполните такие команды:

sudo -i
# source ./vars
# ./clear-all
# ./build-ca

Первой командной мы переключаемся в консоль от имени суперпользователя, второй загружаем переменные окружения из файла ./vars. Команда ./clear-all создает папку keys если ее нет и очищает ее содержимое. И последняя команда инициализирует наш центр сертификации. Теперь в папке .keys появились все необходимые ключи:

Настройка сертификатов клиента

Дальше нужно повторить процедуру копирования скриптов управления RSA, как мы это делали на сервере:

sudo cp -R /usr/share/easy-rsa /etc/openvpn/

Теперь нам нужно скопировать сертификат, файл с расширением .crt в папку /etc/openvpn на всех клиентах. Например, скачаем этот файл для нашего клиента с помощью scp:

sudo scp пользователь@хост:/etc/openvpn/easy-rsa/keys/ca.crt /etc/openvpn/easy-rsa/keys

Только теперь можно создать свой секретный ключ на основе сертификата CA:

sudo -i
# source ./vars
# build-req Sergiy

Обратите внимание, что ca.crt должен лежать в папке с ключами, иначе ничего не сработает. Теперь утилита создаст ключ, на основе которого, вы сможете подключиться к OpenVPN серверу, но вам еще осталось подписать его на сервере. Отправьте полученный .csr файл на сервер с помощью того же самого scp:

scp /etc/openvpn/easy-rsa/keys/Sergiy.csr пользователь@хост:

Затем уже на сервере в папке /etc/openvpn/easy-rsa нужно выполнить команду подписи сертификата:

Подпись сертификата нужно подтвердить. Затем программа сообщит что он был подписан и добавлен в базу данных. В папке с сертификатом csr появится файл .crt, который нужно вернуть назад на клиентскую машину:

sudo scp пльзователь@хост:/home/Sergiy.crt /etc/openvpn/easy-rsa/keys

Только после этого сервер и клиент имеют все необходимые ключи для подключения и установки связи. Осталось еще несколько настроек. Если вы планируете использовать шифрование TLS, то необходимо создать на сервере набор данных Диффи-Хафмана, для этого используйте команду:

Дальше будет рассмотрена настройка OpenVPN для сервера и клиента, осталось совсем немного до получения рабочей конфигурации.

Настройка OpenVPN

Теперь настройка сервера OpenVPN. По умолчанию, в папке конфигурационных файлов OpenVPN ничего нет. Их нужно создать самостоятельно в зависимости от того, что планируется настраивать, сервер или клиент. Нужный файл конфигурации OpenVPN можно найти по адресу /usr/share/doc/openvpn/examples/sample-config-files/. Сначала создадим конфигурационный файл для сервера:

zcat /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz | sudo tee /etc/openvpn/server.conf

Здесь вам нужно настроить несколько параметров:

port и proto — порт и протокол, по которым будет работать программа;

Все созданные ключи нужно прописать в конфигурационном файле. Наши ключи хранятся по адресу /etc/openvpn/easy-rsa/keys:

ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/ca.crt
key /etc/openvpn/easy-rsa/keys/ca.key
dh /etc/openvpn/easy-rsa/keys/dh.pem

Настраиваем диапазон адресов для виртуальной сети, наш сервер будет доступен по первому из них — 10.8.0.1:

После завершения настройки сохраните изменения в файле, вы можете либо вставить всю эту конфигурацию себе или отредактировать файл с примером. Готовые рабочие настройки сервера:

port 1194
proto udp
comp-lzo
dev tun
ca /etc/openvpn/easy-rsa/2.0/keys/ca.crt
cert /etc/openvpn/easy-rsa/2.0/keys/ca.crt
dh /etc/openvpn/easy-rsa/2.0/keys/dh2048.pem
topology subnet
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt

Настройка сервера OpenVPN завершена. Дальше необходимо запустить OpenVPN сервер. Это можно сделать прямо из командной строки, просто укажите адрес конфигурационного файла:

Дальше нам нужно настроить компьютер клиента. Вы можете аналогично скопировать конфигурационный файл из директории с примерами, только на этот раз его не нужно распаковывать:

sudo cp /usr/share/doc/openvpn/examples/sample-config-files/client.conf /etc/openvpn/client.conf

Вы можете создать несколько конфигурационных файлов клиента для подключения к разным серверам. Откройте конфигурационный файл и измените в нем такие параметры:

remote — это ваш адрес сервера OpenVPN, адрес и порт должны совпадать с настроенными на сервере, например:

ca — ключ, который вы получили от центра сертификации, мы расположили его в папке /etc/openvpn/.

cert и key — это открытый и секретный ключи клиента, с помощью них вы и будете подключаться к серверу. Как вы помните, мы сохранили их в папке /etc/openvpn/easy-rsa/keys/.

ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/Sergiy.crt
key /etc/openvpn/easy-rsa/keys/Sergiy.key

Остальные настройки можно оставить как есть. Вот файл настройки целиком, который вы можете скопировать:

client
dev tun
proto udp
remote 194.67.215.125 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca /etc/openvpn/easy-rsa/keys/ca.crt
cert /etc/openvpn/easy-rsa/keys/Sergiy.crt
key /etc/openvpn/easy-rsa/keys/Sergiy.key
tls-auth ta.key 1
comp-lzo
verb 3

Сохраните настройки, теперь клиент готов к подключению. Обратите внимание, что конфигурационные файлы должны максимально совпадать, отсутствие определенных опций в одном из файлов может привести к ошибкам. Это не значит, что файлы будут идентичны, но основные параметры openvpn должны быть одинаковыми. Вам осталось запустить OpenVPN на этой машине используя этот конфигурационный файл:

Готово, теперь все работает, если вы выполните ifconfig, то увидите что был добавлен интерфейс tun0:

Также вы можете попробовать выполнить ping адреса 10.8.0.1, именно этот адрес мы настроили для нашего сервера OpenVPN, пакеты ping будут нормально отправляться. Если пакеты не идут, или еще что-то не работает, обратите внимание на вывод обоих программ, возможно, возникли какие-либо ошибки или предупреждения, также убедитесь, что брандмауэр сервера разрешает доступ извне по udp для порта 1194. Еще можно запустить сервер или клиент, настроив в конфиге уровень подробности на максимум verb 9. Очень часто это помогает понять почему что-то не работает. Но вы еще не можете направлять трафик через туннель. Для этого нужно разрешить форвардинг и добавить несколько правил iptables. Сначала разрешаем транзит пакетов на сервере:

Читайте также:  Установка деталей в токарных патронах

sysctl -w net.ipv4.ip_forward=1

Затем добавьте такие правила. Разрешаем всем подключаться к нашему серверу:

iptables -A INPUT -p udp —dport 1194 -j ACCEPT

Разрешаем пользователям OpenVPN доступ к интернету:

iptables -I FORWARD -i tun0 -o eth0 -j ACCEPT
# iptables -I FORWARD -i eth0 -o tun0 -j ACCEPT
# iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE

Выводы

В этой статье мы рассмотрели как выполняется установка и настройка OpenVPN Ubuntu, а также как настроить openvpn для работы с аутентификацией по ключу. Организация частных виртуальных сетей может быть очень полезной не только в организациях, но и скажем для обмена данными между двумя вашими компьютерами или для повышения безопасности в сети.

источник

Contents

Share

Sign up for our newsletter.

Get the latest tutorials on SysAdmin and open source topics.

Related

Как настроить сервер OpenVPN в Ubuntu 16.04

Введение

Хотите иметь безопасный и защищённый доступ в Интернет с вашего смартфона или ноутбука при подключении к незащищённой сети через WiFi отеля или кафе? Виртуальная частная сеть (Virtual Private Network, VPN) позволяет использовать незащищённые сети таким образом, как если бы вы работали в частной сети. Весь ваш трафик в этом случае проходит через VPN-сервер.

В комбинации с использованием HTTPS-соединения описываемые далее настройки позволят вам обезопасить свою приватную информацию, например, логины и пароли, а также ваши покупки. Более того, вы сможете обходить региональные ограничения и цензуру, а также скрывать своё местонахождение и незашифрованный HTTP-трафик от незащищённой сети.

OpenVPN представляет собой мощное и гибко настраиваемое программное обеспечение с открытым исходным кодом для работы с Secure Socket Layer (SSL) VPN. В этой статье мы установим и настроим OpenVPN сервер, а также научимся осуществлять к нему доступ из Windows, Mac OS, iOS и Android. Для этого мы выполним несколько простых шагов.

Необходимые условия

Прежде всего вам необходимо иметь сервер с Ubuntu 16.04.

Перед тем, как начать следовать шагам, описанным в этой статье, вам необходимо настроить отдельный, не-рутовый (non-root) профиль пользователя с привилегиями sudo на вашем сервере. Вы можете сделать это следуя инструкциям, описанным в статье о первичной настройке сервера на Ubuntu 16.04. В этой же статье описан процесс настройки файрвола; далее мы будем считать, что файрвол настроен на вашем сервере.

Когда вы будете готовы начать, зайдите на ваш сервер под созданным вами sudo -пользователем и следуйте шагам, описанным ниже.

Шаг 1. Установка OpenVPN

Сначала установим OpenVPN на наш сервер. OpenVPN доступен в стандартных репозиториях Ubuntu, мы можем использовать apt для его установки. Также мы установим пакет easy-rsa , который позволит нам настроить наш собственный внутренний центр сертификации (certificate authority, CA) для использования с нашей VPN.

Обновим список пакетов сервера и установим необходимые пакеты следующими командами:

Необходимое программное обеспечение установлено и готово к настройке.

Шаг 2. Создание директории центра сертификации

OpenVPN это виртуальная частная сеть, использующая TLS/SSL. Это означает, что OpenVPN использует сертификаты для шифрования трафика между сервером и клиентами. Для выпуска доверенных сертификатов (trusted certificates) нам потребуется создать наш собственный центр сертификации.

Для начала скопируем шаблонную директорию easy-rsa в нашу домашнюю директорию с помощью команды make-cadir :

Далее зайдём в эту директорию для начала настройки центра сертификации:

Шаг 3. Настройка переменных центра сертификации

Для настройки переменных нашего центра сертификации нам необходимо отредактировать файл vars . Откройте этот файл в вашем текстовом редакторе:

Внутри файла вы найдёте переменные, которые можно отредактировать, и которые задают параметры сертификатов при их создании. Нам нужно изменить всего несколько переменных.

Перейдите ближе к концу файла и найдите настройки полей, используемые по умолчанию при создании сертификатов. Они должны выглядеть примерно так:

Замените значения, выделенные красным, на что-нибудь другое, не оставляйте их не заполненными:

Пока мы в этом файле, отредактируем значение KEY_NAME чуть ниже, которое заполняет поле субъекта сертификатов. Для простоты зададим ему название server :

Сохраните и закройте файл.

Шаг 4. Создание центра сертификации

Теперь мы можем использовать заданные нами переменные и утилиты easy-rsa для создания центра сертификации.

Убедитесь, что вы находитесь в директории центра сертификации и используйте команду source к файлу vars :

Вы должны увидеть следующий вывод:

Убедимся, что мы работаем в “чистой среде” выполнив следующую команду:

Теперь мы можем создать наш корневой центр сертификации командой:

Эта команда запустит процесс создания ключа и сертификата корневого центра сертификации. Поскольку мы задали все переменные в файле vars , все необходимые значения будут введены автоматически. Нажимайте ENTER для подтверждения выбора:

Теперь у нас есть центр сертификации, который мы сможем использовать для создания всех остальных необходимых нам файлов.

Шаг 5. Создание сертификата, ключа и файлов шифрования для сервера

Далее создадим сертификат, пару ключей и некоторые дополнительные файлы, используемые для осуществления шифрования, для нашего сервера.

Начнём с создания сертификата OpenVPN и ключей для сервера. Это можно сделать следующей командой:

Внимание: Если ранее вы выбрали имя, отличное от server , вам придётся немного изменить некоторые инструкции. Например, при копировании созданных файлов в директорию /etc/openvpn вам придётся заменить имена на заданные вами. Вам также придётся изменить файл /etc/openvpn/server.conf для того, чтобы он указывал на корректные .crt и .key файлы.

Вывод опять будет содержать значения по умолчанию, переданные этой команде ( server ), а также значения из файла vars .

Согласитесь со всеми значениями по умолчанию, нажимая ENTER. Не задавайте challenge password. В конце процесса два раза введите y для подписи и подтверждения создания сертификата:

Далее создадим оставшиеся файлы. Мы можем сгенерировать сильные ключи протокола Диффи-Хеллмана, используемые при обмене ключами, командой:

Для завершения этой команды может потребоваться несколько минут.

Далее мы можем сгенерировать подпись HMAC для усиления способности сервера проверять целостность TSL:

Шаг 6. Создание сертификата и пары ключей для клиента

Далее мы можем сгенерировать сертификат и пару ключей для клиента. Вообще это можно сделать и на клиентской машине и затем подписать полученный ключ центром сертификации сервера, но в этой статье для простоты мы сгенерируем подписанный ключ на сервере.

В этой статье мы создадим ключ и сертификат только для одного клиента. Если у вас несколько клиентов, вы можете повторять этот процесс сколько угодно раз. Просто каждый раз передавайте уникальное значение скрипту.

Поскольку мы можем вернуться к этому шагу позже, мы повторим команду source для файла vars . Мы будем использовать параметр client1 для создания первого сертификата и ключа.

Для создания файлов без пароля для облегчения автоматических соединений используйте команду build-key :

Для создания файлов, защищённых паролем, используйте команду build-key-pass :

В ходе процесса создания файлов все значения по умолчанию будут введены, вы можете нажимать ENTER. Не задавайте challenge password и введите y на запросы о подписи и подтверждении создания сертификата.

Шаг 7. Настройка сервиса OpenVPN

Далее настроим сервис OpenVPN с использованием созданных ранее файлов.

Копирование файлов в директорию OpenVPN

Нам необходимо скопировать нужные нам файлы в директорию /etc/openvpn .

Сначала скопируем созданные нами файлы. Они находятся в директории

/openvpn-ca/keys , в которой они и были созданы. Нам необходимо скопировать сертификат и ключ центра сертификации, сертификат и ключ сервера, подпись HMAC и файл Diffie-Hellman:

Далее нам необходимо скопировать и распаковать файл-пример конфигурации OpenVPN в конфигурационную директорию, мы будем использовать этот файл в качестве базы для наших настроек:

Читайте также:  Установка коронки на зуб с разу

Настройка конфигурации OpenVPN

Теперь, когда наши файлы находятся на своём месте, займёмся настройкой конфигурационного файла сервера:

Базовая настройка

Сначала найдём секцию HMAC поиском директивы tls-auth . Удалите “;” для того, чтобы раскомментировать строку с tls-auth . Далее добавьте параметр key-direction и установите его значение в “0”:

Далее найдём секцию шифрования, нас интересуют закомментированные строки cipher . Шифр AES-128-CBC обеспечивает хороший уровень шифрования и широко поддерживается другими программными продуктами. Удалите “;” для раскомментирования строки AES-128-CBC :

Под этой строкой добавьте строку auth и выберите алгоритм HMAC. Хорошим выбором будет SHA256 :

Наконец, найдите настройки user и group и удалите “;” для раскомментирования этих строк:

(Опционально) Проталкивание изменений DNS для перенаправления всего трафика через VPN

Сделанные нами настройки создают VPN соединение между двумя машинами, но они не заставляют эти машины использовать VPN соединение. Если вы хотите использовать VPN соединение для всего своего трафика, вам необходимо протолкнуть (push) настройки DNS на клиентские машины.

Для этого вам необходимо раскомментировать несколько директив. Найдите секцию redirect-gateway и удалите “;” из начала строки для расскоментирования redirect-gateway :

Чуть ниже находится секция dhcp-option . Удалите “;” для обеих строк:

Это позволит клиентам сконфигурировать свои настройки DNS для использования VPN соединения в качестве основного.

(Опционально) Настройка порта и протокола

По умолчанию OpenVPN использует порт 1194 и протокол UDP для соединения с клиентами. Если вам необходимо изменить порт из-за каких-либо ограничений для ваших клиентов, вы можете сделать это изменив настройку port . Если вы не хостите веб-контент на вашем OpenVPN сервере, вы можете использовать порт 443, поскольку этот порт обычно разрешён для использования в большинстве файрволов.

Используемый протокол может иметь ограничения по номеру порта. В этом случае измените proto с UDP на TCP:

Если у вас нет явной необходимости использовать другой порт, лучше оставить обе эти настройки со значениями по умолчанию.

(Опционально) Использование кастомного имени сертификата и ключа

Если во время использования команды ./build-key-server чуть выше вы указали параметр, отличный от server , измените настройки cert и key , чтобы они указывали на правильные файлы .crt и .key . Если вы использовали server , эти настройки должны выглядеть таким образом:

Сохраните и закройте файл.

Шаг 8. Настройка сетевой конфигурации сервера

Далее нам необходимо настроить сетевую конфигурацию сервера, чтобы OpenVPN мог корректно перенаправлять трафик.

Настройка перенаправления IP

Сначала разрешим серверу перенаправлять трафик. Это ключевая функциональность нашего VPN сервера.

Настроим это в файле /etc/sysctl.conf :

Найдите строку настройки net.ipv4.ip_forward . Удалите “#” из начала строки, чтобы раскомментировать её:

Сохраните и закройте файл.

Для применения настроек к текущей сессии наберите команду:

Настройка правил UFW для сокрытия соединений клиентов

Если вы следовали статье о настройке Ubuntu 16.04, упомянутой в начале этой статьи, у вас должен быть установлен и настроен файрвол UFW. Вне зависимости от того, используете ли вы файрвол для блокировки нежелательного трафика (что вам стоит делать практически всегда), в этой статье нам потребуется файрвол для манипулирования с входящим на сервер трафиком. Мы должны изменить файл настроек для сокрытия соединений (masquerading).

Перед тем, как изменить этот файл, мы должны найти публичный интерфейс сети (public network interface). Для этого наберите команду:

Публичный интерфейс должен следовать за словом “dev”. Например, в нашем случае этот интерфейс называется wlp11s0 :

Зная название интерфейса откроем файл /etc/ufw/before.rules и добавим туда соответствующие настройки:

Это файл содержит настройки UFW, которое применяются перед применением правил UFW. Добавьте в начало файла выделенные красным строки. Это настроит правила, применяемые по умолчанию, к цепочке POSTROUTING в таблице nat и будет скрывать весь трафик от VPN:

Внимание: не забудьте заменить eth0 в строке -A POSTROUTING на имя интерфейса, найденное нами ранее.

Сохраните и закройте файл.

Теперь мы должны сообщить UFW, что ему по умолчанию необходимо разрешать перенаправленные пакеты. Для этого откройте файл /etc/default/ufw :

Найдите в файле директиву DEFAULT_FORWARD_POLICY . Мы изменим значение с DROP на ACCEPT :

Сохраните и закройте файл.

Открытие порта OpenVPN и применение изменений

Далее настроим сам файрвол для разрешения трафика в OpenVPN.

Если вы не меняли порт и протокол в файле /etc/openvpn/server.conf , вам необходимо разрешить трафик UDP для порта 1194. Если вы изменили эти настройки, введите указанные вами значения.

Даже мы добавим порт SSH на случай, если вы не сделали этого ранее.

Теперь деактивируем и активируем UFW для применения внесённых изменений:

Теперь наш сервер сконфигурирован для обработки трафика OpenVPN.

Шаг 9. Включение сервиса OpenVPN

Мы готовы включит сервис OpenVPN на нашем сервере. Мы можем сделать это с помощью systemd.

Нам необходимо запустить сервер OpenVPN указав имя нашего файла конфигурации в качестве переменной после имени файла systemd. Файл конфигурации для нашего сервера называется /etc/openvpn/ server .conf , поэтому мы добавим @server в конец имени файла при его вызове:

Убедимся, что сервис успешно запущен командой:

Если всё получилось, вывод должен выглядеть примерно следующим образом:

Вы также можете проверить доступность интерфейса OpenVPN tun0 следующей командой:

Вы должны увидеть конфигурацию интерфейса:

Если всё в порядке, настроем сервис на автоматическое включение при загрузке сервера:

Шаг 10. Создание инфраструктуры настройки клиентов

Далее настроим систему для простого создания файлов конфигурации для клиентов.

Создание структуры директорий конфигурации клиентов

В домашней директории создайте структуру директорий для хранения файлов:

Поскольку наши файлы конфигурации будут содержать клиентские ключи, мы должны настроить права доступа для созданных директорий:

Создание базовой конфигурации

Далее скопируем конфигурацию-пример в нашу директорию для использования в качестве нашей базовой конфигурации:

Откройте этот файл в вашем текстовом редакторе:

Сделаем несколько изменений в этом файле.

Сначала найдите директиву remote . Эта директива сообщает клиенту адрес нашего сервера OpenVPN. Это должен быть публичный IP адрес вашего сервера OpenVPN. Если вы изменили порт, который слушает сервер OpenVPN, измените порт по умолчанию 1194 на ваше значение:

Убедитесь, что протокол совпадает с настройками сервера:

Далее раскомментируйте директивы user и group удаляя “;”:

Найдите директивы ca , cert и key . Закомментируйте эти директивы, так как мы будем добавлять сертификаты и ключи в самом файле:

Добавьте настройки cipher и auth согласно заданным в файле /etc/openvpn/server.conf :

Далее добавьте директиву key-direction в любое место в файле. Она должна иметь значение “1” для корректной работы сервера:

Наконец, добавьте несколько закомментированных строк. Мы ходим добавить эти строки в каждый файл конфигурации, но они будут включены только для клиентов на Linux, которые используют файл /etc/openvpn/update-resolv-conf . Этот скрипт использует утилиту resolvconf для обновление информации DNS на клиентах Linux.

Если ваш клиент работает на Linux и использует файл /etc/openvpn/update-resolv-conf , вы должны раскомментировать эти строки в сгенерированном клиентском файле конфигурации OpenVPN.

Сохраните и закройте файл.

Создание скрипта генерации файлов конфигурации

Теперь создадим простой скрипт для генерации файлов конфигурации с релевантными сертификатами, ключами и файлами шифрования. Он будет помещать сгенерированные файла конфигурации в директорию

Создайте и откройте файл make_config.sh внутри директории

Вставьте следующие текст в этот файл:

Сохраните и закройте файл.

Сделайте его исполняемым файлом командой:

Шаг 11. Генерация конфигураций клиентов

Теперь мы можем легко сгенерировать файлы конфигурации клиентов.

Если вы следовали всем шагам этой статьи, вы создали сертификат client1.crt и ключ клиента client1.key командой ./build-key client1 на шаге 6. Вы можете сгенерировать конфигурацию для этих файлов перейдя в директорию

/client-configs и используя только что созданный нами скрипт:

Если всё прошло успешно, мы должны получить файл client1.ovpn в директории

Доставка конфигураций клиентам

Теперь мы должны переместить файл конфигурации на клиентское устройство. Например, на компьютер или смартфон.

Способ доставки файла зависит от операционной системы вашего устройства и программного обеспечения, которое вы захотите использовать для перемещения файла. Мы рекомендуем передавать файл по защищённому соединению, например, с использованием SFTP или SCP.

Читайте также:  Установка кухонного смесителя vidima

Ниже мы приводим пример передачи файла client1.ovpn с использованием SFTP. Следующую команду можно использовать на вашем локальном компьютере под управлением Mac OS или Linux. Она перемещает файл .ovpn в вашу домашнюю директорию:

Ниже представлено несколько ссылок на инструменты и статьи о безопасном переносе файлов с сервера на локальный компьютер:

Шаг 12. Установка файлов конфигураций клиентов

Теперь мы поговорим о том, как устанавливать клиентские профили VPN на Windows, Mac OS, iOS и Android. Процесс установки уникален для каждой платформы, поэтому пропускайте платформы, которые вы не планируете использовать.

Название соединения OpenVPN зависит от того, как вы называли свой .ovpn файл. В нашем примере это будет client1.ovpn .

Windows

Установка

Вы можете загрузить клиент для работы с OpenVPN для Windows со страницы загрузок OpenVPN. Выберите необходимую вам версию установщика.

Внимание: установка OpenVPN требует администраторской учётной записи.

После установки OpenVPN скопируйте ваш .ovpn файл в эту директорию:

Запустите OpenVPN, клиент должен автоматически увидеть ваш профиль.

Клиент OpenVPN требует запуска с правами администратора даже для аккаунтов администратора. Для запуска сделайте щелчок правой кнопкой мыши на клиенте и выберите Run as administrator каждый раз при запуске клиента. Это также означает, что обычные пользователи должны будут вводить пароль администратора для использования OpenVPN.

Для того, чтобы приложение OpenVPN всегда запускалось с правами администратора, сделайте щелчок правой кнопкой мыши на иконке клиента и перейдите в раздел Properties. В нижней части вкладки Compatibility нажмите на кнопку Change settings for all users. В открывшемся окне выберите Run this program as an administrator.

Соединение

Каждый раз при запуске клиента OpenVPN Windows будет спрашивать, хотите ли вы разрешить программе внести изменения в настройки вашего компьютера. Нажмите Да. Запуск клиента OpenVPN просто помещает приложение в системный трей, при этом само соединение не устанавливается автоматически.

Для установки соединения сделайте щелчок правой кнопкой мыши на иконке OpenVPN в системном трее. В открывшемся контекстном меню выберите client1 (это наш профиль client1.ovpn ) и нажмите Connect.

Откроется окно статуса, которое будет отображать лог соединения. При завершении соединения вы увидите соответствующее сообщение.

Закрыть VPN соединение можно точно так же: сделайте щелчок правой кнопкой мыши на иконке OpenVPN в системном трее, выберите профиль клиента и нажмите Disconnect.

Mac OS

Установка

Tunnelblick — это бесплатный OpenVPN клиент для Mac OS с открытым исходным кодом. Вы можете загрузить его со страницы загрузок Tunnelblick. Сделайте двойной щелчок на загруженном .dmg файле и следуйте инструкциям в процессе установки.

В конце процесса установки Tunnelblick спросит, есть ли у вас конфигурационные файлы. Проще всего ответить No и завершить установку Tunnelblick. Откройте Finder и сделайте двойной щелчок на client1.ovpn . Tunnelblick установит клиентский профиль. Для этого необходимы права администратора.

Соединение

Запустите Tunnelblick двойным щелчком из папки Applications. После запуска в панели меню в правой верхней части экрана появится иконка Tunnelblick. Для установки соединения нажмите на иконку, а затем Connect. Далее выберите соединение client1.

Linux

Установка

В зависимости от используемой вами версии Linux, вы можете использовать самые разные программы для установки соединения. Возможно, это умеет делать даже ваш менеджер окон.

Наиболее универсальным способом установки соединения, тем не менее, является программное обеспечение OpenVPN.

В Ubuntu или Debian вы можете установить его точно так же, как и на сервере:

В CentOS вы можете активировать EPEL репозитории и затем ввести следующие команды:

Настройка

Сначала проверьте, содержит ли ваш дистрибутив скрипт /etc/openvpn/update-resolv-conf :

Далее отредактируйте полученный с сервера файл конфигурации клиента OpenVPN:

Если вам удалось найти файл update-resolv-conf , раскомментируйте следующие строки файла:

Если вы используете CentOS, измените group с nogroup на nobody :

Сохраните и закройте файл.

Теперь вы можете соединиться с VPN используя команду openvpn следующим образом:

В результате вы подключитесь к серверу.

Установка

Найдите в iTunes App Store официальный клиент OpenVPN Connect и установите его. Для переноса файла конфигурации клиента на ваше устройство, подключите устройство к компьютеру.

Запустите iTunes на компьютере и выберите iPhone > apps. Найдите секцию File Sharing и нажмите на приложение OpenVPN. Перенесите ваш файл .ovpn в правую часть окна OpenVPN Documents.

Далее запустите приложение OpenVPN на iPhone. Вы получите уведомление, что новый профиль готов к импорту. Нажмите на зелёный плюсик для импорта профиля.

Соединение

OpenVPN готов к использованию с новым профилем. Для установки соединения потяните слайдер Connect в позицию On. Для остановки соединения переместите этот же слайдер в положение Off.

Android

Установка

Откройте Google Play Store. Найдите и установите официальное приложение OpenVPN Android OpenVPN Connect.

Передать профиль с компьютера на телефон можно подключив Android устройство к компьютеру через USB и скопировав файл. Вы также можете переместить файл профиля с помощью SD карты, скопировав профиль на карту и вставив карту в Android устройство.

Запустите приложение OpenVPN и нажмите на меню для импорта профиля.

Далее найдите файл в файловой системе (в нашем примере это /sdcard/Download/ ) и выберите найденный файл. Приложение сообщит, что профиль был импортирован.

Соединение

Для установки соединения нажмите кнопку Connect. Вам будет задан вопрос, доверяете ли вы приложению OpenVPN. Ответьте OK для установки соединения. Для остановки соединения зайдите в приложение OpenVPN и выберите Disconnect.

Шаг 13. Тестирование VPN соединения

После того, как всё установлено и настроено, убедимся, что всё работает правильно. Без установки соединения с VPN откройте браузер и зайдите на DNSLeakTest.

Этот сайт вернёт IP адрес, назначенный вам вашим Интернет-провайдером. Для того, чтобы проверить, какие DNS сервера используются, нажмите на Extended Test.

Теперь установите соединение, используя ваш VPN клиент и обновите страницу в браузере. Выдаваемый вам IP адрес должен быть совершенно другим. Теперь для всех в Интернете вы используете этот новый IP адрес. Нажмите Extended Test ещё раз, чтобы проверить ваши настройки DNS и убедитесь, что теперь вы используете DNS сервера вашего VPN.

Шаг 14. Отзыв клиентских сертификатов

Время от времени, вам может понадобиться отозвать клиентский сертификат для предотвращения доступа к серверу VPN&

Для этого зайдите в вашу директорию центра сертификации и введите команды:

Далее используйте команду revoke-full с именем клиента, сертификат которого вы хотите отозвать:

Вывод результатов работы этой команды будет оканчиваться ошибкой 23. Это нормально. В результате работы будет создан файл crl.pem в директории keys с необходимой для отзыва сертификата информацией.

Переместите этот файл в директорию /etc/openvpn :

Далее откройте файл конфигурации сервера OpenVPN:

Добавьте в конец файла строку crl-verify . Сервер OpenVPN будет проверять список отозванных сертификатов каждый раз, когда кто-то устанавливает соединение с сервером.

Сохраните и закройте файл.

Перезапустите OpenVPN для завершения процесса отзыва сертификата:

Теперь клиент не сможет устанавливать соединение с сервером OpenVPN используя старый сертификат.

Для отзыва дополнительных сертификатов выполните следующие шаги:

Сгенерируйте новый список отозванных сертификатов используя команду source vars в директории

/openvpn-ca и выполняя команду revoke-full с именем клиента.

Скопируйте новый список отозванных сертификатов в директорию /etc/openvpn перезаписав тем самым старый список.

Перезапустите сервис OpenVPN.

Эта процедура может быть использована для отзыва любых созданных вами ранее сертификатов.

Заключение

Поздравляем! Теперь вы можете безопасно выходить в Интернет, весь ваш трафик защищён от прослушки цензоров и злоумышленников.

Для конфигурации дополнительных клиентов повторите шаги 6 и 11-13 для каждого нового устройства. Для отзыва доступа того или иного клиента используйте шаг 14.

источник

Добавить комментарий