Существует необычный и полезный продукт - UDPspeeder, который способен улучшить качество связи VPN туннелей на каналах с большими задержками и потерями пакетов с помощью коррекции ошибок (Forward Error Correction).
Разработчики заявляют встроенную поддержку следующих VPN туннелей - OpenVPN, L2TP, ShadowVPN. Работает UDPspeeder следующим образом. Сначала организуете туннель с его помощью, а потом поверх пускаете тот же OpenVPN или что-то подобное.
В репозитории подробно описан принцип работы UDPspeeder. В основе лежит технология FEC (Forward Error Correction). С её помощью возможно обнаружить ошибки передачи данных и скорректировать их методом упреждения. Эффект реальный и очень заметный. В репозитории есть наглядный пример снижения количества потерянных пакетов без увеличения latency, что существенно увеличивает скорость передачи данных.
Сам я никогда UDPspeeder не использовал и даже не знал о нём, пока со мной не поделился информацией подписчик, за что ему большое спасибо. Продукт полезный и наверняка пригодится. Обязательно попробую, когда в очередной раз придётся настраивать VPN на мобильном интернете. Думаю именно в этой ситуации UDPspeeder проявит себя лучше всего.
Настраивается UDPspeeder максимально просто и быстро. Работает только под Linux, есть пакет для openwrt.
Все запросы к порту 3333 клиента будут переадресовываться на порт 7777 сервера. Есть отдельная инструкция по настройке связки UDPspeeder + OpenVPN.
Если вам нужна готовая реализация VPN туннеля на базе UDPspeeder для быстрого запуска, можете взять tinyfecVPN от этого же автора. Там в пару команд настраивается VPN Site-to-Site.
Исходники - https://github.com/wangyu-/UDPspeeder
#vpn #openvpn
Разработчики заявляют встроенную поддержку следующих VPN туннелей - OpenVPN, L2TP, ShadowVPN. Работает UDPspeeder следующим образом. Сначала организуете туннель с его помощью, а потом поверх пускаете тот же OpenVPN или что-то подобное.
В репозитории подробно описан принцип работы UDPspeeder. В основе лежит технология FEC (Forward Error Correction). С её помощью возможно обнаружить ошибки передачи данных и скорректировать их методом упреждения. Эффект реальный и очень заметный. В репозитории есть наглядный пример снижения количества потерянных пакетов без увеличения latency, что существенно увеличивает скорость передачи данных.
Сам я никогда UDPspeeder не использовал и даже не знал о нём, пока со мной не поделился информацией подписчик, за что ему большое спасибо. Продукт полезный и наверняка пригодится. Обязательно попробую, когда в очередной раз придётся настраивать VPN на мобильном интернете. Думаю именно в этой ситуации UDPspeeder проявит себя лучше всего.
Настраивается UDPspeeder максимально просто и быстро. Работает только под Linux, есть пакет для openwrt.
# Запускаем на сервере:
./speederv2 -s -l0.0.0.0:4096 -r 127.0.0.1:7777 -f20:10
# Запускаем на клиенте
./speederv2 -c -l0.0.0.0:3333 -r 44.55.66.77:4096 -f20:10
Все запросы к порту 3333 клиента будут переадресовываться на порт 7777 сервера. Есть отдельная инструкция по настройке связки UDPspeeder + OpenVPN.
Если вам нужна готовая реализация VPN туннеля на базе UDPspeeder для быстрого запуска, можете взять tinyfecVPN от этого же автора. Там в пару команд настраивается VPN Site-to-Site.
Исходники - https://github.com/wangyu-/UDPspeeder
#vpn #openvpn
Если вам нужно скрыть UDP трафик или организовать соединение там, где разрешено только TCP или ICMP, то может помочь Udp2raw-tunnel. Это open source решение от автора UDPspeeder, про который я рассказывал отдельно.
Udp2raw умеет маскировать UDP пакеты, добавляя фейковые ICMP/TCP заголовки. Фаерволы, не имеющие в своем арсенале анализаторов пакетов, будут считать их пакетами соответствующих протоколов с фейковыми заголовками.
При этом настроить и запустить в работу Udp2raw очень просто. Достаточно скачать бинарник, запустить его с некоторыми параметрами. И то же самое сделать со стороны клиента.
Подключение к локальному UDP порту 3333 на стороне клиента будет эквивалентно подключению к локальному порту 7777 на сервере. При этом через туннель пойдёт фейковый TCP трафик.
Зачем это может быть нужно? Например, в публичных сетях часто закрыт UDP трафик, открыт только TCP на 80 и 443 порту. С помощью Udp2raw можно обойти это ограничение. Правда я в этом случае использую OpenVPN на TCP порту. Но он достаточно легко определяется и блокируется при желании.
Если заблокирован и TCP и UDP, то поднимаем фейковый туннель через ICMP. Со стороны своего сервера настраиваем OpenVPN, через ICMP туннель подключаемся к своему OpenVPN и пользуемся полным доступом в сеть.
Исходники / Инструкция с OpenVPN
#vpn #firewall #security
Udp2raw умеет маскировать UDP пакеты, добавляя фейковые ICMP/TCP заголовки. Фаерволы, не имеющие в своем арсенале анализаторов пакетов, будут считать их пакетами соответствующих протоколов с фейковыми заголовками.
При этом настроить и запустить в работу Udp2raw очень просто. Достаточно скачать бинарник, запустить его с некоторыми параметрами. И то же самое сделать со стороны клиента.
# Запустить со стороны сервера:
./udp2raw_amd64 -s -l0.0.0.0:4096 \
-r 127.0.0.1:7777 -k "passwd" --raw-mode faketcp -a
# Запустить со стороны клиента:
./udp2raw_amd64 -c -l0.0.0.0:3333 \
-r44.55.66.77:4096 -k "passwd" --raw-mode faketcp -a
Подключение к локальному UDP порту 3333 на стороне клиента будет эквивалентно подключению к локальному порту 7777 на сервере. При этом через туннель пойдёт фейковый TCP трафик.
Зачем это может быть нужно? Например, в публичных сетях часто закрыт UDP трафик, открыт только TCP на 80 и 443 порту. С помощью Udp2raw можно обойти это ограничение. Правда я в этом случае использую OpenVPN на TCP порту. Но он достаточно легко определяется и блокируется при желании.
Если заблокирован и TCP и UDP, то поднимаем фейковый туннель через ICMP. Со стороны своего сервера настраиваем OpenVPN, через ICMP туннель подключаемся к своему OpenVPN и пользуемся полным доступом в сеть.
Исходники / Инструкция с OpenVPN
#vpn #firewall #security
У меня было немало заметок про различные VPN системы. При этом я ни разу не упоминал про OpenConnect, да и в комментариях редко про него кто вспомнит. А на деле это функциональная и простая Open Source система для организации VPN со своим сервером и клиентом с GUI под все популярные платформы.
Сразу отвечу на напрашивающийся вопрос, чем OpenConnect принципиально отличается от того же OpenVPN или WireGuard. OpenConnect относится к классу SSL VPN, хотя в наше время термин SSL уже устарел и логичнее было бы сказать TLS VPN. Смысл в том, что OpenConnect для шифрования использует стандартные TLS сертификаты, те же самые, что и современные web сервера. Таким образом, его трафик практически неотличим от HTTPS. Особенно если его запустить на 443 TCP порту. Это хорошее решение для обхода блокировок. Ближайшие аналоги с подобной реализацией шифрования - Microsoft SSTP и CISCO AnyConnect.
Сервер для OpenConnect - ocserv, доступен в стандартных репозиториях популярных Linux дистрибутивов. Так что с установкой и настройкой особых проблем нет. Все настройки по олдскулу в обычном конфигурационном файле. Для шифрования можно получить бесплатные сертификаты от Let's Encrypt или использовать самоподписные.
Аутентификация пользователей может быть настроена с помощью логина и пароля. Удобная особенность ocserv - всеми настройками пользователей можно управлять на сервере, в том числе заворачивание всего трафика в vpn туннель, передача маршрутов, dns серверов. Настройки не такие гибкие, как в OpenVPN, но тем не менее всё равно сделано удобно и функционально. Отмечу также, что в ocserv встроены настройки для защиты от брутфорса. Не нужно использовать сторонние решения. Он сам может по определённым правилам блокировать нежелательные подключения.
В качестве клиента может использоваться открытый OpenConnect GUI, либо проприетарный CISCO AnyConnect. Для пользователя всё максимально просто. Он запускает клиент, вводит имя сервера, логин и пароль. Даже инструкцию писать не надо.
Единственное, что я не могу прокомментировать, это что в OpenConnect с быстродействием. Например, Microsoft SSTP очень медленный. В этом я лично убеждался, когда настраивал и сравнивал на одном и том же железе. В целом, OpenConnect - современное, удобное как для администратора, так и для пользователя решение для организации VPN.
⇨ Сайт / Исходники
#vpn
Сразу отвечу на напрашивающийся вопрос, чем OpenConnect принципиально отличается от того же OpenVPN или WireGuard. OpenConnect относится к классу SSL VPN, хотя в наше время термин SSL уже устарел и логичнее было бы сказать TLS VPN. Смысл в том, что OpenConnect для шифрования использует стандартные TLS сертификаты, те же самые, что и современные web сервера. Таким образом, его трафик практически неотличим от HTTPS. Особенно если его запустить на 443 TCP порту. Это хорошее решение для обхода блокировок. Ближайшие аналоги с подобной реализацией шифрования - Microsoft SSTP и CISCO AnyConnect.
Сервер для OpenConnect - ocserv, доступен в стандартных репозиториях популярных Linux дистрибутивов. Так что с установкой и настройкой особых проблем нет. Все настройки по олдскулу в обычном конфигурационном файле. Для шифрования можно получить бесплатные сертификаты от Let's Encrypt или использовать самоподписные.
Аутентификация пользователей может быть настроена с помощью логина и пароля. Удобная особенность ocserv - всеми настройками пользователей можно управлять на сервере, в том числе заворачивание всего трафика в vpn туннель, передача маршрутов, dns серверов. Настройки не такие гибкие, как в OpenVPN, но тем не менее всё равно сделано удобно и функционально. Отмечу также, что в ocserv встроены настройки для защиты от брутфорса. Не нужно использовать сторонние решения. Он сам может по определённым правилам блокировать нежелательные подключения.
В качестве клиента может использоваться открытый OpenConnect GUI, либо проприетарный CISCO AnyConnect. Для пользователя всё максимально просто. Он запускает клиент, вводит имя сервера, логин и пароль. Даже инструкцию писать не надо.
Единственное, что я не могу прокомментировать, это что в OpenConnect с быстродействием. Например, Microsoft SSTP очень медленный. В этом я лично убеждался, когда настраивал и сравнивал на одном и том же железе. В целом, OpenConnect - современное, удобное как для администратора, так и для пользователя решение для организации VPN.
⇨ Сайт / Исходники
#vpn
Некоторое время назад я рассказывал про любопытный сервис под названием Tailscale. Возвращаюсь к нему вновь, чтобы рассказать тем, кто про него не знает, о его существовании. А так же поделиться любопытными новостями, связанными с ним.
Кратко поясню, что это вообще такое. Очень условно Tailscale можно назвать аналогом популярного Hamachi. Его можно использовать в том же качестве, как и Хамачи, но не только. Это децентрализованная VPN-сеть, построенная на базе опенсорсного VPN-клиента WireGuard по принципу mesh-сети.
Для работы с Tailscale, вы ставите клиента на свои устройства (поддерживаются все популярные системы), и они объединяются в единую VPN сеть. Ничего настраивать не надо, работает максимально просто для пользователя. Всё взаимодействие с сетью происходит через сервер управления и веб интерфейс разработчиков. А вот это уже закрытый функционал, который продаётся за деньги. Есть бесплатный тариф для индивидуального использования с 20-ю устройствами.
Для личного использования бесплатного тарифа за глаза. Я проверял его, очень удобно. Недавно вышло нововведение - Tailscale SSH. Это встроенный в браузер SSH клиент, с помощью которого можно подключаться к своим серверам прямо из веб интерфейса. Реализовано удобно. Посмотреть, как работает, можно в демонстрационном ролике.
Со временем появилась open source реализация управляющего сервера - Headscale. Причём разработчики Tailscale отнеслись к нему благосклонно и помогают в разработке. Информируют об изменениях протокола. Палки в колёса не ставят. Проект очень живой, постоянно обновляется.
Мы имеем open source реализацию клиентов Tailscale от самих разработчиков, и серверную часть Headscale, которую можно развернуть на своих серверах. Отдельно есть репозиторий с веб интерфейсом для Headscale - headscale-ui. То есть практически весь функционал платного сервиса можно поднять бесплатно на своих серверах. В сети уже есть описания и руководства (пример 1, 2).
На вид всё это выглядит очень удобно и функционально. Если Headscale на практике без багов и особых проблем реализует функционал Tailscale, то такая система будет актуальна для больших установок. Там есть и внешняя аутентификация, и управление доступом на основе ACL, и управление маршрутами. Много всего, что требуется для больших коллективов.
⇨ Сайт / Исходники Tailscale / Headscale / Headscale-ui
#vpn #tailscale
Кратко поясню, что это вообще такое. Очень условно Tailscale можно назвать аналогом популярного Hamachi. Его можно использовать в том же качестве, как и Хамачи, но не только. Это децентрализованная VPN-сеть, построенная на базе опенсорсного VPN-клиента WireGuard по принципу mesh-сети.
Для работы с Tailscale, вы ставите клиента на свои устройства (поддерживаются все популярные системы), и они объединяются в единую VPN сеть. Ничего настраивать не надо, работает максимально просто для пользователя. Всё взаимодействие с сетью происходит через сервер управления и веб интерфейс разработчиков. А вот это уже закрытый функционал, который продаётся за деньги. Есть бесплатный тариф для индивидуального использования с 20-ю устройствами.
Для личного использования бесплатного тарифа за глаза. Я проверял его, очень удобно. Недавно вышло нововведение - Tailscale SSH. Это встроенный в браузер SSH клиент, с помощью которого можно подключаться к своим серверам прямо из веб интерфейса. Реализовано удобно. Посмотреть, как работает, можно в демонстрационном ролике.
Со временем появилась open source реализация управляющего сервера - Headscale. Причём разработчики Tailscale отнеслись к нему благосклонно и помогают в разработке. Информируют об изменениях протокола. Палки в колёса не ставят. Проект очень живой, постоянно обновляется.
Мы имеем open source реализацию клиентов Tailscale от самих разработчиков, и серверную часть Headscale, которую можно развернуть на своих серверах. Отдельно есть репозиторий с веб интерфейсом для Headscale - headscale-ui. То есть практически весь функционал платного сервиса можно поднять бесплатно на своих серверах. В сети уже есть описания и руководства (пример 1, 2).
На вид всё это выглядит очень удобно и функционально. Если Headscale на практике без багов и особых проблем реализует функционал Tailscale, то такая система будет актуальна для больших установок. Там есть и внешняя аутентификация, и управление доступом на основе ACL, и управление маршрутами. Много всего, что требуется для больших коллективов.
⇨ Сайт / Исходники Tailscale / Headscale / Headscale-ui
#vpn #tailscale
Чтобы два раза не вставать, продолжу тему Tailscale. Покажу пару конкретных примеров личного пользования на базе бесплатного тарифного плана. Оба примера могут использоваться одновременно.
1️⃣ По умолчанию Tailscale заворачивает в VPN туннель только трафик своей сети. Но вы можете сделать так, что подключенное устройство весь свой внешний трафик (например, сёрфинг в интернете) будет заворачивать на одно из устройств сети.
К примеру, у вас есть какой-то внешний сервер для обхода блокировок. Вы добавляете все свои устройства в Tailscale, а для внешней виртуалки указываете настройку exit node. Выбранные вами устройства (например, смартфоны) после подключения будут заворачивать весь свой трафик на эту виртуалку по умолчанию. Описание настройки.
2️⃣ Если вы используете блокировщики рекламы, то можно настроить свой собственный сервер Pi-hole и использовать его возможности. Для этого надо добавить машину с настроенным Pi-hole. Далее в настройках Tailscale добавить DNS сервер, указав внутренний IP адрес Pi-hole сервера. И отдельно указать, что подключенным клиентам надо заменять их локальный DNS сервер на настроенный.
При сёрфинге с подключенным Tailscale все DNS запросы будут проходить через ваш Pi-hole и очищаться от рекламных доменов. Особенно это актуально для смартфонов. Если блокировку надо отключить, то просто отключаетесь от Tailscale. Описание настройки.
Ещё больше примеров и готовых инструкций можно посмотреть в документации в разделе How-to Guides.
Показанные выше примеры без проблем можно реализовать с помощью OpenVPN. Он умеет и настройки DNS, и маршруты передавать клиенту. Я неоднократно это настраивал. Но всё это делается в консоли, а для этого нужно хорошее понимание и знание работы OpenVPN. С Tailscale всё это делается за 5-10 минут через настройки в веб интерфейсе. Единственное, что надо будет настроить — включить маршрутизацию трафика на exit node. Но есть одно очень важное принципиальное отличие. OpenVPN весь трафик пропускает через себя, а Tailscale напрямую соединяет устройства. Трафик между ними идёт минуя управляющий сервер.
#vpn #tailscale
1️⃣ По умолчанию Tailscale заворачивает в VPN туннель только трафик своей сети. Но вы можете сделать так, что подключенное устройство весь свой внешний трафик (например, сёрфинг в интернете) будет заворачивать на одно из устройств сети.
К примеру, у вас есть какой-то внешний сервер для обхода блокировок. Вы добавляете все свои устройства в Tailscale, а для внешней виртуалки указываете настройку exit node. Выбранные вами устройства (например, смартфоны) после подключения будут заворачивать весь свой трафик на эту виртуалку по умолчанию. Описание настройки.
2️⃣ Если вы используете блокировщики рекламы, то можно настроить свой собственный сервер Pi-hole и использовать его возможности. Для этого надо добавить машину с настроенным Pi-hole. Далее в настройках Tailscale добавить DNS сервер, указав внутренний IP адрес Pi-hole сервера. И отдельно указать, что подключенным клиентам надо заменять их локальный DNS сервер на настроенный.
При сёрфинге с подключенным Tailscale все DNS запросы будут проходить через ваш Pi-hole и очищаться от рекламных доменов. Особенно это актуально для смартфонов. Если блокировку надо отключить, то просто отключаетесь от Tailscale. Описание настройки.
Ещё больше примеров и готовых инструкций можно посмотреть в документации в разделе How-to Guides.
Показанные выше примеры без проблем можно реализовать с помощью OpenVPN. Он умеет и настройки DNS, и маршруты передавать клиенту. Я неоднократно это настраивал. Но всё это делается в консоли, а для этого нужно хорошее понимание и знание работы OpenVPN. С Tailscale всё это делается за 5-10 минут через настройки в веб интерфейсе. Единственное, что надо будет настроить — включить маршрутизацию трафика на exit node. Но есть одно очень важное принципиальное отличие. OpenVPN весь трафик пропускает через себя, а Tailscale напрямую соединяет устройства. Трафик между ними идёт минуя управляющий сервер.
#vpn #tailscale
⚠ Я долго это терпел, но не выдержал. Надоело то, что не грузятся аватарки в youtube. Для всех других сайтов обходился редким включением VPN, так как не часто хожу по запрещёнке. Но ютубом пользуюсь каждый день.
✅ В итоге настроил:
◽ OpenVPN сервер на американском VPS.
◽ Подключил его к домашнему Микротику.
◽ Создал Address List со списком доменов, запросы к которым хочу заворачивать в VPN туннель.
◽ Промаркировал все запросы к этому списку.
◽ Настроил в routes маршрут через OpenVPN туннель для всех промаркированных запросов.
И о чудо, спустя почти год я постоянно вижу все картинки с ютуба.
Подробно весь процесс настройки показан вот в этом видео:
Wireguard + Mikrotik. Частичное перенаправление трафика
⇨ https://www.youtube.com/watch?v=RA8mICgGcs0
Единственное отличие — у автора уже RouterOS 7 и настроен WireGuard. Мне пока не хочется экспериментов с 7-й версией, поэтому я до сих пор везде использую 6-ю. А там поддержки WG нет, поэтому подключаюсь по OpenVPN.
#vpn #mikrotik
✅ В итоге настроил:
◽ OpenVPN сервер на американском VPS.
◽ Подключил его к домашнему Микротику.
◽ Создал Address List со списком доменов, запросы к которым хочу заворачивать в VPN туннель.
◽ Промаркировал все запросы к этому списку.
◽ Настроил в routes маршрут через OpenVPN туннель для всех промаркированных запросов.
И о чудо, спустя почти год я постоянно вижу все картинки с ютуба.
Подробно весь процесс настройки показан вот в этом видео:
Wireguard + Mikrotik. Частичное перенаправление трафика
⇨ https://www.youtube.com/watch?v=RA8mICgGcs0
Единственное отличие — у автора уже RouterOS 7 и настроен WireGuard. Мне пока не хочется экспериментов с 7-й версией, поэтому я до сих пор везде использую 6-ю. А там поддержки WG нет, поэтому подключаюсь по OpenVPN.
#vpn #mikrotik