OpenVPN. Установка, настройка и использование (часть 1).

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

Причины использовать OpenVPN. Краткий ликбез.

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

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

Установка.

Я не буду описывать процесс выбора сервера, VPS/VDS за несколько долларов в месяц найти проще простого. Логин и пароль вам предоставит хостер. Я исхожу из того, что на удаленном сервере уже остановлена ОС Ubuntu 16.04 и вы можете действовать от имени пользователя с достаточным уровнем прав. Подключаемся:
ssh логин@ip_вашего_сервера

После ввода пароля вы увидите приветствие удаленной машины, примерно такое:

Теперь команды, которые мы будем вводить в терминале, выполнятся на сервере. Для начала обновимся и установим OpenVPN, easy-rsa и создадим папку для ключей и сертификатов.
apt-get update
apt-get install openvpn easy-rsa
make-cadir ~/openvpn-certificates
cd ~/openvpn-certificates

Генерируем сертификаты и ключи.

Утилита easy-rsa предназначена для создания и управления сертификатами и ключами. Третьей командой мы создаем директорию, где все это будет храниться. Четвертой — перемещаемся туда сами, чтобы каждый раз не вводить полный путь.
Теперь отредактируем конфигурационный файл, хранящий переменные:
nano vars
Нас интересует блок, расположенный в самом низу (он на скриншоте ниже). Вписываем страну, город, адрес электронной почты. Не обязательно использовать точные и правдивые данные. Чуть ниже, в строке export KEY_NAME впишите имя ключа. В нашем случае будет «server».
Чтобы сохранить изменения, нажмите F2 или CTRL + O, затем Y и Enter, чтобы подтвердить.
Теперь можно выполнить отредактированный нами файл:
source vars

или:

. vars
Вы получите уведомление о том, каким образом очистить папку, содержащую ключи. Сейчас их там не должно быть, но на всякий случай рекомендуется все же выполнить это действие:
./clean-all

Запускаем генерацию корневого сертификата:

./build-ca
В процессе вас попросят подтвердить или изменить введенную информацию. Если вы отредактировали файл vars, достаточно просто нажимать Enter.
Сгенерируем ключ и сертификат для сервера:
./build-key-server server
Снова подтверждаем правильность введенных ранее данных. В ответ на просьбу установить еще и пароль, а также указать название компании, нажимаем Enter. Подтверждаем согласие создать сертификат нажатием Y.
Еще пара команд для генерации сертификатов:
./build-dh
openvpn —genkey —secret keys/ta.key
Теперь генерируем сертификат для клиента. Каждый клиент требует отдельного сертификата,  поэтому давайте им соответствующие имена для удобства. Сгенерируем сертификат и ключ для домашнего компьютера:
./build-key home-pc
Заодно создадим сертификаты и ключи для планшета, смартфона, ноутбука:
./build-key tablet
./build-key smartphone
./build-key laptop
Это можно сделать и позже, но тогда на сервере придется снова перейти в нужную нам папку и экспортировать переменные из файла:
~/openvpn-certificates
source vars

Все сгенерированные нами ключи и сертификаты лежат в ~/openvpn-certificates/keys:

В следующих статьях мы настроим OpenVPN и наши клиентские устройства для работы с ним, после чего протестируем плоды наших трудов.

Подписывайтесь, чтобы не пропустить!

  • Edward Kobylyanets

    еуые