Как сделать свой vpn сервер на vps

Обновлено: 02.07.2024

VPN или Virtual Private Network — виртуальная частная сеть. Это обобщённое название технологий, позволяющих обеспечить одно или несколько сетевых соединений (логическую сеть) поверх другой сети (например, Интернет).

Проксирование/туннелирование трафика на тарифах с виртуализацией OpenVZ не разрешается. Используйте KVM серверы!

Создают VPN для решения разных задач:

  • Объединить в общую сеть нескольких географически удаленных офисов компании, имеющих доступ в Интернет
  • Защитить соединение пользователя, работающего из дома, с офисной сетью
  • Отделить сеть, доступную непривилегированным пользователям, от основной сети компании
  • Защитить передаваемые по сети данные с помощью шифрования
  • Доступ в интернет

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

Технических реализаций VPN много. Рассмотрим два самых доступных для настройки варианта: OpenVPN и PPTP .

OpenVPN

Установить OpenVPN можно автоматически из рецепта на любой сервер с виртуализацией KVM.

OpenVPN — распространяемая по лицензии GNU GPL реализация VPN . Для шифрования использует библиотеку OpenSSL и может использовать все доступные в ней алгоритмы шифрования. Для установки соединения может использовать TCP , либо UDP -протокол. Реализует одновременно как клиентское, так и серверное приложение. Может использоваться как для организации соединений точка-точка, так и для варианта сервер-клиенты. Известны также и варианты организации защиты Wi-Fi сети с помощью OpenVPN .

На VDS может использоваться для организации доступа в Интернет. Например, если провайдер не предоставляет клиентам внешнего маршрутизируемого адреса, связка OpenVPN + VDS-KVM является вполне реальным способом этот внешний маршрутизируемый адрес получить.

    при заказе сервера или переустановке операционной системы

PPTP — туннельный протокол типа точка-точка. Инкапсулирует PPP -кадры в IP -пакеты для передачи их по сети. PPP -сессия устанавливается с помощью протокола GRE .

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

Логотип wireguard и docker

Установим и настроим Wireguard VPN на собственном vps сервере легко и просто с помощью docker , а также настроим подключение с ПК и смартфона.

Почему Wireguard и Docker

Wireguard современный, кроссплатформенный, безопасный, высокопроизводительный и простой в настройке сетевой туннель, который был принят в основную ветку linux с версии 5.6. На текущий момент это самый быстрый и привлекательный свободный VPN. Раньше я использовал OpenVPN , и в целом нареканий к нему нет. Но он проигрывает в скорости. Может быть он конечно более гибкий и поддерживает больше вариантов шифрования. Оба инструмента хороши, и подходят хорошо под свой пласт задач. В моем случае, для домашнего VPN, скорость соединения является решающим фактором. Приятным бонусом также является моментальная скорость подключения, в отличие от OpenVPN , где подключение обычно занимает как минимум несколько секунд.

Docker конечно же использовать не обязательно. Но в нашем случае это упрощает процесс установки, т.к. мы будем использовать уже готовый образ linuxserver/docker-wireguard, развертывание которого еще проще и быстрее, чем ручная настройка.

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

Если вы не знаете что такое docker , как он работает и почему он не является виртуальной машиной, то советую самостоятельно ознакомиться с темой. Данная статья не освещает базовую теорию docker . Но при пошаговом выполнении инструкций данные знания не потребуются.

Критерии выбора VPS сервера

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

Требования:

  • Размещение за пределами РФ
  • 1 cpu
  • не менее чем 512 Mb RAM
  • ширина канала 100 - 1000 Mbit/sec
  • виртуализация KVM
  • Linux дистрибутив на борту

Я решил, что приобрету себе отдельный сервер только под VPN, чтобы отдельная машина занималась одной задачей, не распыляясь, и делала это хорошо. Поэтому одного ядра и небольшой запас оперативной памяти в 512 Mb будет достаточно. Размещение в Германии мне подходит, т.к. я нахожусь в Европейской части России (чем дальше страна тем больше пинг), а также свободы в интернете там приемлемые. Ширину канала нужно выбирать исходя из скорости, которую предоставляет Ваш интернет провайдер (100/1000 Mbit/sec). Виртуализацию лучше взять KVM , что гарантирует изолированность среды и гарантию ресурсов.

OpenVz не стоит брать еще по той причине, что там используется общее ядро хостовой машины на все инстансы. К тому же ядро зачастую не очень не свежее, из-за чего могут быть проблемы с установкой docker .

Мой выбор хостинг провайдера пал на RoboVPS, где на момент написания статьи стоимость виртуального сервера 1cpu, 512 Mb RAM, 5 Gb SSD, 100 Mbit/sec составляет скромных 149 ₽/месяц (тариф R7, раздел VPS). Вот реферальная ссылка.

Настройка сервера

Не столь важно какой linux дистрибутив будет установлен на сервере, первично на него нам необходимо установить только Docker . Мой выбор пал на Ubuntu 20.04 . Я буду производить все действия из под пользователя root .

Подключение по ssh

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

Если вдруг вы работаете из под операционной системы Windows , то подключиться к серверу Вам может помочь утилита Putty .

Обновление системы

Сначала необходимо обновить кеш репозиториев и систему.

Установка Docker

После чего установим docker. Можно последовать инструкциям по установке из документации, которые в случае с ubuntu говорят установить в систему репозиторий докера. Но в стандартных репозиториях ubuntu также можно найти не самую свежую, но подходящую версию. Ее и установим

Подготовка конфигов

Создадим, например в домашнем каталоге, директорию ~/wireguard , где будем хранить конфигурационные файлы, и сразу внутри нее директорию ~/wireguard/config , которую будем монтировать внутрь контейнера

Далее создадим файл ~/wireguard/docker-compose.yml , в который скопируем содержимое из документации используемого docker образа

Внесем в него некоторые изменения:

Переменной окружения PEERS нужно присвоить достаточное количество клиентов, которыми вы планируете пользоваться VPN. К примеру, если мы планируем подключаться с ноутбука, 2-х смартфонов и роутера (4 устройства), то установим PEERS=4

Монтируемый каталог /path/to/appdata/config из секции volume необходимо заменить на ранее созданную директорию ~/wireguard/config

После чего наша конфигурация готова. Создадим и запустим контейнер

Дождемся пока скачается образ и запустится контейнер, после проверим, что он запущен командой docker ps . При успехе должны увидеть в выводе что - то вроде

Если все так, то на этом настройка сервера закончена, и можно уже начать настройку клиентов.

Настройка смартфонов

Проще всего наверное проверить подключение со смартфона. Ведь для этого понадобится лишь поставить клиент в один клик из магазина приложений

и отсканировать qr код .

Чтобы вывести на экран qr код добавления туннеля, на сервере исполняем команду:

Где 1 - порядковый номер PEERS , количество которых мы ранее задали в docker-compose.yml .

qr код для подключения wireguard

Рекомендуется каждый клиент подключать под отдельным peer.

Далее в мобильном приложении необходимо:

  • нажать кнопку добавления нового туннеля
  • выбрать пункт “сканировать qr код”
  • навести на заранее выведенный на экран qr код
  • придумать произвольное имя для подключения (например peer2 )

На этом настройка закончена. Подключение с введенным именем появится в списке. Начать пользоваться можно переключив переключатель в активное положение.

Настроенное подключение в мобильном приложении wireguard

Скриншот с сайта 2ip.ru

Десктоп

Конфиги подключения

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

На сервере выведем содержимое монтируемой внутрь docker контейнера директории ~/wireguard/config

Скриншот вывода консоли, команда ls -la ~/wireguard/config

В этой директории наблюдаем файлы и директории жизнедеятельности контейнера. Нас интересуют директории peer1 , peer2 , peerN , где N - номер пира, как вы уже поняли.

Внутри каждой директории под каждого пира лежат заранее сгенерированные при старте контейнера файлы, а именно:

  • приватный и публичный ключ ( privatekey-peer1 , publickey-peer1 )
  • peer1.jpg - изображение с qr кодом подключения
  • peer1.conf - целевой конфигурационный файл, который требуется на клиенте

Скриншот вывода консоли, команда ls -la ~/wireguard/config/peer1

GNU/Linux

Чтобы установить wireguard клиент в свой linux дистрибутив, необходимо установить пакет wireguard-tools из репозиториев:

Установка клиента

Arch linux
Debian/Ubuntu
Fedora

Инструкции по другим дистрибутивам можно найти на странице установки на официальном сайте.

Конфиг

После установки нам необходимо на клиентской машине создать конфигурационный файл подключения /etc/wireguard/wg0.conf с содержимым файла ~/wireguard/config/peer1/peer1.conf с сервера.

Для этого можно например вывести содержимое файла peer1.conf в консоль командой cat ~/wireguard/config/peer1/peer1.conf , и скопипастить содержимое в целевой файл на клиенте.

Но вместо этого можно скачать файл при помощи утилиты scp с сервера прямо в целевой файл следующей единственной командой:

sudo при запуске потребуется для того, чтобы записать содержимое в файл, находящийся вне домашней директории вашего пользователя ОС ( /etc ).

первым параметром после указания имени утилиты scp указывается строка подключения к серверу ssh. Затем двоеточие, после которого путь к скачиваемому файлу на сервере.

Вторым параметром указывается путь к файлу, который будет создан на локальной машине.

Запуск

Все готово, осталось лишь запустить клиент следующей командой:

Проверим, что все работает:

Если в выводе ip адрес вашего сервера, то все получилось!

Остановка клиента

Windows, macOS

Под данные системы с официального сайта скачивается классический инсталляционный пакет, установка которого ничем не отличается от несложной установки любой программы (прожать кнопку далее несколько раз).

Добавление туннеля производится путем импортирования файла конфига туннеля через пользовательский интерфейс программы.

Скриншот UI wireguard из операционной системы Windows

Удаление wireguard с сервера

Удаление с сервера настроенного решения можно произвести в несколько шагов:

Остановка контейнера

Удаление контейнера

Удаление образа

Удаление директории с конфигами

Удалим директорию ~/wireguard с файлом docker-compose.yml и монтируемой директорией ~/wireguard/config , в которой локализованы все файлы жизнедеятельности контейнера

Заключение

Мы рассмотрели один из простых и быстрых способов поднять свой собственный VPN сервер на основе замечательной технологии wireguard , с помощью docker . Безусловно, одну и ту же задачу в linux можно решить множеством способов. Изучайте linux, его экосистему. Его возможности безграничны.

Эта публикация лицензируется в соответствии с Attribution-NonCommercial 4.0 International лицензией.

Запускаем собственный VPN-сервер на SSD VDS за пару минут


Мы стараемся сделать использование наших услуг проще и доступнее — ведь SSD VDS заказывают не только суровые UNIX-администраторы, управляющие своими серверами через черные прямоугольники терминалов 🙂 Один из вариантов для сохранения времени и сил наших пользователей — это предоставление готовых, уже настроенных под определенну задачу SSD VDS. Попробуем рассказать, как можно буквально за пару минут получить готовую SSD VDS, подготовленную для использования в качестве личного VPN-сервера.



Таких вариантов сейчас два — OpenVPN AS и IPSec VPN. Первый вариант (мы писали о нем ранее в нашем блоге) требует установки клиентского программного обеспечения, оно доступно для Windows, Mac, Android, IOS. Среди преимуществ OpenVPN можно отметить обычно более стабильную работу через различные варианты публичных сетей (в кафе, торговых центрах).

Второй же вариант, IPSec (L2TP) VPN — более стандартный, так как все необходимое для установки подключения уже есть во всех операционных системах, как на смартфонах, так и на обычных компьютерах. Выберем именно этот тип VPN, закажем и оплатим виртуальный сервер.

Через несколько минут на электронную почту, указанную при регистрации, поступит письмо с параметрами доступа:



На этом настройка закончена, можно подключаться и пользоваться своим собственным VPN. Сделаем небольшой тест с нашего iPad, который подключен к обычному городскому Интернет-провайдеру, в качестве роутера — TP-Link Archer C7. Вот проверка скорости с помощью приложения Speedtest без VPN:


А ниже — проверка скорости с использованием VPN. Фактически — те же цифры, причем один из параметров — лучше, чем при прямом подключении:


Внимательный читатель заметит, что значение ping достаточно высоко. Да, это так и это означает, что наш тест сделан в совершенно реальной обстановке — сам iPad находится в ~2000км от VPN-сервера, а расстояние между VPN-сервером и тестовым узлом — около 600км. Прекрасная скорость — а значит, и комфортная работа!

Хотите начать использовать собственный VPN прямо сейчас?

Lorem ipsum dolor

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

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

Однако если вы планируете использовать VPN-сервер многократно или даже постоянно, то зачем платить кому-то деньги, если поднять свой собственный VPN-сервер можно достаточно быстро, при этом он будет дешевле и безопаснее ?

Как поднять свой VPN-сервер

  • арендовать удаленный компьютер, куда нужно будет установить специализированное программное обеспечение;

  • подсоединиться к серверу по SSH при помощи специального ПО, а также настроить на сервере другое ПО, необходимое для создания VPN;

  • установить специальное приложение на свое устройство и начать пользоваться своим VPN-сервером.

Создание VPN-сервера: арендуем удаленный компьютер

Как поднять свой VPN-сервер: настройки и подключение

Как создать VPN-сервер: конфигурация

Как подключиться к своему VPN-серверу

Заключение

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

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Для этих целей, необходимо сделать несколько, не очень сложных шагов, описанных ниже:

Шаг №1. Аренда сервера.
Первым делом нужно перейти на сайт DigitalOcean и зарегистрироваться. Ссылка реферальная, после регистрации и оплаты аккаунта в 5$ получите на свой счет еще 10$, и мне и вам приятно. Итого на аккаунте будет 15$.

digitalocean_1

digitalocean_2


Далее откроется страница, на которой нужно указать данные своей банковской карты. Без этого система не будет работать и не даст возможности воспользоваться бонусными 10 долларами. При этом на вашей карте может быть заблокирована сумма в несколько рублей, которая затем будет возвращена. Данные можно указать свои, но лучше заплатить через PayPal.

digitalocean_3


Что делать, если банковской карты нет? Заведите себе Киви-кошелек, он автоматически дает виртуальную карту, баланс которой равен балансу кошелька. Пополнять кошелек можно почти везде.


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

Шаг №2. Настройка VPN.
Не пугайтесь, процесс настройки своего собственного VPN прост, как дважды-два!
В видео-уроке выше мы подключились к нашему серверу с помощью Putty. Теперь продолжим.
Копируем и вставляем (нажатием правой кнопки мыши, как мы делали в видео-уроке) команду:

nano vpn.sh

echo "Выберите, что вы хотите сделать:"

echo "1) Настроить новый PoPToP VPN сервер И создать нового пользователя"

echo "2) Создать дополнительных пользователей (к уже существующему VPN)"

if test $x -eq 1 ; then

echo "Введите имя пользователя, которое нужно создать (н.п.. client1 or john):"

echo "Введите пароль для этого пользователя:"

ip = ` ifconfig eth0 | grep 'inet addr' | awk < 'print $2' >| sed s / . * : //`

echo "установка и настройка PoPToP"

apt-get install pptpd

echo "Создание конфигурации сервера"

cat > / etc / ppp / pptpd-options END

echo "option /etc/ppp/pptpd-options" > / etc / pptpd.conf

echo "logwtmp" >> / etc / pptpd.conf

echo "localip $ip " >> / etc / pptpd.conf

echo "remoteip 10.1.0.1-100" >> / etc / pptpd.conf

echo " $u * $p *" >> / etc / ppp / chap-secrets

echo "Переадресация IPv4 и добавление этого в автозагрузку"

cat >> / etc / sysctl.conf END

echo "Обновление IPtables Routing и добавление этого в автозагрузку"

iptables -t nat -A POSTROUTING -j SNAT --to $ip

iptables-save > / etc / iptables.conf

cat > / etc / network / if-pre-up.d / iptables END

iptables-restore / etc / iptables.conf

chmod +x / etc / network / if-pre-up.d / iptables

cat >> / etc / ppp / ip-up END

ifconfig ppp0 mtu 1400

echo "Перезапуск PoPToP"

/ etc / init.d / pptpd restart

echo "Настройка вашего собственного VPN завершена!"

echo "Ваш IP: $ip ? логин и пароль:"

elif test $x -eq 2 ; then

echo "Введите имя пользователя для создания (eg. client1 or john):"

echo "введите пароль для создаваемого пользователя:"

ip = ` ifconfig venet0: 0 | grep 'inet addr' | awk < 'print $2' >| sed s / . * : //`

echo " $u * $p *" >> / etc / ppp / chap-secrets

echo "Дополнительный пользователь создан!"

echo "IP сервера: $ip , данные для доступа:"

echo "Неправильный выбор, выход из программы. "

Нажимаем Ctrl+O, затем Enter.

Нажимаем Ctrl+X.

Копируем и вставляем команду:

sh vpn.sh

Вводим 1 и нажимаем Enter. Ждем. Согласно запросам системы, вводим желаемый логин и нажимаем Enter. Аналогично с паролем. На вопросы “[Y]/[N]” вводим Y и нажимаем Enter. После завершения настройки будут показаны наши логин, пароль и IP адрес сервера эту информацию неоходимо запомнить для дальнейшего подключения к серверу VPN.
Готово! VPN настроен!

digitalocean_settings_3

digitalocean_settings_4

digitalocean_settings_5

Как можно экономить деньги! Через личный кабинет DigitalOcean мы можем выключить наш VPS (droplet в терминологии DigitalOcean)

digitalocean_economy_4

Теперь удаляем сервер:

Все! Списание средств за использование ресурсов остановлено.

Восстановление работоспособности сервера VPN

Ждем около минуты.

Читайте также: