ServerAdmin.ru
28.7K subscribers
276 photos
34 videos
12 files
2.6K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
​​Вчера в комментариях к заметке об OpenVPN был упомянут любопытный российский продукт Рутокен VPN. Меня он очень заинтересовал, так что решил его сразу же проверить. Это Open Source продукт на базе OpenVPN с веб панелью для управления.

В репозитории есть инструкция по установке. В ней указано, что сервис предназначен для работы в Ubuntu 20. Не знаю, с чем связана привязка к конкретной системе. Наверное поленились оформить поддержку остальных. Хотя бы в Docker контейнер всё это поместили бы, чтобы работало на любом Linux.

Взял Ubuntu 20.04 и установил на неё по инструкции. Там всё очень просто и быстро, не буду приводить шаги по установке. После перезагрузки зашёл по внешнему IP на веб интерфейс. Указал типовые настройки, необходимые для работы сервера OpenVPN и сгенерировал корневой сертификат.

Далее создал пользователей. Там идея такая, что пользователи могут сами заходить на веб интерфейс, генерировать себе конфигурацию, скачивать её вместе с клиентом. Сам клиент тоже Open Source, называется Рутокен VPN клиент. Он нестандартный, так как поддерживает работу с фирменным USB токеном Рутокен ЭЦП. Веб интерфейс довольно простой, как и сам функционал. Можно менять настройки сервера и управлять клиентами. Хотя у всех примерно так же, потому что это типовой функционал OpenVPN Server.

Дальше меня ждал сюрприз. Когда зашёл новым пользователем в веб интерфейс, заметил, что мне предлагают подготовить Рутокен ЭЦП для установки на него сертификата, либо сделать конфиг для смартфона. То есть идея в том, что этот продукт заточен под работу со своими родными токенами.

Тут я немного приуныл, потому что привязка к токенам резко сужает круг вероятных пользователей. Хотя если вам нужно именно это, то решение отличное. Токен сейчас стоит порядка 2500р. Неплохое решение для удалённых корпоративных пользователей, которых, кстати, можно импортировать из AD.

Потом прикинул, что формат конфигов openvpn одинаковый, что для смартфона, что для компьютера. Сделал конфигурацию для смарта, поставил на комп обычный OpenVPN Client и скормил ему этот конфиг. Без проблем подключился к серверу и вышел в интернет с его ip адресом. Отправлять весь трафик клиента через VPN - опция, которую можно указать через веб интерфейс.

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

Всё это бесплатно и от разработчика в РФ.

Сайт - https://www.rutoken.ru/products/all/rutoken-vpn/
Исходники - https://github.com/AktivCo/Rutoken-VPN-Community-Edition-Server

#отечественное #openvpn #vpn
​​Существует необычный и полезный продукт - UDPspeeder, который способен улучшить качество связи VPN туннелей на каналах с большими задержками и потерями пакетов с помощью коррекции ошибок (Forward Error Correction).

Разработчики заявляют встроенную поддержку следующих 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 очень просто. Достаточно скачать бинарник, запустить его с некоторыми параметрами. И то же самое сделать со стороны клиента.

# Запустить со стороны сервера:
./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
​​Некоторое время назад я рассказывал про любопытный сервис под названием 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
Я долго это терпел, но не выдержал. Надоело то, что не грузятся аватарки в 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
​​Думаю, многие из вас слышали или пользовались такими сервисами как Hamachi и Logmein. Если я не ошибаюсь, то раньше это были разные продукты. Hamachi использовался для быстрой настройки локальной сети через интернет. Я её использовал в 2000-е для сетевой игры по интернету. Например, в те же Герои 3. А Logmein — это сервис, похожий на Teamviewer, но появился раньше. Там тоже можно было подключаться к компьютеру, передавать файлы и т.д. И всё это управлялось через личный кабинет в браузере. Было удобно.

Одно время эти сервисы были с бесплатными тарифными планами. Я пользовался ими. Потом бесплатные тарифные планы убрали, пользоваться перестал. На днях решил посмотреть, как они поживают. Старая учётка сохранилась. Как оказалось, для Hamachi вернули бесплатный тарифный план на 5 устройств для каждой отдельной сети. Ограничений по количеству самих сетей не увидел.

Решил посмотреть, как это всё работает сейчас. Сервис довольно удобный. Всё управление возможно через личный кабинет. В единую сеть можно объединить Windows, Linux, MacOS машины и смартфоны на Android и iOS. Я проверил и добавил 2 виндовые машины, одну линуксовую без иксов, только с консолью (ставится консольный клиент из deb или rpm пакета), и свой смартфон на Android. Всё настроил довольно быстро. Немного повозился только со смартфоном. Там настраивается штатное VPN соединение с сервером Hamachi. Для этого надо закинуть личный сертификат на устройство и использовать его в настройки подключения через IPSEC Xauth RSA. Но можно было и попроще сделать через PPTP.

В итоге все 4 устройства оказались в общей локальной сети. Можно обмениваться файлами или какие-то сервисы запускать, типа Syncthing. На выходе удобный функционал в бесплатном тарифном плане. Для личного использования вполне достаточный.

Личный кабинет регистрировать на https://www.logmein.com, описание функционала Hamachi на отдельном сайте https://www.vpn.net. После регистрации в личном кабинете, вы можете добавить компьютеры в раздел Computers, это для функционала удалённого управления. Там бесплатного тарифа нет, только триал на 30 дней. А в разделе Networks можно создать свою сеть и добавить туда до 5-ти устройств бесплатно. Сетей может быть много.

Похожая функциональность есть у сервиса Tailscale, про который я несколько заметок делал. Там в бесплатном тарифном плане было 20 устройств и не было поддержки мобильных клиентов. Сейчас зашёл проверить, уже после написания этой заметки, а в бесплатном тарифном плане 100 устройств и поддержка смартфонов. Получается по всем параметрам лучше Hamachi, кроме некоторых нюансов. В Hamachi вы очень просто и быстро создаёте локальную сеть и закидываете туда клиентов. Сетей может быть несколько, клиенты будут изолированы друг от друга и видеть только участников своей сети. В Tailscale не помню, каким образом реализован этот же функционал. В таком простом и явном виде я его не помню.

#vpn #бесплатно
На днях история с неработающим OpenVPN наделала шума. Я регулярно новости не читаю, поэтому даже не сразу понял, о чём идёт речь, когда разные люди стали писать по этой теме. Для тех, кто не в курсе, о чём идёт речь, немного ссылок по теме: habr, securitylab, tproger.

У меня много где используется OpenVPN. Это основная технология для построения VPN, которую я использую, как на работе, так и в личных целях. Когда узнал про блокировки, проверил у себя, проблем не нашлось. К серверу в USA без проблем подключился. Позже вечером заметил, что дома не работает обход блокировок. Там Mikrotik подключается по TCP. Подключение не работало, хотя по UDP из этой же квартиры без проблем подключался. Подумал, что вот оно, я тоже столкнулся. Но на самом деле нет. Пошёл на сервер и увидел, что TCP туннель пару дней назад упал по какой-то причине. Буду с этим отдельно разбираться. По факту всё работает, даже через упоминаемую в новостях Yota.

Что это на самом деле было — не знаю. Может банальный сбой, может тестирование блокировки openvpn, может тестирование чего-то другого, что косвенно задело vpn. Информации нет, так что остаётся только гадать на кофейной гуще. Больше всего похоже на разовую акцию для информационного шума. Уж больно лихо все СМИ подхватили эту тему.

Я думаю, что блокировка VPN за пределы РФ, как и многих популярных иностранных сервисов типа youtube, в итоге состоится. Нарастающая логика происходящий событий такова. Это вопрос времени. Внутри РФ, думаю, что VPN работать будет. Возможно, нас ещё раньше на той стороне заблокируют. Там же свобода и рыночная экономика.

Варианты обхода этих блокировок, думаю, тоже будут, но не для массового пользователя. Несколько лет назад у меня сотрудники ездили в командировку в Китай. У них там работал OpenVPN для связи с московским офисом. Хотя я думал, что не будет. Все же знают про великий китайский файрвол. Как он на самом деле работает, точной информации не видел. Везде в основном слухи.

Как минимум у нас останется вариант с маскировкой под HTTPS. Можно будет поднять OpenConnect или SSTP, который умеет поднимать тот же SoftEther VPN. Их трафик трудноотличим от обычного web трафика. Для тех, кому жизненно важно подстраховаться, рекомендую поднять что-то подобное на случай реальной блокировки.

Много раз слышал, что плохо детектится и блокируется технология Shadowsocks. Легко и быстро настраивается, клиенты есть под все платформы. На её базе работает Outline VPN, Shadowsocks for Windows и многие другие программы. Легко гуглятся, пока гугл не заблокирован. Думаю, до него не дойдёт, хотя кто знает.

Ещё один вариант — завернуть весь VPN трафик в Udp2raw-tunnel. Он умеет маскировать трафик, добавляя фейковые заголовки пакетам. Если блокировка идёт без разбора содержимого пакетов, то может помочь.

Расскажите, столкнулись ли вы с блокировкой OpenVPN. Если да, то как это выглядело и какие параметры канала были. Какой протокол и порт использовался, включено ли сжатие трафика.

#vpn
​​Последнее время стала актуальна тема VPN. Расскажу вам по этому поводу про интересный open source проект — Nebula. Авторы называют его scalable overlay networking tool, что для меня затруднительно однозначно перевести. В общем случае это программа для построения связной виртуальной сети поверх физической, в том числе и через интернет.

Термин overlay обычно применяют для больших виртуальных сетей, построенный как бы над обычными. Есть физические сети underlay и виртуальные overlay. В Nebula используется агент, который устанавливается на каждый хост и в зависимости от своих настроек, подключается к тем или иным хостам. Соединения образуются между хостами напрямую (p2p), то есть получается mesh сеть. В этом основное отличие от традиционных VPN сетей, где используются туннели между шлюзами, а все остальные хосты общаются друг с другом посредством шлюзов.

Nebula разработали в Slack и потом выложили в открытый доступ. Авторы инструмента открыли свою компанию, saas сервис, занимаются внедрением и поддержкой. У них, кстати, есть бесплатный тарифный план.

Развернуть Nebula у себя не представляет большой сложности. Простейшая инструкция для запуска есть в самом репозитории. Аутентификация хостов происходит посредством сертификатов, как в openvpn. Так что придётся поднять свой CA и выпускать для клиентов сертификаты. У Nebula всё это есть в комплекте, так что не придётся прибегать к сторонним инструментам.

Пример выпуска CA:
# ./nebula-cert ca -name "Myorganization, Inc"
Сертификата для клиента:
# ./nebula-cert sign -name "laptop" -ip "192.168.100.2/24" \
-groups "laptop,home,ssh"

Тут сразу идёт функциональная привязка к выпущенному сертификату, так что продумать структуру сети нужно до выпуска сертификатов. Потом клиенту передаётся конфиг с сертификатом, где указан IP адрес одного или группы хостов, которые выступают в роли управляющего сервера. Точкой обмена трафиком они не будут. В зависимости от своих настроек, хосты обмениваются трафиком между собой напрямую. Даже если оба клиента находятся за NAT, управляющая нода соединит их напрямую посредством технологии UDP hole punching.

Если я правильно понял принцип работы Nebula, VPN туннели поднимаются динамически между хостами в случае необходимости. При этом используется своя технология на базе обмена ключами Диффи-Хеллмана (ECDH) и шифре AES-256-GCM. То есть это не надстройка над каким-нибудь wireguard или чем-то аналогичным. И всё это создано для построения очень больших сетей из сотен и тысяч хостов.

Nebula немного похожа на Tailscale, только у неё изначально всё готово для установки на своём железе. Нет привязки к облачному сервису. Для Tailscale тоже есть подобный сервер — Headscale. Но его развивают и поддерживают другие люди, не разработчики.

⇨ Сайт / Исходники / Документация / Обзор

#vpn