Мне интересно, можно ли установить на уровне маршрутизатора какое-либо правило, например, следующее; с помощью iptables, ipset или аналогичных инструментов. (У меня не очень большой опыт в этой области, извините, если следующее немного расплывчато)
Пример: Я хочу заблокировать твиттер после 30 минут использования (или 200 МБ данных) . Сброс счетчика каждые 24 часа. (Я не ищу правила, основанные на расписании, т.е. блокировать твиттер с 18:00 до 20:00)
Я предполагаю, что мне придется вычислять атрибуты "сеанса" вручную. Можно ли это сделать, регистрируя трафик, соответствующий данному сайту, используя брандмауэр, и вычисляя приблизительную продолжительность с помощью скрипта оболочки? Есть ли более простые способы?
Я понимаю комментарии по поводу того, что этот вариант использования не подходит для фильтрации на уровне пакетов. Но я не понимаю, чем подсчет пакетов на основе целевых адресов сильно отличается от, скажем, обычных правил брандмауэра для фильтрации пакетов на основе нежелательных адресов источника.
Для контекста, в других проектах: Некоторые вероятные (но неоптимальные) подходы с использованием счетчиков ipset были предложены в dd-wrt форумах. В проекте squid-cache также [wiki.squid-cache.org/Features/Quota]
PS: Есть расширения для браузера (stafocused , leechblock), которые могут делать это на уровне приложения, но я хочу реализовать это на уровне маршрутизатора/брандмауэра, потому что нет открытых исходных кодов, которые работают для всех моих устройств.
Основываясь на комментариях к вопросу, в Ubuntu нет никаких решений, которые могут сделать это.