Как установить VPN на сервер с CentOS

В руководстве мы расскажем, как установить сервис VPN на виртуальный сервер и настроить подключение к нему с клиентского устройства. Серверную часть мы установим на VPS под управлением CentOS 7.7. Клиентскую часть — на ПК с ОС Windows 10.

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

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

OpenVPN — реализация технологии VPN с открытым кодом, распространяемая по лицензии GNU GPL. OpenVPN в силу своей открытости имеет множество реализаций практически для всех платформ и к тому же на данный момент считается наиболее надежным вариантом VPN.

Для установки собственного сервера VPN на VPS мы использовали open-source скрипт openvpn-install.

Использование готового скрипта значительно упрощает первоначальную установку VPN и сводится к нескольким этапам:

  1. подключение к серверу;
  2. обновление ОС и при необходимости установка дополнительного ПО;
  3. загрузка и запуск скрипта установки;
  4. копирование файла конфигурации;
  5. проверка работоспособности службы.

Внимание!

Скрипт поддерживает ОС CentOS c версии 7, Debian c версии 9, Ubuntu с версии 17 (для версии 16 используйте скрипт vpn1604).

Установка скрипта на VPS под управлением ОС CentOS 7.7 состоит из следующих шагов.

Шаг 1. Подключение к серверу

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

Для подключения используйте ssh-клиент: PuTTY, Xshell или любой другой. Выполните команду:

ssh root@ip.add.re.ss

Шаг 2. Обновление ОС, установка дополнительного ПО

Обновите систему и при необходимости установите wget:

yum update -y

yum install wget -y

Однако, из соображений безопасности мы не рекомендуем использовать на вашем сервере учетную запись администратора (root). Мы рассказываем о том, как создать обычного пользователя и разрешить ему временно получать более высокий уровень привилегий с помощью команды sudo в руководстве «Как создать непривилегированного пользователя на виртуальном сервере». В таком случае команды для обновления системы будут выглядеть так:

sudo yum update -y

sudo yum install wget -y

Шаг 3. Загрузка и запуск скрипта установки сервера VPN

Загрузите и запустите скрипт установки:

wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh

или

sudo wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh

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

Welcome to this OpenVPN road warrior installer! Which protocol should OpenVPN use? 1) UDP (recommended) 2) TCP Protocol [1]: What port should OpenVPN listen to? Port [1194]: Select a DNS server for the clients: 1) Current system resolvers 2) Google 3) 1.1.1.1 4) OpenDNS 5) Quad9 6) AdGuard DNS server [1]: Enter a name for the first client: Name [client]: OpenVPN installation is ready to begin. Press any key to continue...

Пример предусматривает установку по умолчанию на сервере с одним IP-адресом, поэтому на все вопросы можно ответить нажатием на Enter, при этом будет выбран первый вариант из предложенных ответов.

Стандартные ответы:

  • IP-адрес определится самостоятельно, в случае если адресов несколько, скрипт предложит предложит выбрать один
  • Протокол: UDP
  • Порт подключения: 1194
  • Серверы DNS: Current system resolvers
  • Название клиента сертификата: client

Скрипт установит репозиторий, необходимые пакеты, сгенерирует RSA-ключи, сертификаты и конфигурационные файлы для сервера и клиента, настроит сетевой фильтр и запустит сервис openvpn-server.

После завершения установки скрипт сообщит, где находится конфигурационный файл клиента. Если вы запустили скрипт под администратором, то файл будет находиться в домашней директории пользователя root: /root/client.ovpn. Если под привилегированным пользователем с использованием sudo, то — в домашней директории этого пользователя. Этот файл необходимо будет перенести на ПК или устройство, с которого будет выполняться подключение к серверу. Конфигурационный файл сервера находится по пути: /etc/openvpn/server/server.conf.

Шаг 4. Копирование файла конфигурации

Следующая задача — перенести на ПК конфигурационный файл клиента, сформированный скриптом.

Для переноса можете воспользоваться такими программами как WinSCP или утилитой pscp из Putty.

Если вы ранее не пользовались программой WinSCP, то можете ознакомиться с ее возможностями на официальном сайте: установка WinSCP, соединение с сервером (File Protocol: SCP), раздел документации.

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

C:\Program Files\PuTTY\pscp.exe root@ip.add.re.ss:/root/client.ovpn "C:\Program Files\OpenVPN\config"

Далее, при необходимости принимаете отпечаток сервера и вводите пароль пользователя root.

Если на вашей клиентской машине уже установлен OpenSSH, то перенести файл можно с помощью команды:

scp root@ip.add.re.ss:/root/client.ovpn .

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

Шаг 5. Проверка работоспособности службы

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

  1. Проверить статус сервиса:

    systemctl status openvpn-server@server -l

    openvpn-server@server.service - OpenVPN service for server Loaded: loaded (/usr/lib/systemd/system/openvpn-server@.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2019-11-30 19:33:56 GMT; 2s ago ...

  2. Проверить статус сокета:

    ss -4nlup | grep 1194

    UNCONN 0 0 ip.add.re.ss:1194 *:* users:(("openvpn",pid=27675,fd=6))

  3. Проверить состояние сетевого фильтра:

    firewall-cmd --state

    running

  4. Проверить открытый порт для подключения:

    firewall-cmd --list-ports

    1194/udp

Если вы получили выводы команд аналогичные представленным выше, то вы всё сделали правильно и сможете подключиться к серверу OpenVPN.

Подключение к серверу OpenVPN

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

  1. Установка клиента VPN на своём компьютере или смартфоне.
  2. Установка соединения.
  3. Проверка соединения.

Установка и подключение клиента OpenVPN GUI в Windows 10

В Windows, в качестве клиента используется OpenVPN GUI. Установка проста и интуитивно понятна, но если возникнут сложности, воспользуйтесь инструкцией с официального сайта.

По умолчанию программа установится в папку: C:\Program Files\OpenVPN\

Установка соединения

Запустите клиент из меню «Пуск». Программа автоматически применит скопированный конфигурационный файл и установит соединение. Если у вас уже установлен OpenVPN GUI и имеется несколько файлов конфигурации VPN, выберите нужный и нажмите на кнопку «Подключиться.

Подключиться.

Иконка клиента будет зелёной при установленном соединении.

Иконка клиента будет зелёной при установленном соединении.

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

Для установки клиента VPN на MacOS используйте Tunnelblick.

Проверка соединения

Чтобы убедиться, что соединение установлено корректно, проверьте свой IP-адрес на таких сайтах как: myip.ru, 2ip.ru. IP-адрес должен совпадать с IP-адресом вашего сервера. Отключитесь от сервера VPN и проверьте, что адрес изменился.

Документация

Дополнительную информацию по установке VPN на ваш сервер вы можете найти на официальном сайте:

Читайте также наши руководства:

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

Сообщить об опечатке

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