Статья удалена
В статье рассмотрим четыре способа создания собственного VPN. Начнем с самого простого варианта, что под силу даже начинающим пользователям ПК. В моем тг канале больше способов ускорения ютуба в закрепе, а так же много крутых сервисов и нейросетей и о том как их использовать!
Подготовка
Для всех четырех способов нам понадобиться виртуальный сервер (VPS). Будет достаточно конфигурации с 1 vCPU и 1GB RAM. В качестве операционной системы для установки возьмем последний Ubuntu 24.04 или Debian 12.
Способ 1. Amnezia
Самый простой и быстрый вариант настройки VPN самому. Достаточно просто установить программу-клиент Amnezia на компьютер или телефон. При первом запуске она подключится к серверу и настроит всё необходимое программное обеспечение.
Подробная инструкция есть здесь.
VPN-клиент Amnezia доступен для всех популярных десктопных и мобильных операционных систем, он полностью бесплатен и является программным обеспечением с открытым исходным кодом (GitHub).
Стоит отметить, что кроме поддержки привычных OpenVPN, WireGuard, IPsec и др. протоколов, в Amnezia есть собственный защищенный протокол AmneziaWG.
Способ 2. Виртуальный сервер с предустановленным VPN
Некоторые хостеры при заказе сервера сразу предлагают установить на нем VPN с удобным веб-интерфейсом (UI) для управления пользователями.
После активации сервера нужно зайти в веб-интерфейс управления VPN-ом, создать нового пользователя и скачать его конфигурационный файл с настройками подключения.
Затем этот файл достаточно загрузить или импортировать в любой VPN-клиент с поддержкой нужного протокола, в таблице ниже – наиболее популярные варианты:
Способ 3. Готовый скрипт
На GitHub есть готовые универсальные скрипты для полуавтоматической настройки VPN. Мастер установки задаст несколько вопросов, настроит всё сам и создаст пользовательский файл конфигурации для подключения к VPN.
Один из наиболее популярных скриптов – для OpenVPN, и также для WireGuard.
Способ 4. Сделать VPN самому
Самый трудоемкий вариант, где будем настраивать VPN на сервере с Ubuntu 24.04 сами. Из протоколов выберем проверенный временем OpenVPN, поддержка которого заявлена в большинстве современных роутеров.
Подключаемся к VPS как root, создаем нового пользователя и добавляем его в sudo:
Затем входим на сервер как user и выполняем все дальнейшие команды от его имени.
Обновим списки пакетов и установим OpenVPN и Easy-RSA (для управления сертификатами в инфраструктуре открытых ключей):
В папке нашего пользователя создаем директорию с символической ссылкой и нужными правами:
Создаем конфигурационный файл для Easy-RSA и инициализируем инфраструктуру открытых ключей (PKI):
Сгенерируем ключи удостоверяющего центра:
Система запросит ввести универсальное имя, здесь можно просто нажать Enter.
Выпустим и подпишем пару "ключ-сертификат" для сервера:
При выполнении первой команды вас попросят указать Common Name, здесь просто нажмите Enter. Для второй команды запрос нужно подтвердить, введя yes.
Скопируем созданные файлы в каталог OpenVPN:
Для дополнительной защиты, создадим предварительный общий ключ (PSK), который будет использоваться с директивой tls-crypt:
Выпустим и подпишем пару "ключ-сертификат" для клиента client1:
В первой команде на требование указать Common Name нажмите Enter, при выполнении второй команды подтвердите запрос вводом yes.
Создадим директорию для клиентских конфигов, скопируем туда нужные файлы и установим для них соответствующие права:
Настроим конфиг OpenVPN на основе дефолтного примера. Для этого скопируем шаблонный файл server.conf в рабочую директорию:
C помощью любого текстового редактора открываем файл server.conf для редактирования:
этом файле нужно внести следующие изменения:
- заменить dh dh2048.pem на dh none
- раскомментировать строку push "redirect-gateway def1 bypass-dhcp"
- раскомментировать две строки с DNS серверами:push "dhcp-option DNS 208.67.222.222"push "dhcp-option DNS 208.67.220.220"По умолчанию здесь указаны адреса публичных DNS серверов от OpenDNS. Рекомендую сразу их заменить на DNS сервера от CloudFlare (1.1.1.1, 1.0.0.1) или Google (8.8.8.8 и 8.8.4.4)
- заменить tls-auth ta.key 0 на tls-crypt ta.key
- заменить cipher AES-256-CBC на cipher AES-256-GCM и после этой строки добавить еще одну новую – auth SHA256
- добавить в конце файла две строки:user nobodygroup nogroup
Чтобы включить переадресацию пакетов, раскомментируем (вручную или с помощью утилиты sed) строку net.ipv4.ip_forward=1 в файле /etc/sysctl.conf и применим изменения:
Теперь нужно настроить форвардинг и маскарадинг в iptables, но для этого сначала посмотрим имя публичного сетевого интерфейса на сервере:
Пример результата выполнения команды показан ниже, в нем имя нужного нам интерфейса отображается сразу после "dev" :
default via 123.45.67.8 dev ens3 proto static onlink
Здесь интерфейс называется ens3, в вашем случае он может быть другой.
Разрешаем переадресацию и включаем маскарадинг в iptables. При необходимости имя интерфейса (ens3) в трех местах замените на нужное:
Добавляем сервис OpenVPN в автозагрузку и запускаем его:
Проверить, запущен ли VPN можно командой:
Нам осталось создать файл конфигурации .ovpn, который клиент будет использовать для подключения к VPN.
Файл .ovpn должен содержать базовые параметры, сертификаты и ключи. Чтобы не объединять это всё вручную, напишем небольшой BASH-скрипт:
В скрипте вместо X.X.X.X впишите IP адрес вашего сервера, поместите файл в любую директорию и установите исполняемые права:
Создаем .ovpn файл для client1:
Готово! В папке ~/openvpn-clients появился client1.ovpn. Скачайте его и просто импортируйте в любой OpenVPN-клиент или на роутер с поддержкой этой функции.
В моем тг канале больше способов ускорения ютуба в закрепе, а так же много крутых сервисов и нейросетей и о том как их использовать!