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

June 22, 2016

Хотите защитить конфиденциальную информацию при работе в открытых Wi-Fi-сетях? Желаете анонимно посещать различные ресурсы, заходить на запрещенные сайты, общаться в социальных сетях на работе? Самый надежный вариант – развертывание собственного OpenVPN-сервера.

VPN – виртуальная сеть, построенная поверх общедоступных сетей. По сути, VPN – это защищенный туннель (соединение точка-точка), устанавливаемый на базе общедоступной сети, между сервером и отдельными компьютерами или сетями.

Главные особенности VPN – аутентификация и контроль доступа, шифрование всех передаваемых данных внутри туннеля. Никто, даже провайдер, не сможет узнать, какие сайты посещаете, и какую информацию получаете/передаете.

Область использования VPN

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

  • безопасный доступ из локальной корпоративной сети в интернет;
  • безопасное объединение локальных сетей филиалов компании, расположенных в разных районах или городах;
  • ограничение доступа к частной сети;
  • защищенный канал доступа к корпоративной локальной сети для сотрудников, работающих удаленно (на дому, в командировке и т. п.);

Однако, сегодня развертывание собственного VPN-сервера получило большое распространение среди частных лиц. Итак, зачем же кому-то выходить в интернет через шифрованный туннель? Такое решение открывает огромные возможности:

  • защита передаваемых/получаемых данных, например паролей, персональной информации при использовании открытых точек доступа Wi-Fi, например в гостиницах;
  • сокрытие трафика от провайдера;
  • использование статического IP-адреса (адреса сервера), что порой бывает необходимым условием при доступе к определенным ресурсам, игровым серверам;
  • возможность посещать различные сайты, форумы, оставлять комментарии анонимно (будет отображаться IP-адрес сервера, а соответственно никто не сможет определить ваше настоящее местоположение);
  • посещение недоступных или запрещенных в вашем регионе сайтов;
  • возможность обойти блокировку Вконтакте, YouTube и других развлекательных сервисов на рабочем месте;
  • ускорение загрузки веб-сайтов (данные не только шифруются, но и сжимаются).

Типы VPN-протоколов

  • IPSec (IP security) — обычно работает поверх IPv4.
  • PPTP — устанавливает защищенное соединение (туннель) типа точка-точка в незащищенной сети. Данные передаются в виде IP-пакетов (кадров). Над созданием протокола работало сразу несколько фирм, в том числе и Microsoft.
  • PPPoE – протокол точка-точка по каналу Ethernet;
  • L2TP — протокол преимущественно применяется в разработках Microsoft і Cisco. Он основан на технологии PPTP и выделяется большей защищенностью.
  • OpenVPN SSL — это протокол VPN, распространяющийся с открытой лицензией. Среди его достоинств: поддержка PPP, bridge, point-to-point, multi-client server, простота и гибкость настройки, надежность, свободное распространение программного обеспечения.

Что выбрать: собственный VPN-сервер или коммерческие сервисы?

Сейчас в интернете можно встретить множество коммерческих сервисов, предлагающих возможность использовать уже настроенный VPN-сервер, а также открытых прокси-сервисов. Зачем все усложнять?

Есть несколько причин самостоятельно настроить собственный VPN-сервер. Во-первых, безопасность.

Большинство открытых прокси-серверов, с помощью которых можно обойти блокировку сайтов и анонимно посещать различные ресурсы, не гарантируют защиту персональной информации. Многие компании являются мошенниками, отслеживающими поток передаваемых данных. К тому же, многие иностранные ресурсы уже внесли IP-адреса открытых серверов в черный список, поэтому никаких гарантий, что в очередной раз вы сможете посетить запрещенный в РФ сайт, нет.

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

Устанавливаем OpenVPN сервер

Процесс установки приведен для Linux Debian. Эта система отличается высокой надежностью и минимальными требованиями к аппаратным ресурсам.

Для начала подключаемся к серверу с root-правами. Инсталляцию программного обеспечения на семействе операционных систем Linux следует начинать с обновления индекса пакетов до последних версий. Для этого вводим команды:

apt-get updateapt-get upgrade

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

Устанавливаем программное обеспечение OpenVPN и OpenSSL на сервере:

apt-get install openvpn openssl

В процесс инсталляции открывается диалог, в котором спрашивается, желаем ли мы продолжить? Вводим Y и нажимаем Enter.

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

mkdir /etc/openvpn/easy-rsa/

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

cp -r /usr/share/doc/openvpn/examples/easy-rsa/2.0/* /etc/openvpn/easy-rsa/

Обратите внимание! Мы используем версию OpenVPN 2.2.1-2, в состав которой входит пакет easy-rsa. Для версий OpenVPN 2.3 или выше его нужно скачать и установить отдельно. Операция займет одну-две минуты. Устанавливаем пакет:
apt-get install easy-rsa
Расположение будет другим, поэтому для копирования вводим:
cp -r /usr/share/easy-rsa/* /etc/openvpn/easy-rsa/

Чтобы при установке ключей не прописывать повторяющиеся данные раз за разом, отредактируем документ vars:

nano /etc/openvpn/easy-rsa/vars

В конце документа редактируем блок:

В результате должно получиться:

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

cd /etc/openvpn/easy-rsa/source vars

Мы провели необходимые подготовительные работы, можно генерировать новые ключи, которые появятся во вложенном каталоге /keys. Директория создается автоматически и переходить никуда не нужно. Но сначала очищаем папку от имеющихся ключей и конфигов:

./clean-all

Формируем корневой сертификат:

./build-ca

Ключ сервера:

./build-key-server server

В ходе установки система предлагает задать пароль (по желанию поле можно оставить пустым). Дважды соглашаемся с сертификацией (Y и Enter).

Теперь формируем клиентский сертификат. В дальнейшем его нужно будет скопировать на свой компьютер:

./build-key user

На данном этапе система вновь предлагает задать пароль, просто пропускаем.

Формируем криптографический ключ Диффи-Хеллмана:

./build-dh

Формируем ключ tls-аутентификации:

openvpn --genkey --secret keys/ta.key

Появившиеся ключи копируем в /etc/openvpn - непосредственно к этой директории подает запросы сервер OpenVPN:

cd keys cp server.crt server.key ca.crt dh1024.pem ta.key /etc/openvpn/

Обратите внимание, в папке остались файлы: user.crt, user.key, ca.crt, ta.key. Они будут использоваться на локальном ПК, с которого мы хотим получить анонимный доступ в глобальную сеть. Последний (ta.key) используется для tls-аутентификации.

Настраиваем OpenVPN-сервер

Формируем документ server.conf, содержащий основные настройки VPN-сервера: путь к файлам ключей, количество максимальных подключений, и др. В пакет поставки уже входит файл с рабочей конфигурацией, однако для запуска OpenVPN-сервера нужно изменить несколько параметров.

Копируем файл с конфигурациями в рабочий каталог VPN-сервера:

cp /usr/share/doc/openvpn/examples/sample-config-files/server.conf.gz /etc/openvpn/

Распаковываем документ из архива:

gzip -d /etc/openvpn/server.conf.gz

Открываем файл (команда – nano etc/openvpn/server.conf). Нам нужны следующие строки:

ca ca.crtcert server.crtkey server.keydh dh1024.pem

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

ca etc/openvpn/ca.crtcert etc/openvpn/server.crtkey etc/openvpn/server.keydh etc/openvpn/dh1024.pem

Теперь включаем шифрование и перенаправляем трафик с компьютера через VPN-сервер.

Для активизации tsl-шифрования нам нужны строки:

tls-auth ta.key 0 cipher DES-EDE3-CBC

Удаляем перед ними знак “;” (раскомментируем) – это необходимо, чтобы включить строку в обработку, а также добавляем путь к расположению ключа, чтобы получилось: tls-auth /etc/openvpn/ta.key 0.

Остается перенаправить трафик. Раскомментируем строки:

push "redirect-gateway def1 bypass-dhcp"push "dhcp-option DNS 193.183.98.154"push "dhcp-option DNS 217.12.210.54"

Первая строка разрешает выход в интернет. Если ее не раскоментировать в файле конфигурации, то мы будем иметь доступ только к компьютерам, входящих в локальную сеть. Вторая и третья строки - общедоступные DNS-серверы. Можно подобрать и другие серверы.

Задаем правило маршрутизации трафика:

iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -o eth0 -j MASQUERADE

OpenVPN-сервер установлен и настроен. Для запуска вводим:

openvpn /etc/openvpn/server.conf

Обратите внимание! На некоторых VPS-серверах может быть отключен сетевой драйвер TUN, необходимый для работы OpenVPN-сервера. Чтобы проверить – введите команды:
openvpn --dev tun1 --ifconfig 10.9.8.1 10.9.8.2
ifconfig –a

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

Настраиваем Windows-клиент

Сначала скопируем пользовательские ключи с сервера к себе на компьютер. Для этой цели можно воспользоваться программой WinSCP. Запускаем приложение:

В поле «Имя хоста» вводим IP-адрес сервера, «Имя пользователя» - по умолчанию root, вставляем пароль, нажимаем кнопку «Войти». Перед нами открывается графический клиент, напоминающий Norton Commander. Слева – содержимое локального ПК, справа – сервера. Заходим в /etc/openvpn/easy-rsa/keys (на сервере) и простым перетаскиванием в предварительно открытую папку копируем файлы (user.crt, user.key, ca.crt, ta.key) на свой ПК.

Скачиваем OpenVPN-клиент с официального сайта.

Устанавливаем программу, оставляя стандартные настройки. По завершении заходим в папку с программой, в подкаталог openvpn/sample-config. Здесь содержатся примеры конфигов. Данные одинаковы для разных платформ. Открываем документ client.ovpn – в нем приведены конфигурации для работы клиента. Находим строку:

remote my-server-1 1194

Здесь указываем IP-адрес VPN-сервера заменяя «my-server-1». Сохраняем изменения и копируем файл в корневую папку OpenVPN. Сюда же копируем заранее скопированные ключи: user.crt, user.key, ca.crt. Переименовываем файлы: заменяем «user» на «client».

Также нужно найти и раскоментировать следующие строки, ничего менять не нужно:

tls-auth ta.key 1cipher DES-EDE3-CBC

Обратите внимание! Параметр tls-auth ta.key на клиентском компьютере заканчивается единицей, тогда как на сервере – 0.

Для запуска соединения щелкаем правой кнопкой мыши на файле client.ovpnStart OpenVPN.

Соединение установлено, теперь весь трафик с ПК будет проходить через удаленный VPN-сервер.

Подпишитесь на нашу рассылку,
чтобы получать последние обновления нашего блога!