Nп/п : 67 из 91
От : Nil A 2:5015/46 01 апр 26 23:10:46
К : Dmitriy Romanov 01 апр 26 23:14:01
Тема : сквид и динамические правила
----------------------------------------------------------------------------------
@MSGID: 2:5015/46 69cd7c5f
@REPLY: 2:6078/1 69cd791c
@CHRS: CP866 2
@TZUTC: 0300
@TID: hpt/lnx 1.9
Hello, Dmitriy!
Wednesday April 01 2026 21:55, from Dmitriy Romanov -> All:
DR> А вот тут у меня странная хотелка возникла. Вдруг кто знает, можно ли
DR> в сквиде это реализовать штатными средствами. Хочется чтобы описать
DR> как-нибудь правило, что если запрос ему соответствует, то
DR> соответствующий src или юзер добавляется в список, который можно
DR> использовать в дальнейшем как описание acl для другого правила. При
DR> этом по истечении заданного промежутка времени с последнего запроса с
DR> этого src, подпадающего под условия правила, этот src из этого списка
DR> удалялся. Есть ли там такая возможность?
А в ГПТ сходить?
В Squid это реализуется через механизм external_acl_type в связке с
хелпером session. Это штатное средство, которое идет в комплекте с
большинством дистрибутивов.
Хелпер squid_session (или ext_session_acl) поддерживает базу данных
активных сессий. Когда запрос попадает под правило, хелпер проверяет, есть ли
запись в базе. Если нет - создает. Если есть - обновляет время последнего
обращения.
squid.conf, мы хотим, чтобы при посещении "триггерного" сайта юзер
попадал в список "под наблюдением" на 30 минут.
===
# -t 1800 означает время жизни записи 1800 секунд (30 минут) после
последнего хита
external_acl_type session_tracker ttl=60 negative_ttl=0 children=1 %SRC
/usr/lib/squid/ext_session_acl -t 1800 -b /var/lib/squid/session.db
# ACL для проверки/активации сессии
acl session_active external session_tracker
# ACL для триггера (то, на что должен зайти юзер, чтобы попасть в список)
acl trigger_url dstdomain .evil-site.com
# ACL для ограничения тех, кто уже в списке
acl restricted_access http_access deny ... # (см. логику ниже)
===
# Если зашел на триггерный сайт - помечаем сессию (всегда разрешаем,
но хелпер запишет IP)
http_access allow trigger_url session_active
# Если сессия уже активна (юзер в списке), запрещаем ему доступ куда-то еще
http_access deny !trigger_url session_active
Best Regards, Nil
--- GoldED+/LNX 1.1.5-b20260305
* Origin: Gemini can make mistakes, so double-check it (2:5015/46)
SEEN-BY: 46/49 50/109 104/117 221/6 240/1120 301/1
341/66 450/1024 452/28
SEEN-BY: 455/19 460/58 463/68 5000/111 5010/352
5015/42 46 120 255 519
SEEN-BY: 5019/40 400 5020/113 545 620 715 830 846
848 1042 2992 4441 12000
SEEN-BY: 5022/128 5030/49 115 500 1081 1474
5050/151 5053/51 58 5054/89
SEEN-BY: 5058/104 5059/37 5060/900 5061/133 5083/444
6035/4 6078/80 6090/1
@PATH: 5015/46 5020/1042 4441