В России в 2023 году бесплатные VPN сервисы не работают. Список платных VPN сервисов, заблокированных Роскомнадзором, пополняется чуть ли не каждый день. Давайте создадим свой собственный, личный VPN, который никогда не заблокируют! Стоимость такого VPN будет составлять 292 руб. в месяц при оплате за месяц. При оплате более длительного периода стоимость будет еще меньше.
Как работает VPN
В виртуальную частную сеть (VPN) объединяются сервер (VPN сервер) и клиенты (VPN клиенты). Когда клиенту необходимо получить данные из сети Интернет, он обращается к серверу, сервер за клиента получает необходимые данные в сети Интернет и перенаправляет эти данные запросившему клиенту. Благодаря такой работе VPN, можно обойти блокировки доступа, наложенные на клиента, поскольку данные в сети Интернет запрашивает сервер, а не клиент.
Виртуальный сервер не в России
Выбираем самый дешевый виртуальный сервер (VDS или VPS), располагающийся не в России, и чтобы его можно было оплатить российской банковской картой в рублях. У меня получилось найти такой сервер за 259 руб. в месяц при оплате за месяц (https://firstbyte.ru/vps-vds/kvm-ssd-eu/):

Личный VPN в 2023 году может понадобиться по разным причинам. Поэтому очень удобно, что есть еще и выбор страны расположения виртуального сервера из четырех стран Европы.
При заказе виртуального сервера можно выбрать операционную систему, которая будет предустановлена на сервере. Я выбираю Debian 11:

Остальные параметры оставляем по умолчанию:

При оплате суммы 259 руб. (за месячное использование виртуального сервера) возникает комиссия:

Т.е. при оплате за месяц стоимость виртуального сервера составляет 292 руб. в месяц.
При оплате суммы от 1500 руб. комиссия уже не возникает:

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

В Инструкции все необходимые для работы данные:

Доступ к серверу по протоколу SSH в Windows/Linux
Доступ на наш виртуальный сервер возможен по протоколу SSH на порт 22.
Для ОС Windows настроим на своем компьютере SSH клиент PuTTY. В поле Host Name or IP address указываем IP адрес сервера из Инструкции, в поле Port должна быть цифра 22, и нажимаем кнопку Open:

В ОС Linux для доступа к серверу (IP адрес 123.45.67.89, порт 22) пользователю с именем root необходимо ввести команду:
ssh root@123.45.67.89 -p 22
Вводим имя пользователя root и пароль из Инструкции:

Ура! Доступ к виртуальному серверу работает. Можем проверить, обещанную ли 11-ю версию Debian нам на сервер установили:
cat /etc/debian_version
Быстрая настройка VPN сервера
Мы будем устанавливать VPN сервер, который называется OpenVPN. Для быстрой установки и настройки OpenVPN сервера будем использовать скрипт. Подробнее про скрипт можно узнать на GitHub https://github.com/angristan/openvpn-install.
Устанавливаем пакет curl, который понадобится для скачивания скрипта:
apt install curl
Скачиваем скрипт openvpn-install.sh:
curl -O https://raw.githubusercontent.com/angristan/openvpn-install/master/openvpn-install.sh
Задаем скрипту openvpn-install.sh права на выполнение:
chmod +x openvpn-install.sh
Запускаем на выполнение:
./openvpn-install.sh
Скрипт верно определил общедоступный статический IP адрес сервера, нажимаем на клавиатуре Enter:

Все настройки оставляем по умолчанию:

Прослушиваемый порт OpenVPN сервера — 1194, используемый протокол — UDP.
Далее скрипт предлагает ввести имя VPN клиента. Имя должно состоять из буквенно-цифровых символов. Так же имя может содержать символы подчеркивания или тире. Я ввожу vpnclient01:

Скрипт спрашивает: «Хотите защитить файл конфигурации паролем?» (см. рисунок выше). Я выбираю первый вариант, т.е. не защищать паролем файл конфигурации.
Все! Сервер VPN запущен и работает. А файл конфигурации /root/vpnclient01.ovpn нужно передать VPN клиенту.
Чтобы вручную запустить сервер OpenVPN:
systemctl start openvpn@server
Чтобы вручную остановить сервер OpenVPN:
systemctl stop openvpn@server
Проверить статус сервера:
systemctl status openvpn@server
Доступ к серверу по протоколу SCP в Windows/Linux
SCP протокол используется для безопасной передачи файлов между удаленной и локальной системой. SCP протокол основан на SSH протоколе. Поэтому, если есть доступ по SSH, то и будет доступ по SCP.
Мы по SCP протоколу передадим файл конфигурации /root/vpnclient01.ovpn с виртуального сервера на компьютер, где планируется работа VPN клиента.
В ОС Windows я буду использовать SCP клиент, который называется WinSCP (https://winscp.net/eng/download.php). В настройках соединения с виртуальным сервером указываем те же параметры, что и при подключении к виртуальному серверу по протоколу SSH, и нажимаем кнопку Войти:

Копируем файл конфигурации /root/vpnclient01.ovpn с виртуального сервера на локальный компьютер:

В ОС Linux для получения файла /root/vpnclient01.ovpn с сервера (с IP 123.45.67.89) пользователю с именем root необходимо ввести команду:
scp root@123.45.67.89:~/vpnclient01.ovpn .

Файл получен!
Настройка VPN клиента в Windows
На своем компьютере установим VPN клиент, который называется OpenVPN Connect (https://openvpn.net/client-connect-vpn-for-windows/). Запускаем OpenVPN Connect, переходим на вкладку FILE и указываем местоположение скаченного с виртуального сервера файла конфигурации vpnclient01.ovpn:

Файл конфигурации импортирован, нажимаем кнопку CONNECT. Ура! VPN заработал:

Настройка VPN клиента в Linux
Устанавливаем VPN клиент, который называется OpenVPN:
apt install openvpn
Копируем скаченный с виртуального сервера файл конфигурации vpnclient01.ovpn в директорию /etc/openvpn/ под новым именем файла vpnclient01.conf:
cp -v vpnclient01.ovpn /etc/openvpn/vpnclient01.conf
OpenVPN клиент автоматически добавлен в автозагрузку и будет запускаться при перезагрузке системы.
Чтобы вручную запустить клиент OpenVPN:
systemctl start openvpn@vpnclient01.service
Чтобы вручную остановить клиент OpenVPN:
systemctl stop openvpn@vpnclient01.service
Удалить OpenVPN клиента из автозагрузки можно командой:
update-rc.d openvpn disable
Проверка работоспособности VPN
Проверим работоспособность VPN. Для этого попробуем открыть в браузере сайт, например, разработчиков ChatGPT, который недоступен для посетителей из России в 2023 году (https://chat.openai.com/auth/login):

Добавление/удаление пользователей VPN
Чтобы добавить нового пользователя или удалить существующих пользователей VPN, на виртуальном сервере опять запускаем скрипт:
./openvpn-install.sh

Для добавления нового пользователя VPN выбираем пункт 1, для удаления существующего пользователя — пункт 2.
Безопасность виртуального сервера
Минимально необходимые настройки безопасности виртуального сервера описаны в статье «SSH key в Windows и Linux. Руководство«.
Выводы
Свой личный VPN в 2023 году в России — это не роскошь, а, скорее всего, уже жизненная необходимость. Настроить свой личный VPN с помощью этой статьи не составляет труда. Пользуйтесь!
Комментарии