Как стать автором
Обновить
30
0

Пользователь

Отправить сообщение

Является ли Pydantic альтернативой JSON Schema?

Freeroute тоже поддерживает несколько vpn, только инсталлер для простоты устанавливает лишь один. Ждём статью с Вашим решением проблемы)

  1. Да, именно так работает админка.

  2. Можно сделать, чтобы перенаправление отменялось, когда истекает TTL у записей, но мне этот функционал не потребовался, и перенаправление сейчас делается навечно. Для популярных сервисов этого достаточно. Исключение сделано для админки - если домен попадает в другой список, то таблица маршрутизации обновляется для всех ip, когда-либо полученных для этого домена.

А дергать cli-интерфейс ip с sudo внутри - точно хорошая идея?

это был самый простой способ добиться результата. Есть идеи, как менять таблицы роутинга из процесса python, работающего от имени непривилегированного пользователя?

Имхо очень много проблем может вызвать - в т.ч. сломанные таблицы роутинга и проблемы безопасности

подразумевается, что freeroute будет установлен внутри локальной сети, желательно на отдельную linux-машину. Не вижу особых проблем при таком подходе.

Цель была сделать так, чтобы python-сервис работал от имени простого пользователя, поэтому надо пробрасывать порты, которые нельзя слушать не будучи рутом.

Запускается Freeroute от имени обычного пользователя с sudo‑правами.

имелось в виду, что хоть сервис и работает от имени простого пользователя, но для работы ему всё равно потрбуются права на выполнение команды sudo ip route

Freeroute устанавливается на отдельной Linux машине внутри локальной сети, подойдёт виртуалка. Клиенты настраиваются на использование этой машины в качестве шлюза в Интернет.

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

Касательно Freeroute: не пробовал, но может заработает под WSL2. Ну или виртуалку под виндой поднять.

Да во Freeroute существует возможность использовать несколько разных туннелей, это достигается ручным изменением конфига и добавлением туда нескольких шлюзов.

Проблема №1 решается тем что, у проекта есть админка и хорошо видно, какие домены разрезолвились в последнее время, после чего их можно добавить в соответствующие списки (напомню, что записи в списках являются суффиксами, что позволяет не добавлять поддомены). Для моих целей хватило antifilter и ручного заполнения списков до момента, пока я не сделал админку, сижу с такой конфигурацией пару месяцов, списки менял пару раз.

Не до конца понял проблему №2. Мы перехватываем каждый DNS запрос, и все разрезовленные адреса добавляем в таблицу маршрутизации с помощью `ip add`. Если при разных запросах к одному домены возвращаются разные адреса, то мы всё равно все эти адреса перехватим и поместим куда на надо.

По проблеме №3. Я тоже сначала отталкивался от IP адресов, у antifilter даже список есть, но это оказалось менее удобно, чем если отталкиваться от доменных имён.

DNS на клиентах резловится через Freeroute. Сам Freeroute использует DNS, который настроен на машине, где он установлен. Я немного писал, что на роутере можно настроить DoH или DoT, и сделать так, чтобы Freeroute использовал DNS роутера. Тогда провайдер не сможет иметь доступ к DNS трафику.

Также в планах на будущее сказано, что есть идея сделать конфигурирование этого момента.

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Software Developer