- Запрет доступа на саты по времени., Andrey Mitrofanov, 14:01 , 28-Янв-08 (1)
Сколько раз твердили миру... rtfm... что 1)http_access выполняются сверху вниз до первого "совпавшего", следующие уже не проверяются и _его_ действие (allow|deny) используется для; 2) образцы в одном acl (=по имени) "складываются" по ИЛИ, а в одной строке *_access по И. Вооружившись этим Знанием и надо читать, что ж ты сам себе написал. Ж*)>acl timezp time 08:00-13:00 >acl timezp1 time 14:00-18:00 Если они ^^ не используются по отдельности, "собираем" в один acl: acl timezp time 08:00-13:00 14:00-18:00 то же, что acl timezp time 08:00-13:00 acl timezp time 14:00-18:00 , но короче. Сравни с определением Safe_ports. ># ----- access >http_access allow SSL_ports Тут всем можно. = Независимо от пароля и времени. >http_access deny bad >http_access deny media >http_access allow ftpproto >http_access allow good Эти ^^^ тоже -- независимо от пароля и времени. >http_access deny socnet timezp >http_access deny socnet timezp1 >http_access allow test = пользователя test не проверять дальше и просто пустить. Заметь, что тех, кого пустили в правилах allow выше^^^ может даже и пароль не спрашивать. >http_access deny CONNECT !SSL_ports >http_access deny manager localhost ? allow? ^^^ :) >http_access deny manager >http_access deny !Safe_ports >http_access deny all ># Я бы организовывал так: сначала все правила deny, которые "общие", потом правила чётко выбирающие что именно можно, потом финальное deny all. что-нибудь вроде --- http_access deny CONNECT !SSL_ports http_access deny !Safe_ports http_access deny bad http_access deny media #"Локальная" ветка allow-listed+1*deny-all~ , для одного протокола http_access allow manager localhost http_access deny manager #про авторизацию надо отдельно смотреть... #http_access allow test #например, пускать [дальше] только тех, кто сказал правильный пароль~~ #?acl passed proxy_auth REQUIRED #?http_access deny !passed #если я не напутал чего http_access allow SSL_ports http_access allow ftpproto http_access allow good http_access allow socnet !timezp http_access deny all #
- Запрет доступа на саты по времени., Jss, 15:00 , 28-Янв-08 (2)
(squid/2.6.STABLE18)Получилось так # Говорим чем будем авторизовать и где лежит auth_param basic program /usr/local/squid/libexec/ncsa_auth /etc/squid/internet_users auth_param basic children 5 auth_param basic realm Squid proxy-caching web server auth_param basic credentialsttl 2 hours auth_param basic casesensitive off # Создал в списках (ncsa_auth) пользователя test, в alc делаю раздельно для каждого # пользователя для дальнейшего использования в delay_pools acl test proxy_auth test # С этим все понятно acl manager proto cache_object acl localhost src 127.0.0.1/255.255.255.255 acl all src 0.0.0.0/0.0.0.0 acl icq_ports port 443 #HTTPS acl Safe_ports port 80 acl CONNECT method CONNECT acl timezp time 08:00-13:00 14:00-18:00 acl ftpproto proto ftp acl media urlpath_regex -i \.mp3$ # Создал списки acl socnet url_regex -i "/proxy/list/socnet" acl good url_regex -i "/proxy/list/good" acl bad url_regex -i "/proxy/list/bad" # Разрешаем 443 http_access allow icq_ports # не совсем понимаю http_access deny CONNECT icq_ports # запрещаем конекты на порты http_access deny !Safe_ports # все понятно http_access deny bad http_access deny media http_access allow manager localhost http_access deny manager # Если пользователь test прошел авторизацию то разрешить http_access allow test # Разрешаем ftp http_access allow ftpproto # разрешаем белый список http_access allow good # Запрещаем socnet в диапазон времени timezp http_access deny socnet timezp http_access deny all # делаем для пользователя test ограничения по скорости delay_pools 1 delay_class 1 1 delay_access 1 allow test delay_access 1 deny all delay_parameters 1 3000/3000 При таком конфиге получается что пользователю test после авторизации можно ходить не смотря на списки socnet и good а если не авторизовался то ничего нельзя кроме 443, а нужно чтоб в timezp было закрыт доступ на socnet но разрешен good и все это только авторизованным. P.S. Понимаю что косячу но не понимаю где.
- Запрет доступа на саты по времени., Andrey Mitrofanov, 15:17 , 28-Янв-08 (3)
>Получилось так (2) ># Разрешаем 443 >http_access allow icq_ports Это вообще-то не icq :) в общем случае... ># не совсем понимаю Сам написал и не понял, то есть? :)) >http_access deny CONNECT icq_ports ># Если пользователь test прошел авторизацию то разрешить >http_access allow test (1) ># Разрешаем ftp >http_access allow ftpproto ># разрешаем белый список >http_access allow good ># Запрещаем socnet в диапазон времени timezp >http_access deny socnet timezp Обрати внимание, что это ^^^ **не** одно и тоже, что http_access allow socnet !timezp как и (1) не одно и то же, что http_access deny !test >http_access deny all >При таком конфиге получается что пользователю test после авторизации можно ходить не >смотря на списки socnet и good а если не авторизовался то >ничего нельзя кроме 443 Именно это :) и написано в конфигурации.... >, а нужно чтоб в timezp было закрыт >доступ на socnet но разрешен good и все это только авторизованным. #Вот: acl passed proxy_auth REQUIRED http_access deny !passed http_access allow good http_access allow socnet !timezp http_access deny all #-именно то, что ты написал. Но, боюсь, не то, что _хотел_. :-D >P.S. Понимаю что косячу но не понимаю где. #Вот так по-проще будет... может быть: acl passed proxy_auth REQUIRED http_access allow passed good http_access allow passed socnet !timezp http_access deny all #а может и нет. %)
- Запрет доступа на саты по времени., Jss, 15:43 , 28-Янв-08 (4)
Спасибо Андрей.>># Разрешаем 443 >>http_access allow icq_ports >Это вообще-то не icq :) в общем случае... Это понятно. HTTPS >># не совсем понимаю >Сам написал и не понял, то есть? :)) >>http_access deny CONNECT icq_ports Ага, растолкуйте пожалуйста (если несложно) >># Если пользователь test прошел авторизацию то разрешить >>http_access deny socnet timezp >Обрати внимание, что это ^^^ **не** одно и тоже, что >http_access allow socnet !timezp >как и (1) не одно и то же, что >http_access deny !test Не совсем понял, но имхо выражение "!timezp" говорит о том что - все timezp а я в acl указал acl timezp time 08:00-13:00 14:00-18:00 >#-именно то, что ты написал. >Но, боюсь, не то, что _хотел_. :-D :-D именно так >#Вот так по-проще будет... может быть: >acl passed proxy_auth REQUIRED >http_access allow passed good >http_access allow passed socnet !timezp >http_access deny all >#а может и нет. %) Точно, наверное так и должно быть, ааа только не понял почему socnet allow мне же надо deny в это время, и как прикрутить сюда пользователя тест а не всех авторизовавшихся, или я совсем ничего не понимаю ?
- Запрет доступа на саты по времени., Jss, 16:26 , 28-Янв-08 (5)
acl test proxy_auth test # авторизация на пользователя test http_access allow test good # разрешаем пользователю тест лезть на url из списка good http_access allow test socnet !timezp # разрешаем пользователю тест лезть на url из списка socnet в диапазон времени указанный в timezp http_access deny all # запрещяем все всем.Но тогда получается что пользователь никуда не может ходит кроме списков разрешения, а мне надо чтоб он ходил везде кроме списка socnet во время timezp но при этом запрете мог всегда пройти на URL списка good
- Запрет доступа на саты по времени., Andrey Mitrofanov, 17:39 , 28-Янв-08 (6)
>>># Если пользователь test прошел авторизацию то разрешить >>>http_access deny socnet timezp >>Обрати внимание, что это ^^^ **не** одно и тоже, что ещё раз! :) Hint^^^, hint^^^ ! >>http_access allow socnet !timezp >Не совсем понял, но имхо выражение "!timezp" говорит о том что - >все timezp >а я в acl указал acl timezp time 08:00-13:00 14:00-18:00 !timezp = "условие timezp не совпало" ##http_access allow socnet !timezp [[если предыдущие правила не дали результата, "не сопоставились",]] ~разрешить доступ, если( URL сопоставился с "socnet" И время НЕ в "timezp" ) [[, иначе продолжить сопоставлять далее по списку правил.]] >>#Вот так по-проще будет... может быть: >>acl passed proxy_auth REQUIRED ((-->>)) Перечитай "Сокровенное Знание" из поста#1. Первый абзац! Дополнение: ! означает "не". Читаем (представим, для простоты, что есть только эти 3 строки): >>http_access allow passed good >>http_access allow passed socnet !timezp >>http_access deny all if( user.passed() && url.good()) return ALLOW; else if (user.passed() && url.socnet() && !time.timezp() ) return ALLOW; else return DENY; >>#а может и нет. %) Повторять с ((-->>)) до просветления, пока хотябы в "три строчки" не въедешь! :)) >Точно, наверное так и должно быть, ааа только не понял почему socnet >allow мне же надо deny в это время "В это время" и получится deny: по _третьему_ правилу --> когда timezp _сопоставится_, !timezp _не_ сопоставится, и второе правило _не_ сработает. >, и как прикрутить сюда пользователя тест а не всех авторизовавшихся >, или я совсем ничего не понимаю ? Ну, про REQUIERED -- это я твоего "хотения" не "разумел"... Вообще, конфигурация, которую я написал скорее пример в попытке "научить читать". Понимание вырабатывай :) , потом можно будет продолжить? ;-)
- Запрет доступа на саты по времени., Jss, 09:17 , 29-Янв-08 (7)
Спасибо, очень помог, ночное чтение манов рулит :) проблема отсутствия времени сказывается на понимании, сорри за тупость.
- Запрет доступа на саты по времени., Andrey Mitrofanov, 10:58 , 29-Янв-08 (8)
>Спасибо, очень помог, ночное чтение манов рулит :)Рад помочь, приятно видеть рождение понимания. :-D >проблема отсутствия времени сказывается на понимании, сорри за тупость. Этт не тупость, просто "более сложные" проблемы не пешаются с наскока и редактирования конфигов "на глазок". Squid, exim, ..... Успехов!
- Запрет доступа на саты по времени., Jss, 16:51 , 29-Янв-08 (9)
>>acl passed proxy_auth REQUIRED >>http_access allow passed good >>http_access allow passed socnet !timezp >>http_access deny allПолучилось что если passed авторизовался то говорим ему что ходить можно только на список good, но как только время НЕ timezp разрешаем ему еще в догонку ползать на url'ки из списка socnet, это осилил :/ Но при этом passed не может ходить по url которых нет в списке. но как сделать чтоб можно было ходить куда угодно в любое время но в timezp было запрещенно только \mail.ru но при этом разрешено www.mail.ru и win.mail.ru
- Запрет доступа на саты по времени., Jss, 17:24 , 29-Янв-08 (10)
Все допер, спасибо.>>>acl passed proxy_auth REQUIRED >>>http_access allow passed good timezp >>>http_access deny passed socnet timezp >>>http_access allow passed >>>http_access deny all - читаем по-тихоньку? начинай писать!, Andrey Mitrofanov, 17:29 , 29-Янв-08 (11)
>Но при этом passed не может ходить по url которых нет в >списке. >но как сделать чтоб можно было ходить куда угодно в любое время >но в timezp было запрещенно только \mail.ru но при этом разрешено >www.mail.ru и win.mail.ru acl goodmailru .... acl badmailru .... acl timezpmailru #acl passed ... http_access deny timezpmailru badmailru !goodmailru http_access allow all Похоже? PS: а про passed в этом %) ТЗ ничего не было
- читаем по-тихоньку? начинай писать!, Jss, 17:59 , 29-Янв-08 (12)
Да нет фишка именно в то что получилось, в смысле вот как хотел. | | \|/ \ acl test proxy_auth test http_access allow test good timezp # www.mail.ru win.mail.ru http_access deny test socnet timezp # \mail.ru http_access allow test http_access deny allПросто в данной конфигурации добился что вне рабочее время (к примеру mail.ru) доступ к услугам типа знакомств и тд на mail.ru забанен но при этом доступ к почте на mail.ru разрешен всегда и еще плюс к этому в обед можно и доп услугами майла воспользоваться, просто посчитал что закрывать все сервисы сайта перечисляя их не стоит, они могут добавляться, проще закрыть все и разрешить только то что нужно. Отец всегда говорит.... читай МАНЫ, не надо беспокоить людей.
|