Настройка OpenVPN на Windows и Ubuntu: что, зачем и как

Интернет подобен морю. С пересылаемыми данными, как с судном во время путешествия, может случиться что угодно: они могут повредиться, затонуть в потоке информации или стать добычей «пиратов». Защитить особо ценные данные от кражи и потери помогают виртуальные частные сети (VPN, ВПН) – системы закрытых каналов (туннелей), которые строятся внутри другой, более крупной сети. Одним из видов ВПН является OpenVPN.

OpenVPN.

Хотите научиться создавать виртуальные частные сети быстро и легко? Поговорим о преимуществах протокола OpenVPN, а также о настройках серверной и клиентской части принадлежащего ему ПО под Windows и Ubuntu.

[NEW] Рейтинги F1 на начало 2019 года:
ноутбуки, роутеры для дома, МФУ, Power bank, SSD, Smart TV приставки с поддержкой 4K UHD, игровые видеокарты, процессоры для ПК, усилители Wi-Fi, смартфоны до 10000 рублей, планшеты для интернет-серфинга, антивирусы

Область применения и преимущества OpenVPN

Область применения

  • Создание защищенных корпоративных сетей. Расстояние между узлами таких сетей не имеет значения.
  • Защита информации в открытых общественных сетях.
  • Подключение к Интернету нескольких хостов через общий шлюз.
  • Доступ к запрещенным веб-ресурсам.

Преимущества

  • Всё бесплатно. Большинство из нас не откажется от бесплатного Wi-Fi в кафе или в парке, но трафик, передаваемый по такому соединению, никак не защищен от перехвата. Бесплатное ПО OpenVPN направит его в закрытый туннель, поэтому ваши логины, пароли и другая секретная информация точно не утечет в чужие руки.
  • Чтобы сделать свою сеть защищенной, не нужно покупать дополнительное оборудование.
  • Весь передаваемый трафик сжимается, что обеспечивает высокую скорость связи (выше, чем при использовании IPSec).
  • Гибкие настройки ПО позволяют сконфигурировать VPN любой сложности.
  • Использование нескольких надежных алгоритмов шифрования обеспечивает очень высокую степень защиты данных.
  • Не требуется перенастройки или отключения файерволов (сетевых экранов) и NAT (технологии преобразования ИП-адресов в сетях TCP/IP).
  • Протокол поддерживают все основные операционные системы.
  • Для установки и настройки программного обеспечения не нужны глубокие знания сетевых технологий, и даже у неспециалиста это занимает считанные минуты.

Настройка OpenVPN под Windows

Установка и настройка серверной части

Поскольку большинство из нас пользуется ОС Windows, знакомство с OpenVPN-технологией начнем с нее. Итак, скачайте с официального сайта подходящий дистрибутив и запустите инсталляцию.

В списке «Select components to install» (выберите компоненты для установки) отметьте всё.

Установка OpenVPN в Windows.

Согласитесь на установку драйвера виртуального сетевого адаптера TAP Windows Adapter V9.

Создание виртуального сетевого адаптера.

Установили? Теперь займемся созданием ключей и сертификатов VPN.

  • Заходим в каталог %ProgramFiles%/OpenVPN/easy-rsa и запускаем пакетный файл init-config.bat – он скопирует в эту же папку файл vars.bat.sample в виде vars.bat. В дальнейшем пакет команд vars.bat будет задавать переменные для генерации сертификатов.

Создание файла переменных.

  • После создания vars.bat открываем его с помощью блокнота и прописываем в выделенных строчках (после «=») любые данные. Сохраняем изменения.

Содержимое vars.bat.

  • Далее запускаем от администратора командную строку и выполняем инструкцию перехода в /easy-rsa (cd %ProgramFiles%/OpenVPN/easy-rsa). После этого последовательно запускаем vars.bat и clean-all.bat (загружаем переменные и удаляем ранее созданные ключи).

Загружаем переменные.

  • Выполняем пакет команд build-ca.bat – этим мы создадим новый основной сертификат в каталоге %ProgramFiles%/OpenVPN/easy-rsa/keys. Заполнять данные об имени организации и прочее, что обведено на скриншоте рамкой, не обязательно – достаточно просто нажимать Enter.

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

  • Запускаем build-dh.bat – этим мы создаем ключ Диффи-Хельмана. В папке /keys появится файл dh1024.pem.

Cоздаем ключ Диффи-Хельмана.

  • На очереди – ключ сервера: выполняем инструкцию build-key-server myVPN («myVPN» – это имя сервера, можете указать любое другое). Блок вопросов, начинающийся с «Country Name», пропускаем, нажимая Enter. На два последних вопроса – «Sign the certificate?» и следующий, отвечаем «Y».

Создаем ключ сервера.

  • Дальше нам нужно получить ключ клиента: выполняем build-key user1 (user1 – имя клиента, можете заменить на другое). Если клиентских компьютеров несколько, повторяем операцию для каждого, не забыв изменить имя. Обведенный рамкой блок, как и раньше, пропускаем.

Создаем ключ клиента.

  • Далее копируем из папки /easy-rsa/keys в /OpenVPN/config следующие файлы: dh1024.pem, ca.crt myvpn.crt, myvpn.key, user1.key, user1.crt. Последние четыре могут называться  у вас по-другому. Почему, думаю, понятно.

Перенос сертификатов.

  • Следом в этой же папке создаем файл конфигурации сервера. Копируем приведенные ниже директивы в блокнот и, если нужно, меняем их параметры на свои. Сохраняем документ с расширением .ovpn и именем «Server».

# Интерфейс (L3-туннель)

dev tun

# Протокол работы VPN

proto udp

# Используемый порт (можно указать любой свободный)

port 1234

# Список сертификатов и ключей (обратите внимание на имена)

ca ca.crt

cert myvpn.crt

key myvpn.key

dh dh1024.pem

# Тип шифрования данных

cipher AES-256-CBC

# Выделяем диапазон ИП-адресов

server 10.10.10.0 255.255.255.0

# Уровень отладочной информации

verb 3

# Используем сжатие

comp-lzo

persist-key

persist-tun

mssfix

# Задаем максимальное число повторяющихся событий

mute 25

# Количество одновременно подключенных клиентов (5)

max-clients 5

# Время жизни клиентской сессии

keepalive 10 120

# Видимость клиентами друг друга (разрешена)

client-to-client

# Выделяем каждому юзеру 1 адрес

topology subnet

# Устанавливаем задержку перед добавлением маршрута

route-delay

#Указываем, если хотим раздавать Интернет. Адреса DNS пишем те, которые прописаны в настройках интернет-подключения.

push «redirect-gateway def1»

push «dhcp-option DNS x.x.x.x»

push «dhcp-option DNS x.x.x.x»

Дополнительно о директивах серверного конфига читайте здесь.

Далее для раздачи интернета заходим в каталог сетевых подключений, открываем свойства интерфейса, смотрящего в глобальную сеть, переходим на вкладку «Доступ», ставим метку напротив «Разрешить другим пользователям использовать это подключение…» и выбираем из списка сеть виртуального адаптера TAP-Windows adapter V9 – в моем примете это Ethernet 3.

Раздача интернета.

  • Создаем файл конфигурации клиента. Копируем следующий текст в блокнот и сохраняем документ с расширением .ovpn под именем «Client».

client

dev tun

proto udp

# IP или доменное имя VPN-сервера и порт подключения.

remote x.x.x.x 1234

ca ca.crt

cert user1.crt

key user1.key

cipher AES-256-CBC

comp-lzo

persist-key

persist-tun

verb 3

Другие директивы клиентского конфига смотрите здесь

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

Устанавливаем приложение на клиентский компьютер. Далее заходим на серверный, открываем каталог %ProgramFiles%/OpenVPN/config и копируем оттуда файлы ca.crt, Client.ovpn, user1.crt, user1.key в сетевую папку или на флешку. Переносим их в аналогичную папку клиентской машины.

Копирование сертификатов клиента.

Подключение

Чтобы запустить сервер, кликните по ярлыку «OpenVPN GUI» на рабочем столе. В трее появится иконка серого цвета. Щелкните по ней правой кнопкой мышки, выберите в меню команды «Server» и «Подключиться».

Подключение к VPN.

При удачном подключении иконка сменит цвет на зеленый. При неудачном – кликните в меню «Посмотреть журнал»: в нем будет указана ошибка.

Подключение клиента выполняется таким же способом, только вместо «Server» выбираем в меню «Client».

Настройка OpenVPN под Ubuntu

Начинаем с того, что, как и на Windows, устанавливаем пакет OpenVPN на серверную и клиентские машины. Директива установки консольной версии ПО через терминал следующая: sudo apt-get install openvpn. При желании можете установить графические версии пакетов из центра приложений Ubuntu.

Установка OpenVPN в Ubuntu.

Однако важнейший компонент – модуль easy-rsa, предназначенный для генерации сертификатов и ключей, в Linux-дистрибутив не входит. Его придется установить отдельно, выполнив команду: sudo apt-get install easy-rsa.

Установка Easy-rsa.

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

  • После инсталляции программы и дополнительного модуля создаем каталог «easy-rsa» в папке /etc/openvpn: sudo mkdir /etc/openvpn/easy-rsa. Копируем в него содержимое из места установки: cp -r /usr/share/easy-rsa /etc/openvpn/easy-rsa.
  • Следом переходим в новый каталог: cd /etc/openvpn/easy-rsa/ и приступаем к созданию сертификатов и ключей.

Копирование файлов.

  • Открываем с помощью консольного редактора nano файл переменных vars (аналог vars.bat в Windows) и импортируем в него те же данные, что и в vars.bat, с измененными значениями:

KEY_COUNTRY=RU

KEY_PROVINCE=CA

KEY_CITY=SanFrancisco

KEY_ORG=OpenVPN

KEY_EMAIL=mail@host.domain

KEY_CN=changeme

KEY_NAME=changeme

KEY_OU=changeme

PKCS11_MODULE_PATH=changeme

PKCS11_PIN=1234

Заполнение Vars.

  • Копируем криптографический пакет openssl: cp openssl-1.0.0.cnf openssl.cnf.
  • Загружаем переменные из vars: source ./vars.
  • Удаляем ранее созданные данные: ./clean-all.
  • Создаем новый основной сертификат: ./build-ca. Блок вопросов в рамке пропускаем.

Создание сертификатов.

  • Следом – ключ Диффи-Хельмана: ./build-dh.
  • За ним – сертификат сервера: ./build-key-server myVPN (myVPN, как вы помните, – это имя, у вас оно может быть другим). Выделенный блок пропускаем (на скриншоте он сокращен), на 2 последних вопроса отвечаем «Y».

Создаем ключ ключ Диффи-Хельмана.

  • Последним создаем сертификат клиента: ./build-key user1 (вместо «user1» можете придумать другое имя). При этом снова пропускаем выделенный на скрине блок и на два последних вопроса отвечаем «Y».

Создаем сертификат клиента.

Все созданные ключи и сертификаты сохраняются в подкаталоге /etc/openvpn/easy-rsa/keys. Перемещаем их в папку /openvpn: cp -r /etc/openvpn/easy-rsa/keys /etc/openvpn.

На завершающем этапе создаем файл конфигурации сервера в папке /etc/openvpn: nano /etc/openvpn/server.conf и заполняем его так же, как заполняли аналогичный документ на Windows. Единственное отличие – другие пути:

ca /etc/openvpn/keys/ca.crt

dh /etc/openvpn/keys/dh2048.pem

cert /etc/openvpn/keys/myvpn.crt

key /etc/openvpn/keys/myvpn.key

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

Наконец, создаем каталог для конфигурации клиентских машин: mkdir /etc/openvpn/ccd, и  запускаем сервер: service openvpn start.

Если сервер не стартует, вероятно, в конфигурации допущена ошибка. Сведения о проблеме можно посмотреть в документе /var/log/openvpn.log с помощью команды tail -f /var/log/openvpn.log.

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

После установки приложения на клиентскую машину переносим на нее сгенерированные на сервере ключ и сертификаты и создаем конфиг.

Ключ и сертификаты – ca.crt, user1.crt и user1.key, находятся в папке /etc/openvpn/keys. Копируем их на флешку и вставляем в одноименную папку на компьютере клиента.

Файл конфигурации создаем с помощью nano: nano /etc/openvpn/client.conf, и заполняем по образцу Windows. Не забудьте прописать в нем правильные пути:

ca /etc/openvpn/keys/ca.crt

dh /etc/openvpn/keys/dh2048.pem

cert /etc/openvpn/keys/user1.crt

key /etc/openvpn/keys/user1.key

Всё готово. Для подключения к серверу используем ту же команду: service openvpn start.

***

Инструкция получилась длинной, но на самом деле выполнение этих действий занимает 5-10 минут. Более подробная информация о работе с OpenVPN находится в разделе «Документация» официального сайта приложения. Пробуйте, и всё у вас получится!

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: