From 4ed2fec0d2d5ed7767557a2a1c9581d3b36e5d73 Mon Sep 17 00:00:00 2001 From: stepanrodimanov Date: Thu, 21 May 2026 19:41:21 +0300 Subject: [PATCH 1/3] docs: update readme admin --- admin/README.md | 73 +++++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 68 insertions(+), 5 deletions(-) diff --git a/admin/README.md b/admin/README.md index 2db8984..ce91ef2 100644 --- a/admin/README.md +++ b/admin/README.md @@ -20,21 +20,84 @@ cd ../controller bazel run //cmd/grpc_server:grpc_server ``` +## Пример toml файла с политикой +```toml +[global.rules] +block_categories = ["Gambling", "Weapons"] +block_domains = ["youtube.com", "tiktok.com"] +allow_domains = ["github.com", "stackoverflow.com"] +block_ips = ["192.168.0.1", "2001:0db8:85a3:0000:0000:8a2e:0370:7334"] +allow_ips = ["8.8.8.8"] +# 7 * 24 * 60 * 60 = 604800 +ttl_ip = 604800 +ttl_domain = 604800 +min_trust_level = 5 + +[global.rules.block_by_trust] +ENTERTAINMENT = 6 +NEWS = 4 + +[filters.filter_1] +block_categories = ["Weapons", "Malware"] +block_domains = ["instagram.com"] +allow_domains = ["vk.com"] +min_trust_level = 0 + +[filters.filter_1.block_by_trust] +SOCIAL = 8 +ENTERTAINMENT = 7 + +[filters.filter_2] +block_categories = ["Malware"] +allow_domains = ["github.com", "gitlab.com"] + +``` + +Возможные категории +- Adult Content +- Gambling +- Drugs +- Violence +- Weapons +- Malware +- Social media +- Hate Speech +- Anonymizers +- Online shop + + ## Запуск клиента +Отправить новую политику на контроллер + ```bash -python admin.py --file config.toml +python admin.py load --file .toml ``` +Получить текущую политику с контроллера + +```bash +python admin.py load --file .toml +``` + +Включить/отключить фильтрацию на воркере + +```bash +python admin.py toogle --id 1 --on #id - worker id +python admin.py toogle --id 1 --off #id - worker id +``` + + ## Описание применения политики из конфига Политика для каждого фильтра формируется путём объединения глобальных правил и индивидуальных настроек конкретного фильтра. ### Глобальный уровень Сначала загружается общий TOML-файл конфигурации. В нём есть раздел [global.rules], который содержит правила, применяемые ко всем фильтрам без исключения: - Какие категории сайтов блокировать всегда -- Какие домены в чёрном списке -- Какие домены в белом списке +- Какие домены и ip в чёрном списке +- Какие домены и ip в белом списке - Пороги доверия для разных категорий - Минимальный уровень доверия по умолчанию +- Время жизни кэша для ip и домена Эти правила образуют глобальную политику, одинаковую для всех фильтров. @@ -43,7 +106,7 @@ python admin.py --file config.toml Локальные правила не заменяют глобальные, а дополняют и уточняют их: - Если в локальных правилах указаны дополнительные категории для блокировки, они добавляются к глобальным -- Если указаны дополнительные домены, они добавляются в соответствующие списки +- Если указаны дополнительные домены или ip, они добавляются в соответствующие списки - Пороги доверия для категорий могут переопределяться (если для той же категории указано новое значение) - Минимальный уровень доверия может быть изменён для конкретного фильтра @@ -54,4 +117,4 @@ python admin.py --file config.toml 3. Объединяет списки (добавляет новые элементы, не удаляя старые) 4. Перезаписывает отдельные параметры, если они заданы локально -Таким образом, каждый фильтр получает индивидуальную политику, которая наследует общие правила, но может быть более строгой или более мягкой в зависимости от настроек его сегмента сети. \ No newline at end of file +Таким образом, каждый фильтр получает индивидуальную политику, которая наследует общие правила, но может быть более строгой или более мягкой в зависимости от настроек его сегмента сети. From 65482420606a70d551b89fe3c5232e5a330c2cfb Mon Sep 17 00:00:00 2001 From: stepanrodimanov Date: Thu, 21 May 2026 20:13:50 +0300 Subject: [PATCH 2/3] fix: fix description --- admin/README.md | 83 ++++++++++++++++++++++++------------------------- 1 file changed, 41 insertions(+), 42 deletions(-) diff --git a/admin/README.md b/admin/README.md index ce91ef2..8692fcf 100644 --- a/admin/README.md +++ b/admin/README.md @@ -22,64 +22,63 @@ bazel run //cmd/grpc_server:grpc_server ## Пример toml файла с политикой ```toml -[global.rules] -block_categories = ["Gambling", "Weapons"] -block_domains = ["youtube.com", "tiktok.com"] -allow_domains = ["github.com", "stackoverflow.com"] -block_ips = ["192.168.0.1", "2001:0db8:85a3:0000:0000:8a2e:0370:7334"] -allow_ips = ["8.8.8.8"] -# 7 * 24 * 60 * 60 = 604800 -ttl_ip = 604800 -ttl_domain = 604800 -min_trust_level = 5 - -[global.rules.block_by_trust] -ENTERTAINMENT = 6 -NEWS = 4 - -[filters.filter_1] -block_categories = ["Weapons", "Malware"] -block_domains = ["instagram.com"] -allow_domains = ["vk.com"] -min_trust_level = 0 - -[filters.filter_1.block_by_trust] -SOCIAL = 8 -ENTERTAINMENT = 7 - -[filters.filter_2] -block_categories = ["Malware"] -allow_domains = ["github.com", "gitlab.com"] +[global.rules] # Глобальные правила для всех воркеров +block_categories = ["Gambling", "Weapons"] # Категории для блокировки +block_domains = ["youtube.com", "tiktok.com"] # Домены для блокировки +allow_domains = ["github.com", "stackoverflow.com"] # Разрешённые домены (приоритет над блокировкой) +block_ips = ["192.168.0.1", "2001:0db8:85a3:0000:0000:8a2e:0370:7334"] # IP для блокировки (IPv4 и IPv6) +allow_ips = ["8.8.8.8"] # Разрешённые IP +ttl_ip = 604800 # TTL кэша IP +ttl_domain = 604800 # TTL кэша доменов +min_trust_level = 5 # Мин. уровень доверия + +[global.rules.block_by_trust] # Блокировка по уровню доверия +ENTERTAINMENT = 6 +NEWS = 4 + +[filters.filter_1] # Правила для воркера #1 +block_categories = ["Weapons", "Malware"] # Доп. категории к глобальным +block_domains = ["instagram.com"] # Доп. домены к глобальным +allow_domains = ["vk.com"] # Доп. разрешённые домены +min_trust_level = 0 # Переопределяет глобальный + +[filters.filter_1.block_by_trust] # Уровни доверия для воркера #1 +SOCIAL = 8 +ENTERTAINMENT = 7 + +[filters.filter_2] # Правила для воркера #2 +block_categories = ["Malware"] # Доп. категории к глобальным +allow_domains = ["github.com", "gitlab.com"] # Доп. разрешённые домены ``` -Возможные категории -- Adult Content -- Gambling -- Drugs -- Violence -- Weapons -- Malware -- Social media -- Hate Speech -- Anonymizers +### Возможные категории +- Adult Content (Pornography and adult entertainment) +- Gambling (Online casinos, betting, lotteries) +- Drugs (Illegal substances) +- Violence (Violent content) +- Weapons (Firearms, explosives) +- Malware (Viruses and malicious software) +- Social media +- Hate Speech (Discrimination, extremism) +- Anonymizers (VPN, proxies to bypass blocks) - Online shop ## Запуск клиента -Отправить новую политику на контроллер +### Отправить новую политику на контроллер ```bash python admin.py load --file .toml ``` -Получить текущую политику с контроллера +### Получить текущую политику с контроллера ```bash -python admin.py load --file .toml +python admin.py get --file .toml ``` -Включить/отключить фильтрацию на воркере +### Включить/отключить фильтрацию на воркере ```bash python admin.py toogle --id 1 --on #id - worker id From 2da27b5fbec7e97fc4b983647d3b10e5019c3a55 Mon Sep 17 00:00:00 2001 From: stepanrodimanov Date: Thu, 28 May 2026 19:58:10 +0300 Subject: [PATCH 3/3] fix: fix commands --- admin/README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/admin/README.md b/admin/README.md index 8692fcf..85f7c69 100644 --- a/admin/README.md +++ b/admin/README.md @@ -75,14 +75,14 @@ python admin.py load --file .toml ### Получить текущую политику с контроллера ```bash -python admin.py get --file .toml +python admin.py get --save .toml ``` ### Включить/отключить фильтрацию на воркере ```bash -python admin.py toogle --id 1 --on #id - worker id -python admin.py toogle --id 1 --off #id - worker id +python admin.py toggle --id 1 --on #id - worker id +python admin.py toggle --id 1 --off #id - worker id ```