Open jekhor opened 1 year ago
WG рассчитано на уникальность ключей и IP-адресов для каждого клиента
Ты хочешь сказать, что никакого DHCP и каждый входящий клиент прибит гвоздями к внутренней сети?
А нельзя при добавлении SSH ключа VPN ключ генерить и ложить туда же в репу?
можно ли с WG сделать, чтобы работал mDNS/Bonjour (доступ по именам устройств вида freddy.local)?
А почему нельзя? Я думал будет обратная проблема, что при подключении VPN устройства в моей локалке станут недоступны, как и доступ к инету. Я не уверен как маршрутизация работает в этом случае.
можно ли WG интерфейс сервера объединить в мост с ETH-интерфейсом, смотрящим в сеть ХС, и раздать клиентам IP из той же подсети, что и внутри ХС?
А разве VPN не предполагает раздачу IP из подсети, в которую клиент коннектится?
В МалиноХС проблема с WG была в том, что роутер надо было перепрошивать, все боялись это делать (и пугали меня). :D
Ты хочешь сказать, что никакого DHCP и каждый входящий клиент прибит гвоздями к внутренней сети?
Именно так, это WG, детка.
А нельзя при добавлении SSH ключа VPN ключ генерить и ложить туда же в репу?
А если у человека 2-3 устройства? Два компа и телефон?
В МалиноХС проблема с WG была в том, что роутер надо было перепрошивать, все боялись это делать (и пугали меня). :D
Я в ЗХС сто раз так делал :)
А разве VPN не предполагает раздачу IP из подсети, в которую клиент коннектится?
Предполагает, но подсеть по дефолту локальная для VPN-сервера, как ты там дальше разруливаешь — другой вопрос.
А почему нельзя? Я думал будет обратная проблема, что при подключении VPN устройства в моей локалке станут недоступны, как и доступ к инету. Я не уверен как маршрутизация работает в этом случае.
Потому что мультикаст по дефолту проходить не будет. Но это решаемо, судя по гуглу.
Бридж wg<->eth можно организовать с использованием parprouted, который будет пересылать ARP запросы-ответы, править таблицы роутинга (добавляя роуты на хост, для которого появилась запись в ARP-таблице): https://wiki.debian.org/BridgeNetworkConnectionsProxyArp . Обычный бридж не поднимешь, потому что WG работает на уровне IP-протокола, а не на MAC-уровне.
Но учитывая то, что адреса в WG всё равно должны быть выданы статически, это практически не даёт преимущества по сравнению с маршрутизацией отдельной подсети, зато усложняет конфигурацию и отладку VPN-сервера.
А нельзя при добавлении SSH ключа VPN ключ генерить и ложить туда же в репу?
А если у человека 2-3 устройства? Два компа и телефон?
В блокчейне.. :D есть возможность несколько ключей доступа генерить из одного мастер ключа. Не уверен, правда, что они одним приватником открываются. Надо спрашать.
Но да, добавлять SSH доступ на GitHub для какого-нибудь RPi я бы не стал. Для таких случаев нужен пул айпишников. По линуксовому - префикс с числом ключей к имени ключа добавлять. :D
Генерация конфигов сделана, остался экспорт для сервера.
Есть идея перевести VPN для доступа в сеть ХС с OpenVPN на WireGuard. Для этого нужно решение по генерации конфигов, поскольку WG рассчитано на уникальность ключей и IP-адресов для каждого клиента. У каждого участника может быть несколько устройств, с которых он захочет иметь доступ в ХС, в том числе одновременно.
Возможный вариант: В профиле пользователя есть список имеющихся конфигураций, пустой по дефолту. Рядом ссылка на инструкцию по настройке клиента под Windows/Linux/Mac. Кнопка "Создать конфигурацию WG", по нажатию на неё:
VPN-сервер: По крону обновляет конфигурацию клиентов с сайта. При этом сайт отдаёт конфиги только активных юзеров. Сервер синхронизирует локальную базу с базой сайта, добавляя-удаляя-редактируя записи у себя.
Открытые вопросы для обсуждения:
[ ] разрешать ли default route (доступ в интернет через ХС) или только доступ в сеть ХС? Если да, то опционально (галочка в свойствах конфигурации) или по дефолту?
[x] можно ли с WG сделать, чтобы работал mDNS/Bonjour (доступ по именам устройств вида freddy.local)? Ответ: Можно, но нужно ставить mdns рефлектор на VPN сервере. В теории возможна маршрутизация multicast пакетов, но на практике сложна в настройке (нужна корректировка TTL и всё такое).
[x] можно ли WG интерфейс сервера объединить в мост с ETH-интерфейсом, смотрящим в сеть ХС, и раздать клиентам IP из той же подсети, что и внутри ХС? И надо ли? Тогда не надо настраивать ничего на маршрутизаторе, зато усложняет настройку VPN-сервера. Сейчас OpenVPN сервер как раз работает в режиме ethernet-моста, клиент получает IP-адрес от основного DHCP-сервера ХС. Ответ: Можно использовать методику proxy arp, но на практике не нужно, проще раздать маршруты через DHCP и редиректить пакеты, всё равно пришедшие на default gateway, но адресованные узлам-клиентам WG, на собственно маршрутизаторе.