Установка своего VPN на VPS хостинге с нуля

Проект WireGuard развивается несколько лет и уже прошел стадию рецензирования криптографии, что позволяет говорить о его внедрении в ядро и публичном тестировании. После прохождения тестирования в ядре Linux предполагается портировать наработки в другие ОС. Код распространяется под лицензией GNU GPLv2.

Настраиваем само подключение по протоколу L2TP

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

Далее все заполняем согласно вашим данным, все данные по подключению вам должен предоставить администратор.

Настраиваем само подключение по протоколу L2TP

Шлюз — ip вашего сервера, соответственно далее логин и пароль.

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

Не забудьте указать PSK ключ для подключения, ниже показано где его ввести

Настраиваем само подключение по протоколу L2TP

После ввода всех данных, сохраняете настроенное соединение и можете выбрать его по клику левой кнопки мыши в трее

На этом, настройка VPN подключения закончена.

Если есть, что добавить или поделится опытом пишите в комментариях.

Настраиваем само подключение по протоколу L2TP

Всем Удачи!

Подписаться Уведомить о новых последующих комментариях новых ответах на мои комментарии {} [+] Имя* Email* Веб-сайт {} [+] Имя* Email* Веб-сайт Комментарий Межтекстовые Отзывы Посмотреть все комментарии

Настраиваем само подключение по протоколу L2TP

NSX LVPN

L2VPN понадобится в том случае, когда нужно объединить несколько сетей, расположенных на разных площадках (например, в разных инфраструктурах vCloud Director) в один broadcast-домен.

Это может быть полезно, например, при миграции виртуальной машины: при переезде на другую географическую площадку виртуальная машина сохранит настройки IP-адресации и не потеряет связность с другими машинами, находящимися в одном с ней L2-домене. Эту функцию можно использовать в случае, когда есть 2 виртуальные машины, находящиеся в двух разных vDC, расположенных в разных регионах.

Первая ВМ имеет адрес ⁄24, вторая ВМ — ⁄24.

Примечание: связываемые в один broadcast-домен площадки должны быть построены на платформе NSX (возможно использование NSX Edge standalone, подробнее читайте в официальной документации, для просмотра требуется регистрация на сайте).

В панели vCloud Director перейдите в необходимый vDC:

  1. На вкладке Networks добавьте две новые сети.
  2. Выберите тип сети Create a routed network by connecting to an edge gateway и привяжите каждую сеть к NSX, установив чекбокс Create as subinterface.
  3. Должно получиться две сети с одинаковыми настройками gateway и одинаковой маской.
  4. Перейдите в настройки первого NSX. Он будет выступать в качестве сервера.
  5. Перейдите на вкладку Edge, нажмите кнопку Configure services.
  6. В открывшемся окне перейдите на вкладку VPNL2VPN.
  7. Включите L2VPN, выберите режим работы Server, в настройках Server Global укажите внешний IP-адрес NSX, на котором будет слушаться порт для туннеля. По умолчанию сокет откроется на 443 порту, но его можно изменить.
  8. Выберите настройки шифрования для будущего туннеля.
  9. Перейдите во вкладку Server Sites и добавьте пир, нажав +.
  10. Активируйте пир, задайте его название и описание, при необходимости задайте имя пользователя и пароль. Эти данные понадобятся при настройке клиентского сайта.
  11. В Egress Optimization Gateway Address задайте адрес шлюза. Это нужно для того, чтобы не происходил конфликт IP-адресов, так как шлюз у созданных сетей имеет один и тот же адрес.
  12. Нажмите кнопку Select sub-interfaces.
  13. Выберите нужный сабинтерфейс и сохраните настройки.
  14. В настройках появится только что созданный клиентский сайт.

Настройка серверной части завершена.

Для настройки NSX со стороны клиента:

  1. Перейдите на NSX второй ВМ.
  2. Перейдите на вкладку Edge, нажмите кнопку Configure services.
  3. В открывшемся окне перейдите на вкладку VPNL2VPN.
  4. Активируйте L2VPN, установите L2VPN mode в клиентский режим работы.
  5. На вкладке Client Global задайте адрес и порт NSX первой ВМ, который был указан ранее как Listening IP и Port на серверной стороне.
  6. Необходимо выставить одинаковые настройки шифрования, чтобы они согласовались при поднятии туннеля.
  7. Выберите сабинтерфейс, через который будет строиться туннель для L2VPN.
  8. В Egress Optimization Gateway Address задайте адрес шлюза. Задайте имя пользователя и пароль.
  9. Выберите сабинтерфейс и сохраните настройки.

Настройка клиентской части завершена.

Для просмотра работы туннеля перейдите на вкладку StatisticsL2VPN на любом NSX.

Пускаем трафик через прокси вообще без настроек

Можно использовать наш VPS/VDS сервер как Proxy Server. Для этого делаем всё как раньше до момента нажатия кнопки «Соединиться» в программе Putty. Не нужно открывать консоль и запускать скрипт. Идём на вкладку «SSH->Tunnel», прописываем Source Port: 3128

Пускаем трафик через прокси вообще без настроек

Упс, статью дописывал позже, тут у меня Putty на английском, но суть та же.

Если пишет ошибку «You need to specify a destination address in the form :port», то переключите на «Dynamic» вместо «Local».

Пускаем трафик через прокси вообще без настроек

На вкладке «Connection» в поле «Seconds between keepalives…» ставим 100 секунд, это надо чтобы коннект не разрывался из-за простоя. Теперь подключаемся — нажимаем «Open», вводим логин/пароль. Далее, идём в настройки сети в браузере и прописываем там прокси-сервер. В хроме это «Настройки->Поиск настроек->пишем ‘прокси’->Настройки прокси-сервера». Делаем всё как на скриншоте:

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

Пускаем трафик через прокси вообще без настроек

Как пускать через прокси только отдельные сайты

Устанавливаем расширение для Google Chrome или Mozilla Firefox, называется FoxyProxy. В настройках надо добавить наш прокси-сервер:

Пускаем трафик через прокси вообще без настроек

На вкладке «URL Patterns» добавляем маски сайтов, которые должны открываться через наш сервер. Маска сайта это его имя со звёздочками по бокам.

Читайте также:  Способы удаления неудаляемых приложений в Андроид

Всё, теперь добавленный сайт будет ходить через proxy, а все остальные напрямую. Если кликнуть по значку расширения, то можно выбрать пускать все сайты через него или вообще никакие.

Пускаем трафик через прокси вообще без настроек

Ярлык для автоматическое подключения

Подключать Putty к прокси можно одним кликом. Для этого нужно перед подключением в разделе «Connection->Data» прописать логин сервера, тот, что обычно root

Пускаем трафик через прокси вообще без настроек

и сохранить сессию со всеми настройками:

Теперь нужно создать ярлык на рабочем столе, в котором указать такие параметры:

Пускаем трафик через прокси вообще без настроек

«C:\Program Files\PuTTY\» -load myvpn -pw пароль_к_серверу

где myvpn — это имя сохранённой сессии. Всё, осталась одна деталь — убрать окно Putty из панели задач в системный трей. Нужно скачать модификацию утилиты отсюда и заменить exe-файл. Теперь в настройках на вкладке Behaviour появится соответствующая галочка, но этого можно и не делать.

Успехов!

WireGuard

WireGuard — результат исследований автора проекта Джейсона Доненфилда (Jason A. Donenfeld), главы компании Edge Security. Продукт со встроенной криптографией, одновременно простой в использовании и в реализации (чуть более 4000 строк кода), что существенно выделяет его среди остальных решений. Например, его код легче проанализировать, чем все, что написано в рамках *Swan/IPsec или OpenVPN. Самый молодой проект обзора. О нем заговорили в середине лета 2016-го после публикации анонса в списке рассылки разработчиков ядра Linux, где был представлен патч к ядру. Хотя сам проект развивается уже несколько лет и прошел стадию рецензирования криптографии, то есть его можно внедрять в основное ядро.

VPN-соединение инициализируется (handshake) путем обмена открытыми ключами и напоминает подход, применяемый в SSH. Все остальное прозрачно обрабатывается WireGuard, нет необходимости беспокоиться о ключах, роутинге, контроле состояния и прочем, это все забота WireGuard. Возможно использование симметричного шифрования, но это потребует чуть больших настроек. Маршрутизация производится по ключам шифрования, для этого к каждому сетевому интерфейсу привязывается закрытый ключ. Для обновления ключей handshake происходит через определенное время или по сигналу, что ключи устарели. Для согласования ключей и соединения вместо собственного демона в пространстве пользователя используется механизм Noise_IK из Noise Protocol Framework, похожий на поддержание authorized_keys в SSH, без усложнений в виде поддержки x509 и ASN.1.

Читайте также:  SSD Fresh — настройка Windows под твердотельный накопитель

Для шифрования применяются потоковый шифр ChaCha20 и алгоритм аутентификации сообщений (MAC) Poly1305. Для генерации совместного секретного ключа — протокол Диффи — Хеллмана на эллиптических кривых в реализации Curve25519, предложенной Дэниелом Бернштейном. Для хеширования используются BLAKE2s (RFC 7693) и SipHash-2-4. Избежать replay-атаки позволяет метка времени TAI64N, пакеты с меньшей меткой времени отбрасываются.

Передача данных осуществляется на третьем уровне ISO через инкапсуляцию в пакеты UDP. Поддерживаются IPv4 и IPv6, инкапсуляция v4 в v6 и v6 в v4. Может работать за NAT и файрволом. Поддерживается смена IP-адреса VPN-сервера без разрыва соединения с автоматической перенастройкой клиента.

WireGuard

После установки в системе появляется новый сетевой интерфейс wg0, который может быть настроен штатными инструментами ipconfig/ip-address и route/ip-route. Специальная утилита wg позволяет установить секретный ключ устройства и указать список ассоциаций для клиентов (его публичный ключ, разрешенный IP).

Для установки понадобится дистрибутив с ядром Linux >4.1. Пакет можно найти в репозиториях основных дистрибутивов Linux. Для Ubuntu есть PPA.

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

Получаем публичный ключ от клиента и создаем соединение.

Возможно использование PresharedKey (генерируется командой wg genpsk), который добавляет еще один уровень симметричного шифрования к имеющемуся шифрованию с открытым ключом. Для пира можно указать PersistentKeepalive, позволяющий поддерживать соединение из-за NAT и файрвола. Поднимаем интерфейс:

Для удобства лучше заранее подготовить конфигурационный файл, содержащий секцию interface и секции peer. Формат можно увидеть, введя wg showconf.

Подходит как для небольших встроенных устройств вроде смартфонов, так и для магистральных маршрутизаторов. Тесты показали, что WireGuard имеет примерно в четыре раза лучшую пропускную способность и в 3,8 раза более отзывчив по сравнению с OpenVPN (256-bit AES c HMAC-SHA-2–256). Здесь сказывается не только реализация в виде модуля ядра, тогда как OpenVPN работает в userspace. Повышение производительности обусловлено отказом от использования CryptoAPI ядра, работающего достаточно медленно. Вместо него в WireGuard задействованы собственные реализации ChaCha20, Poly1305, BLAKE2s и Curve25519, которые позиционируются как быстрые и безопасные аналоги AES-256-CTR и HMAC, их программная реализация позволяет добиться фиксированного времени выполнения без аппаратной поддержки.

WireGuard

Также WireGuard благодаря меньшим задержкам чуть лучше выглядит в производительности по сравнению с IPsec (256-bit ChaCha20 + Poly1305 и AES-256-GCM-128), но вот настройки гораздо проще.

Пока WireGuard доступен только для Linux, после тестирования предполагается портировать в другие ОС. Код распространяется под лицензией GNU GPLv2.

Настройка WireGuard Смотрим конфигурацию WireGuard