В своей работе я часто пользуюсь разными VPN-серверами. Готовые сервисы – это вполне ок, но со временем я пришел к тому, что разработанный самостоятельно VPN имеет существенные преимущества.
Подробности
Чтобы понять преимущества собственного VPN-сервера по сравнению с готовым, стоит упомянуть, для чего вообще используют VPN:
- чтобы предотвратить перехват трафика другими людьми;
- обойти ограничение доступа к определенному ресурсу в стране;
- скрыть от провайдера интернета, владельца WI-FI точки доступа личную информацию;
- оставить неизвестным актуальное местонахождение (не забываем о часовых поясах – это тот показатель, по которому можно легко отследить твою локацию).
Здесь все понятно, поэтому перейдем к самому интересному: какие бывают преимущества использования собственного сервиса и как его создать. Я расписал чек-лист с пошаговой инструкцией по созданию и настройке VPN-сервера, который использую в своей работе.
Важно: эта инструкция рассчитана на то, что вы:
✔️ знаете как использовать SSH-клиент;
✔️ умеете на базовом уровне пользоваться терминалом: Terminal, Console Powershell и т.д.
Преимущества использования собственного VPN-сервера
- Обход блокировки. Некоторые страны пытаются бороться с VPN серверами, поэтому часто блокируют их. Но если вы пользуетесь собственным VPN, его не будет видно в общем списке сервисов и он почти точно обойдет блокировку.
- Отсутствуют капчи. Все общеизвестные сервисы потребуют от вас выбрать на изображении лошадей, найти части светофоров или прочитать слово. Почему так? Когда мы пользуемся готовым VPN-сервером, параллельно это делают многие люди. Конечно, сайт сочтет такой трафик подозрительным и будет заваливать вас капчами. При пользовании же собственным VPN-сервером такой проблемы не возникает – у вас будет уникальный IP-адрес, который для сайта будет выглядеть как надежный пользователь.
- Высокая скорость. Пропускная способность готовых VPN-серверов может быть низкой из-за того, что они часто не успевают масштабировать свои серверы и сети для большого количества пользователей. На собственном ресурсе вся пропускная способность только для ваших нужд.
- Возможность весь трафик компьютера пускать через VPN, а не только трафик браузера.
- Отсутствие необходимости устанавливать посторонний софт.
Как видим, большинство проблем от использования VPN исчезает, если использовать собственный сервер.
Мифы о создании VPN-сервера
Распространено мнение, что собственный сервер – это дорого, долго, сложно. Проще купить готовый сервис и не париться. Но зная существенные преимущества собственного VPN-сервера, хочу развеять основные мифы по его созданию.
- Миф 1. Собственный VPN – это дорого
VPN можно поднять на любом хостинге, предоставляемом виртуальными машинами: AWS, Azure, Linode, Digitalocean, Hetzner и другими. Можно уложиться в сумму $4 в месяц, и такого сервера вполне хватит для нужд одного человека.
- Миф 2. Собственные VPN-сервисы негибкие
Да, готовый сервис действительно предлагает пользователям несколько вариантов локаций, между которыми достаточно легко переключаться. Но в собственном тоже возможно создать сервер в любом из доступных в сервисе регионов на ваш выбор. Вопрос только в бюджете. И давайте будем честными: обычно нам не нужно часто менять локацию. Для постоянного использования вполне хватает одной-двух.
- Миф 3. Создать свой сервер трудно
На самом деле создание собственного сервера – дело нескольких кликов. По следующей инструкции это можно сделать в течение 10 минут (проверено лично).
Чек-лист по созданию собственного VPN-сервера
Разберем на примере DigitalOcean и их сервера Droplet.
- Регистрация
Если у вас уже есть аккаунт на DigitalOcean – можете переходить к следующему пункту. Если нет – сначала пройдите регистрацию (там интуитивно понятны все шаги).
- Создайте новый Droplet, который будет выполнять роль VPN-сервера
Выберите дата-центр, из которого вы планируете выходить в интернет. Я решил работать с Frankfurt, потому что он территориально находится ближе всего к Украине, что положительно влияет на скорость работы.
Для графы Image выберите Markerplace, Docker on Ubuntu. Затем в графе Size выберите план подписки, подходящий вам по бюджету.
Для Choose Authentication Method установите пароль или SSH-ключ.
В Hostname впишите имя, например vpn-server
. Это ни на что не влияет и нужно только для удобства. Затем нажмите кнопку Create Droplet.
Подождите, пока создастся сервер. Обычно это занимает до одной минуты. После этого вы получите IP-адрес своего сервера.
Открываем Terminal в MacOS/Linux (или PowerShell/putty в Windows) и подключаемся по SSH к нашему серверу, используя имя пользователя root и IP-адрес нашего сервера.
Это можно сделать с помощью:
ssh [email protected]{your-ip-address}
> введи свій пароль
После этого вы должны подключиться.
- Создайте файл docker-compose.yml
Я сохранил свой код, поэтому просто скопируйте и создайте свой файл со всем содержимым этого ресурса . Этот файл – конфигурация вашего сервера.
Вы можете создать файл либо через SSH, используя консольные редакторы текста (nano/vim), либо с помощью SFTP-клиента. Я использовал консольный редактор через SSH.
В том же окне SSH делаем следующее:
> nano docker-compose.yml
Вставляем содержимое. В добавленном тексте изменяем следующие параметры под себя:
my-shared-secret
– на собственное секретное слово;my-username
– на личный логин;my-password
– на свой пароль.
Обратите внимание, насколько это просто – в файле всего 14 строк, которые нам нужны. За это я люблю Doker 🙂
Выходим, зажав Ctrl+X, затем Y, далее нажимаем Enter.
- Запустите контейнер с созданным сервером
Используем то же окно SSH, в котором мы только что создали файл.
> docker compose up -d
Поздравляю! Ваш VPN-сервер запущен и работает. Как теперь подключиться к нему?
- Подключение к созданному VPN-серверу
Я использую IPsec, потому что клиенты для этого VPN уже встроены в MacOS/Windows и не придется ничего устанавливать локально. Нужно только создать новое VPN-подключение по следующим параметрам:
- Тип: IPSec;
- Server address: укажите IP-адрес сервера;
- Account name: напишите
my-username
(или то имя, на которое вы его изменили); - Password: добавьте
my-password
(или тот вариант, на который вы его меняли); - Shared Secret: напишите
my-shared-secret
(или измененный ранее вариант).
Для MacOS ничего устанавливать не нужно, достаточно лишь настроить следующее:
Для Windows эти настройки будут выглядеть несколько иначе:
К сожалению, в Windows не все так просто и придется посерфить в реестре и разрешить NAT-T.
Для пользователей Linux также добавляю скрин с настройками (использовал в Ubuntu 22.04):
Перед установкой необходимо установить пакет network-manager-l2tp-gnome
. Делается это через консоль:
> sudo apt-get install network-manager-l2tp-gnome
Также можно подключиться к телефону, ничего дополнительно устанавливать не нужно. Настройка на iPhone выглядит так:
Готово! Подключайтесь и проверьте IP-адрес, например, на Whoer по ссылке. Теперь для всего интернета вы физически находитесь в регионе, где создали свой VPN-сервер, а IP – это IP-сервера. Все не так страшно, не долго и не дорого, как могло вам казаться:)
Рекомендации по безопасности
Если учитывать вопросы безопасности вашего сервера, то напоследок я рекомендую:
- использовать SSH-ключ вместо пароля;
- изменить SSH-port с 22 на любой другой;
- использовать сложный пароль и Shared-secret (желательно Random generated string).
Этот материал – не редакционный, это – личное мнение его автора. Редакция может не разделять это мнение.
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: