В руководстве мы расскажем, как установить сервис VPN на виртуальный сервер и настроить подключение к нему с клиентского устройства. Серверную часть мы установили на VPS под управлением Ubuntu 18.04. Клиентскую часть — на ПК с ОС Windows 10.
VPN, или Virtual Private Network — виртуальная частная сеть. Это обобщённое название технологий, позволяющих обеспечить одно или несколько сетевых соединений (логическую сеть) поверх другой сети (например, Интернет). Более подробную информацию о том, что из себя представляет VPN, для чего используется, а также аспекты законности можно прочитать в нашем блоге — в статье «Конфиденциально и безопасно: как и для чего использовать VPN для бизнеса».
Установка серверной части OpenVPN из скрипта
OpenVPN — реализация технологии VPN с открытым кодом, распространяемая по лицензии GNU GPL. OpenVPN в силу своей открытости имеет множество реализаций практически для всех платформ и к тому же на данный момент считается наиболее надежным вариантом VPN.
Для установки собственного сервера VPN на VPS мы использовали open-source скрипт openvpn-install.
Использование готового скрипта значительно упрощает первоначальную установку VPN и сводится к нескольким этапам:
- подключение к серверу;
- обновление ОС и при необходимости установка дополнительного ПО;
- загрузка и запуск скрипта установки;
- копирование файла конфигурации;
- проверка работоспособности службы.
Внимание!
Скрипт поддерживает ОС CentOS c версии 7, Debian c версии 9, Ubuntu с версии 17 (для версии 16 используйте скрипт vpn1604).
Установка скрипта на VPS под управлением ОС Ubuntu состоит из следующих шагов.
Шаг 1. Подключение к серверу
Подключитесь к серверу, используя полученные при заказе реквизиты, под учётной записью root. Где взять необходимые сведения и установить необходимую операционную систему, вы можете узнать из нашего руководства «Как произвести первоначальную настройку виртуального сервера: выбор операционной системы».
Для подключения используйте ssh-клиент: PuTTY, Xshell или любой другой. Выполните команду:
ssh root@ip.add.re.ss
Шаг 2. Обновление ОС, установка дополнительного ПО
Обновите систему:
apt-get update
apt-get upgrade -y
Однако, из соображений безопасности мы не рекомендуем использовать на вашем сервере учетную запись администратора (root). Мы рассказываем о том, как создать обычного пользователя и разрешить ему временно получать более высокий уровень привилегий с помощью команды sudo
в руководстве «Как создать непривилегированного пользователя на виртуальном сервере». В таком случае команды для обновления системы будут выглядеть так:
sudo apt-get update
sudo apt-get upgrade -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 с сервером, полезно выполнить некоторые проверки:
-
Проверить статус сервиса:
systemctl status openvpn
● openvpn.service - OpenVPN service Loaded: loaded (/lib/systemd/system/openvpn.service; enabled; vendor preset: enabled) Active: active (exited) since Sun 2019-12-01 15:27:20 MSK; 2h 16 min ago ...
Внимание!
Если вы увидите в статусе сервиса значение
inactive (dead)
, то выполните командуsystemctl restart openvpn
, а затем повторно выполните проверку. -
Проверить статус сокета:
ss -4nlup | grep 1194
UNCONN 24960 0 ip.add.re.ss:1194 0.0.0.0:* users:(("openvpn",pid=481,fd=8))
-
Проверить состояние сетевого фильтра:
iptables -nL | grep 1194
ACCEPT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:1194
Если вы получили выводы команд аналогичные представленным выше, то вы всё сделали правильно и сможете подключиться к серверу OpenVPN
.
Подключение к серверу OpenVPN
Подключение к серверу разделяется на несколько простых задач:
- Установка клиента VPN на своём компьютере или смартфоне.
- Установка соединения.
- Проверка соединения.
Установка и подключение клиента OpenVPN GUI в Windows 10
В Windows, в качестве клиента используется OpenVPN GUI. Установка проста и интуитивно понятна, но если возникнут сложности, воспользуйтесь инструкцией с официального сайта.
По умолчанию программа установится в папку: C:\Program Files\OpenVPN\
Установка соединения
Запустите клиент из меню «Пуск». Программа автоматически применит скопированный конфигурационный файл и установит соединение. Если у вас уже установлен OpenVPN GUI и имеется несколько файлов конфигурации VPN, выберите нужный и нажмите на кнопку «Подключиться.
Иконка клиента будет зелёной при установленном соединении.
Далее управлять программой можно из иконки в панели задач при нажатии правой кнопки: подключаться, отключаться, проверять состояние и тд.
Проверка соединения
Чтобы убедиться, что соединение установлено корректно, проверьте свой IP-адрес на таких сайтах как: myip.ru, 2ip.ru. IP-адрес должен совпадать с IP-адресом вашего сервера. Отключитесь от сервера VPN и проверьте, что адрес изменился.
Для установки клиента VPN на MacOS используйте Tunnelblick.
Документация
Дополнительную информацию по установке VPN на ваш сервер вы можете найти на официальном сайте:
Читайте также наши руководства: