Как стать автором
Обновить

Поднимаем свой VPN (OpenVPN)

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров10K

Привет хабр! В этой статье хочу рассказать, как развернуть свой собственный vpn сервис.
Тут будет только базовая настройка, рассчитанная только на личное пользование, но, ее хватит чтобы спокойно полистать youtube и прочие ресурсы, которых вам возможно не хватает.

Стартовая точка

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

Для написания статьи я арендовал VPS со следующими характеристиками:

  • OS: Ubuntu 24.04 LTS

  • HDD: 10 Гб (место на диске)

  • RAM: 0.5 Гб (оперативная память)

  • CPU: 1x2.2 ГГц (процессор)

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

  • IP: XXX.XXX.XXX.XXX (IPv4 адрес вашего сервера)

  • LOGIN: Имя пользователя, созданного на сервере (чаще всего это будет root)

  • PASSWORD: Пароль для созданного пользователя

Имея вышеуказанную информацию, вы можете зайти на свой сервер по SSH.

Для тех, у кого Windows

С помощью CMD (информация с сайта)

  1. Откройте «Параметры» — «Приложения».

  2. Выберите подпункт «Дополнительные компоненты».

  3. Найдите в списке «Клиент OpenSSH» и нажмите «Установить». Если этой кнопки нет, значит, служба уже включена.

  4. После установки перезагрузите компьютер.

  5. После включения нажмите Win+R, введите в поле «cmd» и Enter

  6. Далее вы

Способ подключения через PowerShell можно посмотреть тут

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

ssh <LOGIN>@<IP>
# В первый раз вы получите следующее сообщение
# ...
# Are you sure you want to continue connecting (yes/no/[fingerprint])?
# Пишем в консоли yes
yes
# Далее вам предложат ввести пароль
# <LOGIN>@<IP>'s password:
# Вводим пароль
<PASSWORD>

Теперь мы зашли на сервер.

Первоначальная настройка сервера

Важно: пока не закончится этот блок или не будет сказано обратного, не выходите из консоли

Примечание: Для вставки скопированного текста обычно можно либо нажать на колесико мышки внутри окна консоли, либо использовать комбинацию клавиш CTRL + SHIFT + V.

Для начала добавим пользователя (вы можете выбрать любое имя, я далее буду использовать имя vpn).

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

adduser vpn

Далее нам необходимо наделить нового пользователя административными правами, добавив в группу sudo.

usermod -aG sudo vpn

Теперь давайте обновим установленные пакеты и установим фаервол.

sudo apt update && sudo apt install ufw -y

И разрешим подключение по ssh.

sudo ufw allow OpenSSH
# Вывод должен быть следующим
# Available applications:  
#   OpenSSH

Если вы получили аналогичное сообщение, то можно спокойно включать фаервол.

sudo ufw enable
# Проверить статус можно следующей командой sudo ufw status 

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

ssh vpn@<IP>

Когда вы зайдете на сервер, необходимо также проверить, что вам доступно выполнение команд от имени администратора. Для этого попробуем переключиться на пользователя root.

sudo su
# Тут вас попросят ввести пароль

Если все получилось, то имя пользователя в консоли изменится на root, чтобы вернуться обратно, нажмите CTRL + D и убедитесь, что вы снова под своим пользователем. Теперь можно смело закрывать первую консоль.

Рекомендую вам настроить SSH ключи вместо аутентификации по паролю. В контексте данной статьи этот пункт мы не будем рассматривать, но я оставлю вам инструкцию о том, как это сделать

  • DigitalOcean (На английском и может не работать без VPN)

  • timeweb (На русском, есть раздел для Windows)

Установка OpenVPN

Источник с альтернативными вариантами установки

Скачиваем установочный скрипт

Старайтесь всегда проверять содержание bash скриптов из неизвестных вам источников, да и вообще любых источников

curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh

Разрешаем выполнение скаченного файла

chmod +x openvpn-install.sh

Начинаем установку (возможно вам потребуется добавить sudo перед следующей командой)

./openvpn-install.sh
# Вам будет предложен ряд вопросов, вы можете выбрать то, что вам нужно, если
# вы знаете, что делать, в противном случае можете оставить по умолчанию
# просто прокликав Enter
# После установки вам будет предложенно ввести имя первого клиента, я укажу vpn
# На остальные вопросы можно также прокликать Enter

После окончания выполнения скрипта, в вашей директории создастся файл с конфигурацией. В моем случае он будет называться vpn.ovpn так как именем клиента я указал именно vpn.

Примечание: чтобы посмотреть, какие файлы лежат в текущей директории, используйте одну из следующих команд ls, ls -l, ll

Примечание: для того, чтобы создать нового клиента, вам необходимо повторно выполнить скрипт openvpn-install.sh. Вам предложат, 4 варианта, введите цифру, под которой указано Add a new user и нажмите ENTER, укажите новое имя и выберите интересующие вас опции

Скачивание файла конфигурации

Далее, нам необходимо скачать файл с сервера

Вот статья о том, как это сделать с примером в том числе на windows

Открываем новое окно консоли на вашем устройстве и вводим следующую команду

# Копируем файл vpn.ovpn из домашней директории пользователя vpn на сервере
# в домашнюю директорию на вашем устройстве
scp vpn@<IP>:~/vpn.ovpn ~/

Возможные проблемы:

  • Permission denied (publickey) - скорее всего возникнет, если вы настроили ключ ssh и его имя отлично от id_rsa, в данном случае вам необходимо использовать флаг -i после команд ssh и scp указав путь до вашего ключа. ssh -i /path/to/key <LOGIN>@<IP>

  • Также вашему пользователю может не хватить прав для скачивания файла, тогда на сервере вы можете изменить права на файл или директорию (если не хотите париться, то можете написать sudo chmod 777 vpn.ovpn, что не рекомендуется) но лучше понять, что вы делаете

  • Вы можете находиться не в домашней директории, чтобы понять откуда скачивать файл, можно прописать команду pwd она выведет текущую директорию и тогда ваша команда по скачиванию файла будет выглядеть следующим образом
    scp <LOGIN>@<IP>:/path/from/pwd/vpn.ovpn ~/

Подключение VPN

Для большинства устройств есть официальное приложение OpenVPN для подключения клиента, поэтому тут расскажу, что нужно делать на ubuntu

Я работаю на Kubuntu 25.04. Поэтому пример подключения будет на нем.

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

sudo apt-get install openvpn network-manager-openvpn
# также вам может понадобиться установка network-manager-openvpn-gnome
# и перезагрузка

Далее нам нужно открыть настройки wifi и сети и добавить новую сеть

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

Подключаем VPN и можем проверять, что наш IP изменился.

Теги:
Хабы:
-1
Комментарии35

Публикации

Работа

Ближайшие события