Небольшой полезный проект на тему WireGuard, который в простых случаях заменяет веб интерфейс – wg-cmd. С его помощью можно в консольном режиме настроить сервер, добавить пользователей и прямо с консоли через QR-код настроить клиентов. Удобно, если сами настраиваете клиентов, к примеру, для своей семьи и прочих родственников, чьи смартфоны у вас под рукой.
Сразу предугадывая сообщения на тему того, что WG блокируют и т.д., скажу, что использовать WG надо внутри РФ на VPS. Это не заметка про то, как обходить блокировки и прочие ограничения. К этой VPS можно подключаться откуда-то извне (не наоборот) любым способом, который доступен. И на этой VPS решать все свои задачи, не трогая клиентские устройства.
Сразу напишу готовую инструкцию, чтобы можно было быстро воспроизвести. Делать всё буду на Debian 12.
Запустится консольный установщик. Можно на все вопросы ответить по умолчанию, ничего не меняя. Программа создаст все необходимые конфигурационные файлы, добавит правила в iptables, создаст wg интерфейс и юнит systemd.
После конфигурации откроется интерфейс управления сервером, где можно добавить клиента и тут же в консоли посмотреть QR код для него. В основном для этого обычно используется какой-то простенький веб интерфейс, типа wg-easy. Маленькая программа wg-cmd его заменяет. Можно добавлять и удалять пользователей, и считывать QR-коды. Больше она ничего не умеет. При желании можно руками в конфигурационных файлах клиентов что-то поправить, добавив дополнительные настройки.
Я лично проверил, всё завелось без проблем. Единственное, пришлось шрифт терминала немного уменьшить, чтобы QR-код поместился. Экрана ноута не хватило по высоте. Это самый простой и быстрый способ настроить WG и подключить клиента. И не надо веб интерфейс наружу выставлять и потом думать, чем его закрыть.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#wireguard #vpn
Сразу предугадывая сообщения на тему того, что WG блокируют и т.д., скажу, что использовать WG надо внутри РФ на VPS. Это не заметка про то, как обходить блокировки и прочие ограничения. К этой VPS можно подключаться откуда-то извне (не наоборот) любым способом, который доступен. И на этой VPS решать все свои задачи, не трогая клиентские устройства.
Сразу напишу готовую инструкцию, чтобы можно было быстро воспроизвести. Делать всё буду на Debian 12.
# apt update && apt install wireguard-tools iptables# curl -SL https://github.com/andrianbdn/wg-cmd/releases/download/v0.1.6/wg-cmd-0.1.6-linux-amd64 -o /usr/local/bin/wg-cmd# chmod 755 /usr/local/bin/wg-cmd# wg-cmdЗапустится консольный установщик. Можно на все вопросы ответить по умолчанию, ничего не меняя. Программа создаст все необходимые конфигурационные файлы, добавит правила в iptables, создаст wg интерфейс и юнит systemd.
После конфигурации откроется интерфейс управления сервером, где можно добавить клиента и тут же в консоли посмотреть QR код для него. В основном для этого обычно используется какой-то простенький веб интерфейс, типа wg-easy. Маленькая программа wg-cmd его заменяет. Можно добавлять и удалять пользователей, и считывать QR-коды. Больше она ничего не умеет. При желании можно руками в конфигурационных файлах клиентов что-то поправить, добавив дополнительные настройки.
Я лично проверил, всё завелось без проблем. Единственное, пришлось шрифт терминала немного уменьшить, чтобы QR-код поместился. Экрана ноута не хватило по высоте. Это самый простой и быстрый способ настроить WG и подключить клиента. И не надо веб интерфейс наружу выставлять и потом думать, чем его закрыть.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
#wireguard #vpn
👍100👎3
Сейчас появилось очень много программ для построения mesh-сетей. Это локальные сети поверх других сетей, где хосты могут соединяться друг с другом напрямую, если есть возможность. А каждый из членов сети может выступать маршрутизатором для доступа к другим ресурсами.
Известными представителями подобных продуктов являются Nebula, Tailscale, Netmaker, Netbird и ZeroTier. На последнем я бы хотел остановиться поподробнее. Он выделяется из этого списка своим протоколом передачи данных, в то время как остальные в основном используют WireGuard. Плюс, Mikrotik в RouterOS7 имеет реализацию, как клиента, так и своего контроллера на базе ZeroTier.
Я раньше только слышал про него, сам не пробовал. Решил исправить это, развернул и протестировал. Сразу скажу, что это не инструмент для обхода блокировок. Он не для этого придуман и в данной роли работает плохо. Не стоит эту тему развивать.
ZeroTier - платный SaaS сервис. Регистрируетесь, платите деньги и получаете личный кабинет для управления всеми своими сетями. Но при этом серверная часть выложена в open source. Каждый может развернуть свой локальный сервер и управлять им через CLI. Я немного изучил команды, там на самом деле всё относительно просто.
В связи с этим появилось очень много реализаций бесплатного веб интерфейса для управления сервером. Я недавно читал статью про настройку Self-Hosted ZeroTier с помощью интерфейса ZTNET, поэтому не стал смотреть другие интерфейсы, а их много, взял сразу этот. В целом, там всё необходимое для управления есть.
Запускаем так:
Можно и вручную всё это сделать. В репозитории есть описание. Теперь можно идти на 3000 порт сервера и регистрировать учётку админа.
Принцип объединения устройств в единую сеть следующий:
1️⃣ Скачиваете клиента под свою систему (есть под все, в том числе мобильные)
2️⃣ В клиенте указываете Network ID или сканируете QR код, который видно в веб интерфейсе. В этом ID, как я понял, закодирован IP контроллера.
3️⃣ Клиент подключается к серверу, на сервере вы подтверждаете его подключение.
4️⃣ Клиент получает IP адрес внутренней сети.
Я объединил Windows, Linux и Mikrotik. Получилось всё без проблем. Узлы сети сразу же напрямую увидели себя по внутренним адресам сети ZeroTier. Заработали RDP, SSH, Winbox.
Вы можете назначить Mikrotik шлюзом для какой-то подсети, которая находится за ним. Клиенты, которые подключатся к общей mesh-сети, могут ходить в ту сеть через него. А какой-нибудь Linux сервер назначить шлюзом для доступа в другую инфраструктуру. То есть каждый узел может выступать в роли и клиента, и шлюза для других. Настраивается это очень просто, буквально в несколько кликов в веб интерфейсе.
Если клиенты не видят друг друга напрямую, то общаются через контроллер. По умолчанию локальный ZeroTier подключается к набору публичных серверов для связи клиентов, которые не могут через ваш сервер увидеть друг-друга. Например, если сервер не в публичном доступе для всех.
В ZTNET это отключается в разделе настроек ZT Controller, где вы можете создать так называемый Custom Planet, который будет работать только локально и никуда подключаться не будет. Вам нужно будет обеспечить к нему прямой доступ всех клиентов, либо опубликовав контроллер напрямую в интернете, либо пробросив к нему порт 9993/udp.
Я всё это настроил. Разобрался со всем за пару-тройку часов. Не могу подробно расписать установку клиентов и команды, потому что лимит на длину заметки. В сети всё это есть, там ничего сложного.
Продукт простой, функциональный, бесплатный и известный. Много кем поддерживается. Так что если нужно что-то подобное, то можете смело использовать. Единственное, я бы поискал какой-то другой GUI. Этот показался немного кривоват, хотя вся необходимая функциональность присутствует.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:📱 Telegram | 🌐 Сайт | 📲 MAX
#vpn #network
Известными представителями подобных продуктов являются Nebula, Tailscale, Netmaker, Netbird и ZeroTier. На последнем я бы хотел остановиться поподробнее. Он выделяется из этого списка своим протоколом передачи данных, в то время как остальные в основном используют WireGuard. Плюс, Mikrotik в RouterOS7 имеет реализацию, как клиента, так и своего контроллера на базе ZeroTier.
Я раньше только слышал про него, сам не пробовал. Решил исправить это, развернул и протестировал. Сразу скажу, что это не инструмент для обхода блокировок. Он не для этого придуман и в данной роли работает плохо. Не стоит эту тему развивать.
ZeroTier - платный SaaS сервис. Регистрируетесь, платите деньги и получаете личный кабинет для управления всеми своими сетями. Но при этом серверная часть выложена в open source. Каждый может развернуть свой локальный сервер и управлять им через CLI. Я немного изучил команды, там на самом деле всё относительно просто.
В связи с этим появилось очень много реализаций бесплатного веб интерфейса для управления сервером. Я недавно читал статью про настройку Self-Hosted ZeroTier с помощью интерфейса ZTNET, поэтому не стал смотреть другие интерфейсы, а их много, взял сразу этот. В целом, там всё необходимое для управления есть.
Запускаем так:
# wget -O docker-compose.yml https://raw.githubusercontent.com/sinamics/ztnet/main/docker-compose.yml
# sed -i "s|http://localhost:3000|http://$(hostname -I | cut -d' ' -f1):3000|" docker-compose.yml
# docker compose up -d
Можно и вручную всё это сделать. В репозитории есть описание. Теперь можно идти на 3000 порт сервера и регистрировать учётку админа.
Принцип объединения устройств в единую сеть следующий:
Я объединил Windows, Linux и Mikrotik. Получилось всё без проблем. Узлы сети сразу же напрямую увидели себя по внутренним адресам сети ZeroTier. Заработали RDP, SSH, Winbox.
Вы можете назначить Mikrotik шлюзом для какой-то подсети, которая находится за ним. Клиенты, которые подключатся к общей mesh-сети, могут ходить в ту сеть через него. А какой-нибудь Linux сервер назначить шлюзом для доступа в другую инфраструктуру. То есть каждый узел может выступать в роли и клиента, и шлюза для других. Настраивается это очень просто, буквально в несколько кликов в веб интерфейсе.
Если клиенты не видят друг друга напрямую, то общаются через контроллер. По умолчанию локальный ZeroTier подключается к набору публичных серверов для связи клиентов, которые не могут через ваш сервер увидеть друг-друга. Например, если сервер не в публичном доступе для всех.
В ZTNET это отключается в разделе настроек ZT Controller, где вы можете создать так называемый Custom Planet, который будет работать только локально и никуда подключаться не будет. Вам нужно будет обеспечить к нему прямой доступ всех клиентов, либо опубликовав контроллер напрямую в интернете, либо пробросив к нему порт 9993/udp.
Я всё это настроил. Разобрался со всем за пару-тройку часов. Не могу подробно расписать установку клиентов и команды, потому что лимит на длину заметки. В сети всё это есть, там ничего сложного.
Продукт простой, функциональный, бесплатный и известный. Много кем поддерживается. Так что если нужно что-то подобное, то можете смело использовать. Единственное, я бы поискал какой-то другой GUI. Этот показался немного кривоват, хотя вся необходимая функциональность присутствует.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:
#vpn #network
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
5👍130👎3
Ранее я уже рассказывал про Small HTTP server. Это необычный веб сервер из далёкого виндового прошлого 90-х годов, который до сих пор поддерживается, немного развивается, и за это время оброс дополнительной функциональностью. Я с тех пор подписался на канал автора и наблюдал, как время от времени выходят обновления.
Проект меня заинтересовал. В первую очередь тем, что там из дополнительной функциональности заявлен HTTP TLS VPN сервер с небольшим VPN клиентом под Windows и Linux. С учётом того, что продукт этот мало кому известен, подумал, что это может быть полезным. Забегая вперёд скажу, что у меня не получилось его настроить, потому что надоело разбираться с продуктом, для которого толком нет документации и примеров настройки. В какой-то момент не захотелось дальше время тратить.
Стало жаль терять то, что уже сделал, поэтому решил написать публикацию. Автор выкладывает исходники и deb пакеты для запуска сервера под Linux. Но у меня не получилось установить из готового пакета, потому что он хочет старую версию libssl, которой в современной системе нет. А если берёшь старую систему, то не подходит версия libgnutls, так как требуется более новая.
Судя по всему автор собирает всё это сам с явным подключением нужных версий. Я в итоге нашёл конфигурацию дистрибутива, куда удалось автоматом всё установить из пакетов и не собирать вручную. Завернул всё это в Dockerfile и оформил в виде Docker Compose.
Выложил всё на Gitflic, там же и описание запуска:
⇨ https://gitflic.ru/project/serveradmin/smallsrv
Клонируете себе репозиторий:
При необходимости правите конфигурацию сервера в файле
После этого запускаете:
Будет собран локальный образ и запущен контейнер. Если надо что-то настроить в контейнере, то зайдите в него:
Если измените конфигурацию сервера, контейнер нужно будет перезапустить:
Не знаю, пригодится ли это кому-нибудь, но раз уж сделал, то выкладываю. Это, кстати, наглядный пример того, зачем может пригодиться Docker. А то частенько спрашивают люди, зачем он нужен, если ты не разработчик и не работаешь с микросервисами.
С помощью Docker очень легко упаковать приложение в преднастроенную среду и не мучать пользователей с настройкой. Причём сделать это может и человек со стороны. Теперь можно без проблем запустить приложение на любом линуксе.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:📱 Telegram | 🌐 Сайт | 📲 MAX
#webserver #vpn
Проект меня заинтересовал. В первую очередь тем, что там из дополнительной функциональности заявлен HTTP TLS VPN сервер с небольшим VPN клиентом под Windows и Linux. С учётом того, что продукт этот мало кому известен, подумал, что это может быть полезным. Забегая вперёд скажу, что у меня не получилось его настроить, потому что надоело разбираться с продуктом, для которого толком нет документации и примеров настройки. В какой-то момент не захотелось дальше время тратить.
Стало жаль терять то, что уже сделал, поэтому решил написать публикацию. Автор выкладывает исходники и deb пакеты для запуска сервера под Linux. Но у меня не получилось установить из готового пакета, потому что он хочет старую версию libssl, которой в современной системе нет. А если берёшь старую систему, то не подходит версия libgnutls, так как требуется более новая.
Судя по всему автор собирает всё это сам с явным подключением нужных версий. Я в итоге нашёл конфигурацию дистрибутива, куда удалось автоматом всё установить из пакетов и не собирать вручную. Завернул всё это в Dockerfile и оформил в виде Docker Compose.
Выложил всё на Gitflic, там же и описание запуска:
⇨ https://gitflic.ru/project/serveradmin/smallsrv
Клонируете себе репозиторий:
# git clone https://gitflic.ru/project/serveradmin/smallsrv.git# cd smallsrvПри необходимости правите конфигурацию сервера в файле
httpd.cfg, наполняете директорию www/. Если туда не положить файл index.html, то будет работать простой листинг файлов. Можно в качестве простого файлового сервера использовать.После этого запускаете:
# docker compose up -dБудет собран локальный образ и запущен контейнер. Если надо что-то настроить в контейнере, то зайдите в него:
# docker exec -it smallsrv bashЕсли измените конфигурацию сервера, контейнер нужно будет перезапустить:
# docker restart smallsrvНе знаю, пригодится ли это кому-нибудь, но раз уж сделал, то выкладываю. Это, кстати, наглядный пример того, зачем может пригодиться Docker. А то частенько спрашивают люди, зачем он нужен, если ты не разработчик и не работаешь с микросервисами.
С помощью Docker очень легко упаковать приложение в преднастроенную среду и не мучать пользователей с настройкой. Причём сделать это может и человек со стороны. Теперь можно без проблем запустить приложение на любом линуксе.
❗️Если заметка вам полезна, не забудьте 👍 и забрать в закладки.
———
ServerAdmin:
#webserver #vpn
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍71👎4