Регистрация...

Eserv Forum / E4 / Proxy / Блокировка ресурсов

wikipost // (v1)
Продукты и услуги Скачать Документация Купить Поддержка Форумы Партнёрам Статьи О компании
В Е3 были замечательные файлы UrlBlackList.txt и HostBlackList.txt.
Можно ли их прикрутить к Е4 как список для элемента ACL правила, а не создавать для каждой записи новый элемент
 
Комментарии к этой версии (11.02.2011 10:52) [~alex1124] 877eba49
Комментарии к версии 2 (11.02.2011 10:53) [~alex1124] fc94f3ce
АвторДатаТекстtags
matveeva11.02.2011 10:59
Да, надо разместить их, напр., в корне Е4, и в поле "Ресурс" записать ../ UrlBlackList.txt
Это в правах доступа. И дать соотв. полномочия. Эта тема подробно обсуждалась здесь, можно там еще почитать.
wikipost
alex112411.02.2011 11:27
Видимо, что то пропустил. Буду пробовать. Но в UrlBlackList.txt прописывался и урл и пользователь. Сработает ли это в Е4 или права на группы выставлять
wikipost
matveeva11.02.2011 11:35
alex1124 пишет: в UrlBlackList.txt прописывался и урл и пользователь
Не, только адрес. По одному на строке со второй строки вида:
http://youtube.*

А пользователи получают права на этот ресурс в соответствии с ролью и полномочиями, и прочими заданными параметрами. Это все в назначении прав доступа.
wikipost
alex112411.02.2011 12:23
Понял, спасибо, буду править
wikipost
alex112418.02.2011 10:20
Когда ACL блокирует страницу, то дает номер правила которое сработало. А определить по номеру какое именно — приходится перебирать вручную и смотреть номер. Вот если этот номер вынести в таблицу?
wikipost
alex112418.02.2011 11:39
И еще — где можно смотреть результат работы ACL?
wikipost
ac18.02.2011 12:20
Результат работы ACL — блокировка, вы её видите в браузере. В логе http-proxy тоже.

alex1124 пишет: Вот если этот номер вынести в таблицу?

Вынес:
http://www.eserv.ru/download/acWEB4_2011-02-18_1.rar
wikipost
alex112418.02.2011 12:34
Здорово, спасибо!
wikipost
alex112418.02.2011 14:12
Результат работы ACL — блокировка виден
Сайт ad2.rambler.ru заблокирован (_56(0)). // Рубрика: // Разблокировать.

Правило 56 у меня блокирует всякие рекламки и прочее из списка, который был у меня в Е3. Предлагается ссылка для запроса на разблокировку. Пользователи у меня есть — ну полные "менеджеры" — лишь бы куда нажать. Боюсь засыпят просьбами.
Как-то спрятать данное безобразие можно, используя, например, NF?
wikipost
ac18.02.2011 14:14
Да, как раз "NF" (в поле "Правило") и спрячет безобразие.
wikipost
matveeva18.02.2011 14:59
ac пишет: Да, как раз "NF" (в поле "Правило") и спрячет безобразие.
NF это Not found ? А какие еще тайные знаки существуют? ))
wikipost
ac18.02.2011 15:45
Они из E3 по наследству перешли — http://www.eserv.ru/EproxyAcl

Про тайный знак "AU" я сегодня на вопрос Dandy отвечал.
wikipost
alex112418.02.2011 17:05
ред: 18.02.2011 17:22
В IE и FF NF срабатывает хорошо, а вот Opera выдает:
Вы попытались получить доступ к адресу http://ad2.rambler.ru/lenta.ban?pg=6565&ifr=1, который сейчас недоступен. Убедитесь, что соединение с Интернет активно ..... Загрузите страницу еще раз.
и там еще много буковок. Растягивают они сильно страницу, т.к. все это пытаются вписать в узкий фрэйм
wikipost
alex112427.02.2011 23:26
В документации —
Флаг "X" (выполнение) для ACL, относящихся к прокси, имеет иной смысл: если в сработавшем запрещающем элементе ACL он включен, то вместо безусловного запрета обращения к ресурсу, прокси запустит процедуру переавторизации пользователя (его браузер выведет окно с запросом имени:пароля), в которой пользователь сможет повысить свои полномочия, войдя под другим именем
.
А ограничено ли количество переавторизации пользователя? Ведь бесконечный запрос для пользователя не очень информативен. Может имеет смысл пояснить почему просят перелогиниться, да и ограничить количество попыток
wikipost
alex112416.03.2011 12:18
Для всех пользователей у меня есть файл блокировок. Он срабатывает с правилом NF. Захожу на некий сайт, некоторые картинки не отображаются. В acl есть упоминание про номер правила, но нет конкретной строки, которая сработала. Найти эту строчку не удалось. Создаю правило для данного сайта с разрешением 6. Картинки не появились. Редактирую запрещающее правило, убрав NF, картинки появились.
wikipost
ac16.03.2011 13:28
Да, у NF получается приоритет перед другими правилами, заменяет назначенные ими действия на выдачу "404 Not found". Номер сработавшей во внешнем текстовом файле строки нигде не фиксируется.

alex1124 пишет: Создаю правило для данного сайта с разрешением 6. Картинки не появились.

Картинки на сайте не обязательно выдаются с того же сайта, часто с других — каких-нибудь *cdn* или *static*. Если картинка блокируется по NF, а не стандартным ADV_BLOCK, то браузер показывает её крестиком, можно посмотреть свойства картинки на этом крестике, там есть её URL, и вот по этому URL и искать сработавшую в файле строку.
wikipost
ac16.03.2011 13:36
alex1124 пишет: А ограничено ли количество переавторизации пользователя? Ведь бесконечный запрос для пользователя не очень информативен. Может имеет смысл пояснить почему просят перелогиниться, да и ограничить количество попыток


Как-то пропустил этот вопрос, извините.

HTTP — stateless-протокол, запросы не связаны друг с другом, поэтому сложно отследить, сколько раз пользователь ломился на каждый ресурс, притом что пользователь еще не авторизован. Разве что заводить отдельную БД с парами URL:IP_пользователя и счетчиками, но это наверное уже перебор (особенно если авторизация в прокси включена). Что касается информативности — на самом деле в каждом запросе авторизации сервер (или прокси) — коды 401 или 407 — выдает и страницу контента, где объясняется причина требования авторизации, но браузер показывает вместо этой страницы окно авторизации, и только если пользователь нажмёт ESC в этом окне, браузер покажет эту "сокрытую" им страницу.
wikipost
alex112429.03.2011 16:45
Есть общее запрещающее правило для доступа к внешним электронным ящикам по рубрике и правило *mail* — 0.
Даю группе товарищей доступ к *yandex.ru* — 6 и *yandex.net* — 6.
Вроде все правильно, но периодически возникают непонятки — то *.jpg (правда с длинным русским именем) скачать не могут, то прикрепить *.docx к письму. Пути яндекса, а файлы не ходят.
wikipost
ac29.03.2011 19:37
ред: 29.03.2011 19:38
А конкретнее, как в таких случаях выглядит строка лога
POST http://mail.yandex.ru/neo2/handlers/do-send.jsx
при попытке прикрепить файл?
wikipost
alex112430.03.2011 09:23
Отправил строку лога на почту
wikipost
Moor05.03.2014 14:49
ред: 06.03.2014 09:27
Присоединюсь к вопросу, чтобы новую ветку не создавать.
1) Как заблокировать загрузку/интерактивный просмотр медиа-контента (MP3, MP4, FLV и т.д.)?
2) Можно ли в правиле доступа (ACL) указать более одного непересекающихся диапазона времени действия (Например 08:00-13:00 AND 13:30-17:00)? Через какой разделитель/оператор?
3) Можно ли в правиле доступа (ACL) указать более одного проекта, к которым оно относится? Через какой разделитель/оператор?
wikipost
ac06.03.2014 11:46
2)
TimeInterval: 08:00-13:00 TimeInterval: 13:30-17:00 AND
wikipost
ac06.03.2014 12:02
ред: 06.03.2014 12:04
3)
UID @ GetUserGroups =~ *проект1* UID @ GetUserGroups =~ *проект2* OR
wikipost
ac06.03.2014 12:16
1) В ACL в строке ресурс можно указать ресурс "*.mp3" для заданных пользователей и с нулевыми полномочиями. Аналогично для других расширений отдельными ACL. Если медиа-контент отдаётся урлами, не содержащими имя файла (т.е. веб-скриптами, к примеру), то простого способа блокировки в ACL нет. ACL обрабатывается в момент поступления запроса, а в этом случае надо анализировать content-type ответа (т.е. запрос разрешить, а ответ обрывать после получения заголовка ответа).
wikipost
Moor06.03.2014 15:12
ред: 06.03.2014 15:58
ac, большое спасибо!
Это всё прописывается прямо в полях "Время действия" и "Проект клиента" соответственно?
Не затруднит ли Вас дать 2-му способу по 1-го пункта небольшой примерчик?
wikipost
ac06.03.2014 16:17
Нет, указанные скрипты для поля "Правило". Поля "Время действия" и "Проект клиента" узко заточены на формат с одним параметром, больше ничего не вычисляют.

Для первого пункта второй способ... Антивирус в прокси у вас используется? (для упрощения примера я бы повесил обработчик вместо него)
wikipost
Moor06.03.2014 16:40
ред: 06.03.2014 16:56
ac, благодарю еще раз. Вернемся немного назад к TimeInterval: и UID @ GetUserGroups.
Извините, с синтаксисом правил я не знаком увы (не дадите ссылочку где почитать об этом можно?). Как дописать это в правило, если в нем уже записано "NF"? (Правило закрывает доступ определенным группам к BlackList'у на определенные интервалы времени)
Встроенный антивир не используется, стоит серверный Каспер.
wikipost
ac06.03.2014 17:10
NF закрывает не blacklist, а всё, к чему притронется. Поэтому по одиночке в ACL не ходит, а используется в комбинации с [предшествующими ему] условиями. Если все условия переезжают в "Правило", то для совместимости с NF надо будет делать так:

TimeInterval: 08:00-13:00 TimeInterval: 13:30-17:00 AND [IF] NF [ELSE] FALSE [THEN]
wikipost
ac06.03.2014 17:14
По первому пункту (определение медиа по content-type ответа и блокировка его) сложный способ такой:

:NONAME CONTENT-TYPE S" audio" SEARCH NIP NIP CONTENT-TYPE S" video" SEARCH NIP NIP OR CONTENT-TYPE S" application" SEARCH NIP NIP OR IF 5 THROW THEN ; ALSO __PROXY__ TO dOnBodyStart PREVIOUS


Этот фрагмент допишите в Eproxy\conf\OnStartup.rules.txt в конце перед строчкой "Listen:".
wikipost
ac06.03.2014 17:16
Этот способ с большой вероятностью заблокирует также скачивание программ, т.к. блокирует и тип "application" (многие сайты используют его, а не video, при отправке видеоконтента).
wikipost
Moor06.03.2014 17:31
TimeInterval: 08:00-13:00 TimeInterval: 13:30-17:00 AND [IF] NF [ELSE] FALSE [THEN]

Не работает. И по логу это правило не отрабатывает.
Вот правило
Номер элемента 19 Ресурс URLBlackList.txt Включен? да Роль Проект клиента IP клиента 192.168.0.2 // Экспериментирую на себе MAC Протокол Время действия Пароль Рубрика сайта Правило TimeInterval: 08:00-13:00 TimeInterval: 13:30-18:00 AND [IF] NF [ELSE] FALSE [THEN] Полномочия 0
wikipost
Moor06.03.2014 17:42
ред: 06.03.2014 17:45
ac
По первому пункту (определение медиа по content-type ответа и блокировка его) сложный способ такой:

Спасибо, красиво, но блокировать нужно не для всех — генеральный с замами может обидеться А для остальных — на определенные промежутки времени
wikipost
ac06.03.2014 18:05
ред: 06.03.2014 21:00
Moor пишет: Не работает. И по логу это правило не отрабатывает.
Вот правило

А если в правило поставить просто TRUE ?

Moor пишет: блокировать нужно не для всех


... CONTENT-TYPE S" application" SEARCH NIP NIP OR \ запрошен блокируемый ресурс S" TimeInterval: 08:00-13:00 TimeInterval: 13:30-18:00 AND" EVALUATE \ И в рабочее время UID @ GetUserGroups S" VIP" SEARCH NIP NIP 0= AND \ И НЕ vip-персонами IF 5 THROW THEN ...
wikipost
ac06.03.2014 21:01
Исправил ошибку в программе в предыдущем сообщении.
wikipost
Moor07.03.2014 09:29
ред: 07.03.2014 10:39
...CONTENT-TYPE S" application" SEARCH NIP NIP OR S" TimeInterval: 08:00-13:00 TimeInterval: 13:30-18:00 AND" EVALUATE ...
Спасибо, попробую попозже, поскольку это требует перезапуска acWEB, как я понимаю. Такие эксперименты лучше проводить в нерабочее время.

Пытаясь переключиться с SQL и Delphi, мозг от этого
AND [IF] NF [ELSE] FALSE [THEN]
вскипел и взорвался

Исправил ошибку в программе в предыдущем сообщении.

Извините за тупость, не могу уследить за мыслью, о чем Вы?

А если в правило поставить просто TRUE ?

Видно всё же я с утра туго соображаю. Если так
Номер элемента 13 Ресурс URLBlackList.txt Включен? да Роль Проект клиента users IP клиента MAC Протокол Время действия 08:30-17:00 Пароль Рубрика сайта Правило NF Полномочия 0
то всё работает как надо, уже давно. И в логе это правило присутствует.

Если так:
... Время действия Правило TimeInterval: 08:00-13:00 TimeInterval: 13:30-17:00 AND [IF] NF [ELSE] FALSE [THEN] Полномочия 0
или так
... Время действия Правило TimeInterval: 08:00-13:00 TimeInterval: 13:30-17:00 AND Полномочия 0
или так
... Время действия Правило TRUE Полномочия 0
то не работает и в логе не упоминается.
Хотя сама контрукция
TimeInterval: 08:00-13:00 TimeInterval: 13:30-17:00 AND
вполне себе работоспособна в другом правиле, которое открывает доступ к ресурсу http* группе users — проверил только что ради эксперимента. Куда копать? Для экспериментов построил совсем простую цепочку — одним правилом открыл этой группе доступ к http* (Полномочия=255), вторым пытаюсь этой же группе закрыть доступ (Полномочия=0) во временных интервалах к ресурсу UrlBlackList.txt.
В логе вижу доступ по разрешающему правилу и никаких упоминаний о запрещающем правиле. Стоит в запрещающем правиле время указать в поле "Время действия" и в поле "Правило" поставить "NF" — запрещающее правило начинает работать.
wikipost
ac07.03.2014 11:31
Moor пишет: > Исправил ошибку в программе в предыдущем сообщении.

Извините за тупость, не могу уследить за мыслью, о чем Вы?

Исправил скрипт, спустя 3 часа (ред: 06.03.2014 21:00). На случай, если вы взяли предыдущий вариант, я оставил заметку, чтобы взяли новый.

Moor пишет: Хотя сама контрукция
TimeInterval: 08:00-13:00 TimeInterval: 13:30-17:00 AND вполне себе работоспособна в другом правиле

Вот как раз в ней еще одна ошибка Потому что время не может быть одновременно в двух интервалах. Там должно быть OR вместо AND.
wikipost
Moor07.03.2014 11:54
ред: 07.03.2014 12:14
Ура победили!

Там должно быть OR вместо AND
Да, тут я и сам затупил

Остался последний вопрос.
Как в правилах объеденить
TimeInterval: 08:00-13:00 TimeInterval: 13:30-17:00 OR [IF] NF [ELSE] FALSE [THEN]
с
UID @ GetUserGroups =~ *проект1* UID @ GetUserGroups =~ *проект2* OR

Ну и заодно — простите уж за ламерство — как будет выглядеть объединение в условии более 2-х проектов, так же их перечисление с OR в конце?
wikipost
pig07.03.2014 12:24
TimeInterval: 08:00-13:00 TimeInterval: 13:30-17:00 OR UID @ GetUserGroups =~ *проект1* UID @ GetUserGroups =~ *проект2* OR AND [IF] NF [ELSE] FALSE [THEN]

Это если надо блокировать по времени и проекту.

Moor пишет: как будет выглядеть объединение в условии более 2-х проектов, так же их перечисление с OR в конце?

OR после каждого, начиная со второго.
wikipost
Moor07.03.2014 16:01
ред: 07.03.2014 16:13
ac, pig
Спасибо большое!
Последняя просьба.
Честно признаюсь -это выражение (то, что прописываем в OnStartup.rules.txt)
CONTENT-TYPE S" video" SEARCH NIP NIP OR S" TimeInterval: 08:00-13:00 TimeInterval: 13:30-17:00 OR" EVALUATE UID @ GetUserGroups S" проект1" SEARCH NIP NIP 0= AND IF 5 THROW THEN
я не понимаю. Если не трудно — объясните, пожалуйста (или дайте ссылку где почитать), очень хочется разобраться.
В т.ч. как прописать не одну группу, так?
UID @ GetUserGroups S" проект1" UID @ GetUserGroups S" проект2" OR
А почему запись синтаксически отличается от записи в правиле?
UID @ GetUserGroups =~ *проект1* UID @ GetUserGroups =~ *проект2* OR
В совершенстве владею асмом, сями, пасом, эскюэлем, но сие мне непостижимо. Стыдно, аж жуть
wikipost
pig07.03.2014 16:42
Синтаксис разный, потому что правило интерпретируется, и там допустимы специфические слова, которые не катят в компилируемом коде OnStartup.

S" проект1" SEARCH NIP NIP 0=

Это эквивалентно
=~ *проект1*

Собственно, набирайте по образу и подобию.
wikipost
pig07.03.2014 16:44
Для понимания синтаксиса: это язык Форт (Forth), на котором Eserv написан.
wikipost
Moor11.03.2014 14:55
Уважаемые знатоки !
Помогите, пожалуйста, разобраться еще в одном моменте.
Есть простая цепочка ACL:
1) Разрешение на использование http* группе users — полномочия=255
2) BlackList.txt, к которому этой группе доступ закрыт — полномочия=0, в правиле NF
3) запрет на доступ к сайтам с рубрикой no — полномочия=0
При доступе к неизвестному сайту в логе вижу 1)(255), 3)(0), рубрику no и TCP_MISS/200 90614 GET http://тарам-там-там.
Почему не блокируется рубрика no?
wikipost
ac11.03.2014 17:03
Если приоритет не указан, то полномочия складываются (по OR). Там под формой добавления ACL есть подсказка "... Элемент ACL срабатывает и соответствующие полномочия добавляются в список прав доступа пользователя в случае, если все непустые поля фильтра сработали. Если включен флаг "Приоритет", то при срабатывании соответствующей записи все остальные записи ACL игнорируются, действуют только полномочия, указанные в этой приоритетной записи."
wikipost
Работает на Eserv/5.05567 (10.02.2020)