Интернет подобен морю. С пересылаемыми данными, как с судном во время путешествия, может случиться что угодно: они могут повредиться, затонуть в потоке информации или стать добычей «пиратов». Защитить особо ценные данные от кражи и потери помогают виртуальные частные сети (VPN, ВПН) – системы закрытых каналов (туннелей), которые строятся внутри другой, более крупной сети. Одним из видов ВПН является 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» (выберите компоненты для установки) отметьте всё.
Согласитесь на установку драйвера виртуального сетевого адаптера TAP Windows Adapter V9.
Установили? Теперь займемся созданием ключей и сертификатов VPN.
- Заходим в каталог %ProgramFiles%/OpenVPN/easy-rsa и запускаем пакетный файл init-config.bat – он скопирует в эту же папку файл vars.bat.sample в виде 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.
- На очереди – ключ сервера: выполняем инструкцию 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» и «Подключиться».
При удачном подключении иконка сменит цвет на зеленый. При неудачном – кликните в меню «Посмотреть журнал»: в нем будет указана ошибка.
Подключение клиента выполняется таким же способом, только вместо «Server» выбираем в меню «Client».
Настройка OpenVPN под Ubuntu
Начинаем с того, что, как и на Windows, устанавливаем пакет OpenVPN на серверную и клиентские машины. Директива установки консольной версии ПО через терминал следующая: sudo apt-get install openvpn. При желании можете установить графические версии пакетов из центра приложений Ubuntu.
Однако важнейший компонент – модуль easy-rsa, предназначенный для генерации сертификатов и ключей, в Linux-дистрибутив не входит. Его придется установить отдельно, выполнив команду: sudo apt-get install 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
- Копируем криптографический пакет 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 находится в разделе «Документация» официального сайта приложения. Пробуйте, и всё у вас получится!