UA RU
logo
Інструменти      19/01/2023

Как создать собственный VPN-сервер за 10 минут: чек-лист и фрагменты кода для настройки

Володимир Гуц BLOG

Engineering Lead Brighterly у SocialTech

В своей работе я часто пользуюсь разными VPN-серверами. Готовые сервисы – это вполне ок, но со временем я пришел к тому, что разработанный самостоятельно VPN имеет существенные преимущества.

Подробности

Чтобы понять преимущества собственного VPN-сервера по сравнению с готовым, стоит упомянуть, для чего вообще используют VPN:

  • чтобы предотвратить перехват трафика другими людьми;
  • обойти ограничение доступа к определенному ресурсу в стране;
  • скрыть от провайдера интернета, владельца WI-FI точки доступа личную информацию;
  • оставить неизвестным актуальное местонахождение (не забываем о часовых поясах – это тот показатель, по которому можно легко отследить твою локацию).

Здесь все понятно, поэтому перейдем к самому интересному: какие бывают преимущества использования собственного сервиса и как его создать. Я расписал чек-лист с пошаговой инструкцией по созданию и настройке VPN-сервера, который использую в своей работе.

Важно: эта инструкция рассчитана на то, что вы:

✔️ знаете как использовать SSH-клиент;

✔️ умеете на базовом уровне пользоваться терминалом: Terminal, Console Powershell и т.д.

Англійська для початківців від Englishdom.
Для тих, хто тільки починає вивчати англійську і хоче вміти використовувати базову лексику і граматику.
Реєстрація на курс

Преимущества использования собственного VPN-сервера

  1. Обход блокировки. Некоторые страны пытаются бороться с VPN серверами, поэтому часто блокируют их. Но если вы пользуетесь собственным VPN, его не будет видно в общем списке сервисов и он почти точно обойдет блокировку.
  2. Отсутствуют капчи. Все общеизвестные сервисы потребуют от вас выбрать на изображении лошадей, найти части светофоров или прочитать слово. Почему так? Когда мы пользуемся готовым VPN-сервером, параллельно это делают многие люди. Конечно, сайт сочтет такой трафик подозрительным и будет заваливать вас капчами. При пользовании же собственным VPN-сервером такой проблемы не возникает – у вас будет уникальный IP-адрес, который для сайта будет выглядеть как надежный пользователь.
  3. Высокая скорость. Пропускная способность готовых VPN-серверов может быть низкой из-за того, что они часто не успевают масштабировать свои серверы и сети для большого количества пользователей. На собственном ресурсе вся пропускная способность только для ваших нужд.
  4. Возможность весь трафик компьютера пускать через VPN, а не только трафик браузера.
  5. Отсутствие необходимости устанавливать посторонний софт.

Как видим, большинство проблем от использования VPN исчезает, если использовать собственный сервер.

Мифы о создании VPN-сервера

Распространено мнение, что собственный сервер – это дорого, долго, сложно. Проще купить готовый сервис и не париться. Но зная существенные преимущества собственного VPN-сервера, хочу развеять основные мифы по его созданию.

  • Миф 1. Собственный VPN – это дорого
  • Онлайн-курс "Асинхронне програмування" від robot_dreams.
    Опануйте підходи асинхронного програмування на Python для розробки швидких та ефективних програм.Вас навчатиме Lead Python Software Engineer у SoftServe.
    Детальніше про курс

VPN можно поднять на любом хостинге, предоставляемом виртуальными машинами: AWS, Azure, Linode, Digitalocean, Hetzner и другими. Можно уложиться в сумму $4 в месяц, и такого сервера вполне хватит для нужд одного человека.

  • Миф 2. Собственные VPN-сервисы негибкие

Да, готовый сервис действительно предлагает пользователям несколько вариантов локаций, между которыми достаточно легко переключаться. Но в собственном тоже возможно создать сервер в любом из доступных в сервисе регионов на ваш выбор. Вопрос только в бюджете. И давайте будем честными: обычно нам не нужно часто менять локацию. Для постоянного использования вполне хватает одной-двух.

  • Миф 3. Создать свой сервер трудно

На самом деле создание собственного сервера – дело нескольких кликов. По следующей инструкции это можно сделать в течение 10 минут (проверено лично).

Чек-лист по созданию собственного VPN-сервера

Разберем на примере DigitalOcean и их сервера Droplet.

  • Регистрация

Если у вас уже есть аккаунт на DigitalOcean – можете переходить к следующему пункту. Если нет – сначала пройдите регистрацию (там интуитивно понятны все шаги).

  • Создайте новый Droplet, который будет выполнять роль VPN-сервера
  • Онлайн курс з промт інжинірингу та ефективної роботи з ШІ від Powercode academy.
    Курс-інтенсив для отримання навичок роботи з ChatGPT та іншими інструментами ШІ для професійних та особистих задач, котрі допоможуть як новачку, так і професіоналу.
    Записатися на курс

Выберите дата-центр, из которого вы планируете выходить в интернет. Я решил работать с Frankfurt, потому что он территориально находится ближе всего к Украине, что положительно влияет на скорость работы.

Для графы Image выберите Markerplace, Docker on Ubuntu. Затем в графе Size выберите план подписки, подходящий вам по бюджету.

Для Choose Authentication Method установите пароль или SSH-ключ.

В Hostname впишите имя, например vpn-server. Это ни на что не влияет и нужно только для удобства. Затем нажмите кнопку Create Droplet.

Подождите, пока создастся сервер. Обычно это занимает до одной минуты. После этого вы получите IP-адрес своего сервера.

  • Подключитесь к SSH-серверу

Открываем Terminal в MacOS/Linux (или PowerShell/putty в Windows) и подключаемся по SSH к нашему серверу, используя имя пользователя root и IP-адрес нашего сервера.

Основи Python для школярів від Hillel IT School.
Відкрийте для вашої дитини захопливий світ програмування з нашим онлайн-курсом "Програмування Python для школярів". Ми вивчимо основи програмування на прикладі мови Python, надаючи зрозумілі пояснення та цікаві практичні завдання.
Зареєструватися

Это можно сделать с помощью:

ssh root@{your-ip-address}

> введи свій пароль

После этого вы должны подключиться.

  • Создайте файл docker-compose.yml

Я сохранил свой код, поэтому просто скопируйте и создайте свой файл со всем содержимым этого ресурса . Этот файл – конфигурация вашего сервера.

Вы можете создать файл либо через SSH, используя консольные редакторы текста (nano/vim), либо с помощью SFTP-клиента. Я использовал консольный редактор через SSH.

Курс Project Manager від Powercode academy.
Онлайн-курс Project Manager. З нуля за 3,5 місяці до нової позиції Без знання коду, англійської та стресу.
Зарееструватися

В том же окне SSH делаем следующее:

> nano docker-compose.yml

Вставляем содержимое. В добавленном тексте изменяем следующие параметры под себя:

  1. my-shared-secret– на собственное секретное слово;
  2. my-username– на личный логин;
  3. my-password– на свой пароль.

Обратите внимание, насколько это просто – в файле всего 14 строк, которые нам нужны. За это я люблю Doker 🙂


Выходим, зажав Ctrl+X, затем Y, далее нажимаем Enter.

  • Запустите контейнер с созданным сервером
  • Онлайн-курс "SMM-спеціаліст" від Laba.
    Від аналізу аудиторії та створення живого контенту — до побудови комʼюніті навколо бренду в соцмережах.Під менторством Senior SMM Specialist в Uklon.
    Дізнатись більше

Используем то же окно SSH, в котором мы только что создали файл.

> docker compose up -d

Поздравляю! Ваш VPN-сервер запущен и работает. Как теперь подключиться к нему?

  • Подключение к созданному VPN-серверу

Я использую IPsec, потому что клиенты для этого VPN уже встроены в MacOS/Windows и не придется ничего устанавливать локально. Нужно только создать новое VPN-подключение по следующим параметрам:

  1. Тип: IPSec;
  2. Server address: укажите IP-адрес сервера;
  3. Account name: напишите my-username(или то имя, на которое вы его изменили);
  4. Практичний інтенсивний курс з дизайну - Design Booster від Powercode academy.
    Навчіться дизайну з нуля за 3 місяці і заробляйте перші $1000, навіть якщо ви не маєте креативного мислення, смаку або вміння малювати. Отримайте практичні навички, необхідні для успішної кар'єри в дизайні.
    Зарееструватися
  5. Password: добавьте my-password(или тот вариант, на который вы его меняли);
  6. Shared Secret: напишите my-shared-secret(или измененный ранее вариант).

Для MacOS ничего устанавливать не нужно, достаточно лишь настроить следующее:

Для Windows эти настройки будут выглядеть несколько иначе:

К сожалению, в Windows не все так просто и придется посерфить в реестре и разрешить NAT-T.

Для пользователей Linux также добавляю скрин с настройками (использовал в Ubuntu 22.04):

Перед установкой необходимо установить пакет network-manager-l2tp-gnome. Делается это через консоль:

Онлайн-курс "B2B-продажі" від Laba.
Розробіть ефективну стратегію B2B-продажів за 11 занять: від воронки до партнерської програми.Лектор курсу — засновник консалтингової компанії, який має 15 років досвіду в продажах.
Дізнатись більше

> sudo apt-get install network-manager-l2tp-gnome

Также можно подключиться к телефону, ничего дополнительно устанавливать не нужно. Настройка на iPhone выглядит так:

Готово! Подключайтесь и проверьте IP-адрес, например, на Whoer по ссылке. Теперь для всего интернета вы физически находитесь в регионе, где создали свой VPN-сервер, а IP – это IP-сервера. Все не так страшно, не долго и не дорого, как могло вам казаться:)

Рекомендации по безопасности

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

  • использовать SSH-ключ вместо пароля;
  • изменить SSH-port с 22 на любой другой;
  • использовать сложный пароль и Shared-secret (желательно Random generated string).

 

Курс QA engineer від Mate academy.
Якщо ви новачок та хочете опанувати професію QA engineer - обирайте курс з гнучким графіком та допомогою в працевлаштуванні!
Отримати знижку на курс

If you have found a spelling error, please, notify us by selecting that text and pressing Ctrl+Enter.

Онлайн-курс "Ціноутворення для виробників та ритейлу" від Laba.
Масштабуйте бізнес, незалежно від конкурентів, завдяки оптимізації стратегії ціноутворення.Досвід та фідбек від Senior Product Manager Pricing Platform у Zalando.
Детальніше про курс

Этот материал – не редакционный, это – личное мнение его автора. Редакция может не разделять это мнение.

Ваша жалоба отправлена модератору

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

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