Делаем собственный VPN за 30 минут: пошаговая инструкция для новичков

Гораздо лучше потратить немного времени и настроить собственный VPN-сервер, чем платить сторонним сервисам

Делаем собственный VPN за 30 минут: пошаговая инструкция для новичков

VPN не только позволяет обходить региональные ограничения, но и обеспечивает безопасное использование интернета в общественных местах и постоянный доступ к локальной сети. Бесплатные VPN-сервисы ненадёжны, платные слишком уж завышают ценник и тоже могут блокировать пользователей или быть недоступны. Остаётся лишь настроить личный сервер, который выйдет и дешевле, и безопаснее. Это не так сложно, как кажется на первый взгляд.

Этап №1. Аренда сервера (выбираем с оплатой криптовалютой)Этап №2. Настройка сервера и подключениеЭтап №3. Установка VPNЭтап №4. Конфигурация VPNПодключение к VPN

Что для этого потребуется: 4 этапа

Поднятие своего собственного VPN-сервера состоит из нескольких шагов. Это под силу даже неопытному пользователю, достаточно следовать инструкции в статье.

  • Нужен удалённый компьютер, на который будет устанавливаться специальное ПО. Проще всего арендовать его в одном из крупных и надёжных сервисов — далее в статье я расскажу о таких.
  • Надо подключиться к серверу по SSH-протоколу с помощью программы Termius и установить на него WireGuard — софт для настройки VPN-соединения.
  • После установки VPN надо его правильно сконфигурировать.
  • После настройки WireGuard останется лишь инсталлировать приложение на клиентское устройство и присоединиться к настроенному серверу.
  • Этап №1. Аренда сервера (выбираем с оплатой криптовалютой)

    Поднимать VPN будем на удалённом сервере. Существует огромное количество сервисов, предоставляющих VPS (Virtual Private Server) по адекватным ценам. Ниже представлены популярные поставщики услуг:

    • AWS: первые 12 месяцев бесплатно, затем 10 долларов в месяц, 15 ТБ трафика;
    • Hetzner: 3 евро в месяц, 20 ТБ трафика, требуется подтверждение личности по документу;
    • Vultr: 3,5 доллара в месяц (только при выборе VPS в США), 500 ГБ трафика;
    • Pulseheberg: 4 евро в месяц;
    • DigitalOcean: 5 долларов в месяц, 1 ТБ трафика.

    К сожалению, сейчас их невозможно оплатить российскими картами, поэтому в этой статье я буду использовать и рекомендовать сервис СrownСloud. Его прелесть в том, что оплатить сервер можно с помощью криптовалюты (только BTC), которая доступна к использованию даже пользователям из России.

    Самый дешёвый сервер можно арендовать за 2,5 доллара в месяц, правда, оплатить придётся на весь год — 30 долларов в сумме. За эту сумму вы получите 512 ГБ трафика ежемесячно. Оплата помесячно доступна для более дорогих решений — от 4 долларов в месяц за 1 ТБ трафика. Можно купить этот план для проверки, а затем сменить на более дешёвый, заплатив сразу за весь год.

    Делаем собственный VPN за 30 минут: пошаговая инструкция для новичков

    Для тех, кто уже знает, как настраивать WireGuard, я советую взять KVM-сервер, ибо установка на нём будет проще и быстрее. В этом же материале я покажу на примере OpenVZ VPS.

    На главной странице выбираем раздел Classic OpenVZ Plans.

    Делаем собственный VPN за 30 минут: пошаговая инструкция для новичков

    Выбираем подходящий план — достаточно и самого дешёвого, но, как я сказал ранее, его придётся оплатить сразу на год. Поэтому для примера я выбрал вариант за 4 доллара в месяц. Переходим к оплате, кликнув на расположение сервера справа — США или Германия.

    Делаем собственный VPN за 30 минут: пошаговая инструкция для новичков

    На этом этапе выберите операционную систему Ubuntu 20.04 x86_64 и перейдите к оплате, нажав кнопку Continue и затем Checkout.

    Делаем собственный VPN за 30 минут: пошаговая инструкция для новичков

    Далее придется заполнить регистрационную форму — можете ввести туда абсолютно любые данные. Главное, чтобы они выглядели достоверно. Только укажите свою почту, к которой имеете доступ, а также запомните пароль. В самом низу выберите способ оплаты Bit-pay (Bitcoin) и поставьте флаг около условий обслуживания. Нажмите Complete Order и перейдите к окну оплаты.

    Делаем собственный VPN за 30 минут: пошаговая инструкция для новичков

    Делаем собственный VPN за 30 минут: пошаговая инструкция для новичков

    Делаем собственный VPN за 30 минут: пошаговая инструкция для новичков

    Откроется окно сервиса BitPay. Если потребуется регистрация в этом сервисе — сделайте это, она занимает несколько минут и не требует ввода личных данных. Далее выберите подходящий кошелёк, на котором хранятся ваши цифровые активы. Я рекомендую использовать Electrum Wallet. Показывать пример буду также на нём, предполагая, что вы уже создали его и храните на нём средства.

    Когда появится сумма, необходимая к оплате, нажмите «Пополнить кошелёк». Откроется приложение кошелька и сразу после этого — окно транзакции с заполненными данными.

    Делаем собственный VPN за 30 минут: пошаговая инструкция для новичков

    Обязательно зайдите в «Инструменты» > «Настройки» и временно отключите пункт «Использовать возможность замены комиссии» или RBF (Replace-by-fee). Затем в поле «Комиссия» введите число, которое было указано на сайте (черная плашка внизу с надписью Required Fee Rate на изображении выше). Нажмите «Отправка», чтобы отправить транзакцию сразу. Возможно, потребуется ввести пароль от вашего кошелька. 

    Делаем собственный VPN за 30 минут: пошаговая инструкция для новичков

    Как только транзакция попадёт в сеть, сервис BitPay сообщит об успешной оплате. Вернитесь на CrownCloud.

    Делаем собственный VPN за 30 минут: пошаговая инструкция для новичков

    На открывшейся странице выберите вкладку Services > My services. Откроется список приобретённых серверов. Сразу после оплаты вы увидите статус Pending — это из-за того, что транзакция попала в сеть, но еще не подтвердилась. После получения первого подтверждения VPS станет активным. Этот процесс занимает не более 20 минут.

    Делаем собственный VPN за 30 минут: пошаговая инструкция для новичков

    Как только удалённая машина станет активна, кликните на неё — вы увидите её IP-адрес, по которому будете подключаться к ней в следующем пункте.

    Нажмите на вкладку Hello, <ваш юзернейм>, выберите Email History. Найдите сообщение с темой CrownCloud — New VPS Information и откройте его. Там вы увидите пароль от root-пользователя сервера и данные для панели управления VPS. Запомните их.

    Делаем собственный VPN за 30 минут: пошаговая инструкция для новичков

    Сразу же перейдите в панель управления. Введите пароль и логин, которые получили выше, и выберите Manage под нужным сервером. Нажмите на панель Settings и кликните на кнопку Re-enable TUN/TAP. Подождите 2-3 минуты и переходите к следующему шагу настройки.

    Этап №2. Настройка сервера и подключение

    Для настройки VPS надо подключиться к нему по SSH-протоколу. Рекомендую использовать для этого программу Termius. Она удобная, простая в использовании и кроссплатформенная.

    Делаем собственный VPN за 30 минут: пошаговая инструкция для новичков

    Делаем собственный VPN за 30 минут: пошаговая инструкция для новичков

    Скачав её с официального сайта и установив, запускаем и нажимаем кнопку New host. В поле Address вводим IP-адрес выданного сервера — скопировали его ранее. В строке Username пишем root, в поле пароля вводим то, что сохранили ранее из электронного письма внутри сервиса CrownCloud. Сохраняем всё кнопкой Save. Теперь можно подключиться к серверу, дважды кликнув на созданный хост.

    Делаем собственный VPN за 30 минут: пошаговая инструкция для новичков


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

    apt update && apt upgrade -y

    Переходим к установке и настройке самого VPN-сервиса.

    Этап №3. Установка VPN

    На сегодняшний день существует несколько разных протоколов VPN:

    • PPTP — старый протокол, быстрый, но небезопасный, поэтому подойдёт только для просмотра контента, недоступного в некоторых регионах;
    • L2TP/IPSec — безопасен, прост в настройке, но скорость не самая высокая и может блокироваться файрволом;
    • SSTP — проприетарный протокол от Microsoft, который не поддерживается в GNU/Linux нативно;
    • IKEv2 — весьма быстр, стабилен и безопасен, но поддерживается не на всех устройствах;
    • SoftEther — свежий протокол, не поддерживается нативно в системах, но обеспечивает качественное шифрование с высокой скоростью;
    • OpenVPN — быстрый и очень безопасный, но непростой в конфигурации и требует установки специальных приложений;
    • WireGuard — активно развивающийся протокол, внедрена поддержка в ядро Linux, высокопроизводительный и надёжный, прост в развёртывании, хотя и требует установки дополнительных клиентских программ.

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

    Для KVM-серверов достаточно установить его командой sudo apt install wireguard -y. Но так как я рассматриваю OpenVZ-решение, то инструкция по установке будет другая. Настройка подключения (четвёртый пункт) будет одинакова для всех вариантов.

    Установим некоторые инструменты WireGuard:

    apt install wireguard-tools --no-install-recommends

    Так как мы используем OpenVZ-сервер, придётся использовать версию WireGuard, написанную на языке Go и не интегрированную в ядро ОС. Это не отразится на опыте использования, но придётся проделать чуть больше действий и скомпилировать утилиту самостоятельно.

    Для начала установим среду для выполнения языка Go. По очереди выполните следующие команды:

    cd /tmp
    wget golang.google.cn/dl/go1.18.linux-amd64.tar.gz
    tar zvxf go1.18.linux-amd64.tar.gz
    sudo mv go /opt/go1.18
    sudo ln -s /opt/go1.18/bin/go /usr/local/bin/go

    Загрузим и скомпилируем wireguard-go. Последняя версия, которая без проблем запустилась у меня — 0.0.20201118. Последовательно введите команды:

    cd /usr/local/src
    wget git.zx2c4.com/wireguard-go/snapshot/wireguard-go-0.0.20201118.tar.xz
    tar xvf wireguard-go-0.0.20201118.tar.xz
    cd wireguard-go-0.0.20201118 

    Скомпилируем и «установим»:

    make
    sudo cp wireguard-go /usr/local/bin

    Проверьте, установилось ли всё успешно, командой wireguard-go --version. Если появится сообщение с версией, можно переходить к следующему этапу.

    Откройте файл в редакторе текста:

    vi /lib/systemd/system/wg-quick@.service

    Нажмите клавишу i — внизу должна появиться надпись INSERT. Найдите строчку:

    Environment=WG_ENDPOINT_RESOLUTION_RETRIES=infinity

    Под этой строчкой вставьте другую сочетанием клавиш Ctrl+Shift+V:

    Environment=WG_I_PREFER_BUGGY_USERSPACE_TO_POLISHED_KMOD=1 

    Нажмите клавишу Esc, введите :wq и нажмите Enter.

    Если вы незнакомы с vi или просто предпочитаете более простой редактор текста, установите nano — он пригодится далее:

    apt install nano

    Этап №4. Конфигурация VPN

    Сгенерируем пару ключей для сервера. server_privatekey — это название файла с приватным ключом сервера, server_publickey — файл с публичным ключом сервера:

    wg genkey | tee server_privatekey | wg pubkey > server_publickey

    Для каждого клиентского устройства также создадим пару ключей. Это можно сделать и позже, но тогда придётся возвращаться к файлу конфигурации и редактировать его. 1 устройство — 1 выполнение команды ниже и, соответственно, 1 пара ключей. Не забывайте для каждого девайса менять названия файлов в команде. Во всех командах я выделил жирным то, что можно заменить. Например, для второго клиента могут быть client2_privatekey и client2_publickey. Опять же, название можно дать любое, главное, чтобы оно не повторялось и позволяло различить тип ключа и девайс. Я сгенерирую только для одного смартфона:

    wg genkey | tee client_privatekey | wg pubkey > client_publickey

    Выполним следующую команду для того, чтобы вывести сразу все сгенерированные ключи для сервера и клиента. Если у вас несколько клиентских устройств, то добавьте в конец команды названия всех созданных для них файлов и только потом выполните её. Например, если у вас 3 клиента, напишите cat server_privatekey server_publickey client1_privatekey client1_publickey client2_privatekey client2_publickey client3_privatekey client3_publickey.

    Делаем собственный VPN за 30 минут: пошаговая инструкция для новичков

    Сохраним полученное содержимое в отдельный текстовый файл allKeys.txt на основном компьютере. Каждые две строки — это пара ключей. Первый — приватный, второй — публичный. Соответственно, первая пара — это ключи сервера, другие пары ключей принадлежат клиентам:

    cat server_privatekey server_publickey client_privatekey client_publickey

    Создадим конфигурационный файл:

    nano /etc/wireguard/wg0.conf

    Вставим в него следующее содержимое, заменив  строкой из сохранённого текстового файла allKeys.txt со всеми ключами (самая первая строчка), а — строкой оттуда же, но для клиентского устройства (второй ключ в паре).

    Делаем собственный VPN за 30 минут: пошаговая инструкция для новичков


    Для каждого клиентского устройства надо добавить раздел Peer по подобному принципу, указав IP-адрес, отличающийся четвёртым числом от ранее введённых (например, для второго клиента я введу AllowedIPs = 10.0.0.3/32, для третьего — AllowedIPs = 10.0.0.4/32 и так далее), и добавив его публичный ключ:

    [Interface]
    Address = 10.0.0.1/24
    ListenPort = 51820
    PrivateKey = 
    PreUp = iptables --table nat --append POSTROUTING --jump MASQUERADE --out-interface venet0
    PreDown = iptables --table nat --delete POSTROUTING --jump MASQUERADE --out-interface venet0
    [Peer]
    PublicKey = 
    AllowedIPs = 10.0.0.2/32
    [Peer]
    PublicKey = 
    AllowedIPs = 10.0.0.3/32

    Сохраним файл комбинацией клавиш Ctrl+X, нажмем Y и подтвердим клавишей Enter. Запустим сервис и сразу добавим его в автозапуск, чтобы VPN автоматически стартовал после перезагрузки сервера:

    systemctl enable wg-quick@wg0
    systemctl start wg-quick@wg0

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

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

    Подключение настроенного VPN требует установки специального приложения WireGuard на клиентское устройство. Оно доступно на все популярные десктопные и мобильные девайсы.

    Делаем собственный VPN за 30 минут: пошаговая инструкция для новичков

    Android/iOS

    Если нужно подключить смартфон, то наиболее удобным вариантом будет создание файла конфигурации прямо на VPS с последующей генерацией и сканированием QR-кода. Для этого введём через всё тот же Termius команду:

    sudo apt install qrencode -y

    Создадим файл конфигурации. Каждому новому устройству — новый файл конфигурации с уникальным именем (к примеру, client2.conf):

    sudo nano client.conf

    Вставим в файл содержимое, заменив на приватный ключ клиента (client_privatekey), сгенерированный ранее и сохранённый в отдельный файл allKeys.txt на основной машине. Вместо подставим публичный ключ сервера (server_publickey) из того же файла. В Endpoint заменим на IP-адрес сервера (использовали его для подключения через Termius, нашли на шаге 11). В строке DNS можно указать желаемые DNS-сервера. Я выбрал DNS от Google.

    [Interface]
    Address = 10.0.0.2/32
    PrivateKey =
    DNS = 8.8.8.8, 8.8.4.4
    [Peer]
    PublicKey =
    AllowedIPs = 0.0.0.0/0, ::/0
    Endpoint = :51820

    Сохраним файл комбинацией клавиш Ctrl+X, нажмем Y и подтвердим клавишей Enter. Сгенерируем QR-код: 

    qrencode -t ansiutf8 < client.conf

    Делаем собственный VPN за 30 минут: пошаговая инструкция для новичков

    Делаем собственный VPN за 30 минут: пошаговая инструкция для новичков

    QR-код отсканируем в мобильном приложении, дадим имя туннелю и подключим VPN. Если всё прошло успешно, на любом сайте для проверки IP (например, ipleak.net) будет отображаться адрес удалённого сервера.

    Делаем собственный VPN за 30 минут: пошаговая инструкция для новичков

    Делаем собственный VPN за 30 минут: пошаговая инструкция для новичков

    Делаем собственный VPN за 30 минут: пошаговая инструкция для новичков

    Windows/macOS

    Что касается компьютеров на Windows и macOS, файл конфигурации с расширением .conf лучше создать в любом текстовом редакторе на самом клиенте. Его содержимое будет аналогично тому, что предлагается выше для мобильных устройств. Только пункт с созданием QR-кода можно пропустить. Созданный файл импортируем в приложении WireGuard кнопкой Add Tunnel и активируем.

    GNU/Linux

    На компьютере с операционной системой GNU/Linux установим WireGuard таким же образом, каким установили его на сервер:

    sudo apt install wireguard -y

    Не забываем настроить пересылку трафика:

    sudo sed -i 's/#net.ipv4.ip_forward=1/net.ipv4.ip_forward=1/g' /etc/sysctl.conf

    И сразу же обновим конфигурацию:

    sudo sysctl -p

    На машине с Ubuntu 20.04 LTS мне пришлось установить дополнительный пакет, так как без него возникала ошибка:

    sudo apt install openresolv

    Создадим всё тот же файл конфигурации:

    sudo nano /etc/wireguard/wg0.conf

    Только в этот раз вставим в него содержимое, которое я указал чуть выше для мобильных устройств. Сохраним файл комбинацией клавиш Ctrl+X, нажмем Y и подтвердим клавишей Enter. Активируем VPN:

    sudo wg-quick up wg0

    Отключить VPN так же просто:

    sudo wg-quick down wg0

    Делаем собственный VPN за 30 минут: пошаговая инструкция для новичков

    Для экономии времени я советую создать псевдонимы (aliases). Они позволят вместо таких комплексных команд вводить простые: wgon для подключения к VPN и wgoff для отключения. Откроем файл, который определяет конфигурацию терминала при запуске:

    nano ~/.bashrc

    Добавим в самый конец несколько строк:

    # Aliases for WireGuard
    alias wgon='sudo wg-quick up wg0'
    alias wgoff='sudo wg-quick down wg0'

    Сохраним файл комбинацией клавиш Ctrl+X, нажмем Y и подтвердим клавишей Enter.




    Источник trashbox.ru
    312

    İlgili statyalar

    Делаем полностью бесплатный VPN за 30 минут: пошаговая инструкция

    Гораздо лучше потратить немного времени и настроить собственный VPN-сервер, чем платить сторонним сервисам VPN не только позволяет обходить региональные ограничения, но и обеспечивает безопасное использование интернета в общественных местах и постоянный доступ к локальной сети. Бесплатные VPN-сервисы ненадёжны, платные слишком уж завышают ценник. Остаётся лишь настроить личный сервер, который выйдет и дешевле, и безопаснее. Это не так сложно, как кажется на первый взгляд. Этап №1. Аренда сервера (выбираем бесплатный)Этап №2. Настройка сервера и подключениеЭтап №3. Конфигурация VPNПодключение к VPN Что для этого потребуется: 3 этапа Поднятие своего собственного VPN-сервера состоит из нескольких шагов. Это под силу даже неопытному пользователю, достаточно следовать…

    Личный сервер дома: собираем полноценный NAS на базе Raspberry Pi

    Создать сетевое хранилище для дома можно самому. Всё, что для этого нужно — Raspberry Pi, накопитель и немного свободного времени Домашний NAS — пожалуй, лучшее решение для хранения ценных данных и обмена ими в локальной сети. Грубо говоря, это подключенный к Интернету компьютер с несколькими дисками и специальным программным обеспечением. Проблема лишь в том, что готовые устройства, предназначенные специально для этого, стоят недёшево — цены на них начинаются от 10 тысяч рублей, и это без учёта самих накопителей. Конечно, можно собрать обычный ПК из б/у-компонентов — это даже выйдет дешевле, но он будет слишком шумным и неэнергоэффективным для сервера, работающего…

    WireGuard — это VPN-протокол будущего, который появится в ядре Android 12. Чем он лучше текущих

    Среди всех VPN-протоколов WireGuard занимает отдельное место: он сочетает простоту использования, скорость и безопасность VPN позволяет не только получать доступ к недоступным ресурсам, но и обеспечивать зашифрованный канал связи. Во втором случае особенно важно использовать наиболее безопасную и быструю технологию. Самый оптимальный вариант — WireGuard. В этой статье я расскажу, чем он лучше других протоколов и почему его появление в ядре Android 12 — важное событие. Что такое WireGuard WireGuard — это протокол VPN, появившийся на свет несколько лет назад. В 2020 году технология была внедрена в ядро Linux с номером 5.6. Раз она уже поддерживается в ядре Linux, то скоро…

    Новые iOS убивают старые устройства. Как откатиться до стабильных версий

    Возвращаем к жизни старые девайсы от Apple. SHSH Blobs (цифровая подпись для старых прошивок) не требуется Последние версии iOS убили старые девайсы. Устройства стали медленными и их практически невозможно использовать. Если хочется иметь в коллекции аппараты в таком состоянии, в каком они были в актуальные времена, стоит их откатить на предыдущие версии iOS. Apple не позволяет сделать это просто так, поэтому я решил написать свежий гайд, по которому сам смог понизить на iPod touch 5 версию iOS с 9.3.5 до 8.4.1. Что нужно для отката, насколько сложно и как долгоДжейлбрейкПроцесс отката Какие устройства получится откатить и на какую версию Сделать…

    Российские сайты перестанут открываться, если не установить сертификат: как это сделать

    Установить российские сертификаты нужно один раз (на каждое устройство), но надолго. Делается это легко и быстро Современные интернет построен так, что у каждого сайта, работающего с данными пользователей, должен быть TLS-сертификат — цифровая подпись сайта, подтверждающая его подлинность. Если этот сертификат отозван, ни один браузер не пустит пользователя на сайт — это сделано из соображений безопасности. В конце сентября Сбер перевёл свой основной сайт на российский сертификат, выпущенный Национальным удостоверяющим центром Минцифры. В будущем на такие перейдут все сервисы Сбера — велика вероятность, что так же поступят и другие системообразующие организации. Чтобы они у вас открывались, необходимо установить российские сертификаты…