The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  вход/выход  слежка  RSS
"Запрет доступа на саты по времени."
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Настройка Squid и других прокси серверов (Public)
Изначальное сообщение [ Отслеживать ]

"Запрет доступа на саты по времени."  
Сообщение от Jss email(??) on 28-Янв-08, 12:51 
Гуру, помогите пожалуйста разобраться:
допустим на mail.ru есть вещи типа знакомства, круг итд так вот, необходимо закрыть доступ к этому делу в диапазоны времени и разрешить при этом использовать доступ к почте на мейле через веб интерфейс.
У меня получилось закрыть доступ ко всему на mail.ru и оставить доступ к почте но если при заходе в браузер при авторизации нажимаешь отмену то получаеться ползать неавторизированному пользователю по white листу.

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
# ----- user
acl test proxy_auth test
# ----- raznoe
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 SSL_ports port 443
acl Safe_ports port 80        # http
acl Safe_ports port 25        #
acl Safe_ports port 21        # ftp
acl Safe_ports port 443        # https
acl Safe_ports port 70        # gopher
acl Safe_ports port 210        # wais
acl Safe_ports port 1025-65535    # unregistered ports
acl Safe_ports port 280        # http-mgmt
acl Safe_ports port 488        # gss-http
acl Safe_ports port 591        # filemaker
acl Safe_ports port 777        # multiling http
acl CONNECT method CONNECT
acl timezp time 08:00-13:00
acl timezp1 time 14:00-18:00
acl ftpproto proto ftp
acl media urlpath_regex -i \.mp3$ \.asf$ \.wma$ \.zip$ \.rar$ \.avi$ \.arj$ \.mpeg$ \.mpg$ \.exe$ \.com$ \.ex$ \.7g$ \.tar$
#
# ----- spiski
acl socnet url_regex -i "/proxy/list/socnet"
acl good url_regex -i "/proxy/list/good"
acl bad url_regex -i "/proxy/list/bad"
#
# ----- access
http_access allow SSL_ports
icp_access allow all
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
http_access deny CONNECT !SSL_ports
http_access deny manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny all
#
# ----- delay
delay_pools 1

delay_class 1 1
delay_access 1 allow test
delay_access 1 deny all
delay_parameters 1 -1/-1

в листе "good"
http://mail.ru
win.mail.ru

в листе "socnet"
\mail.ru

Высказать мнение | Ответить | Правка | Cообщить модератору

 Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Запрет доступа на саты по времени."  
Сообщение от Andrey Mitrofanov on 28-Янв-08, 14:01 
Сколько раз твердили миру... 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
#

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

2. "Запрет доступа на саты по времени."  
Сообщение от Jss email(??) on 28-Янв-08, 15:00 
(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. Понимаю что косячу но не понимаю где.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

3. "Запрет доступа на саты по времени."  
Сообщение от Andrey Mitrofanov on 28-Янв-08, 15:17 
>Получилось так

(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
#а может и нет. %)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

4. "Запрет доступа на саты по времени."  
Сообщение от Jss email(??) on 28-Янв-08, 15:43 
Спасибо Андрей.

>># Разрешаем 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 в это время, и как прикрутить сюда пользователя тест а не всех авторизовавшихся, или я совсем ничего не понимаю ?

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

5. "Запрет доступа на саты по времени."  
Сообщение от Jss email(??) on 28-Янв-08, 16:26 
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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

6. "Запрет доступа на саты по времени."  
Сообщение от Andrey Mitrofanov on 28-Янв-08, 17:39 
>>># Если пользователь 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 -- это я твоего "хотения" не "разумел"... Вообще, конфигурация, которую я написал скорее пример в попытке "научить читать". Понимание вырабатывай :) , потом можно будет продолжить? ;-)

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

7. "Запрет доступа на саты по времени."  
Сообщение от Jss email(??) on 29-Янв-08, 09:17 
Спасибо, очень помог, ночное чтение манов рулит :)
проблема отсутствия времени сказывается на понимании, сорри за тупость.
Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

8. "Запрет доступа на саты по времени."  
Сообщение от Andrey Mitrofanov on 29-Янв-08, 10:58 
>Спасибо, очень помог, ночное чтение манов рулит :)

Рад помочь, приятно видеть рождение понимания. :-D
>проблема отсутствия времени сказывается на понимании, сорри за тупость.

Этт не тупость, просто "более сложные" проблемы не пешаются с наскока и редактирования конфигов "на глазок". Squid, exim, .....

Успехов!

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

9. "Запрет доступа на саты по времени."  
Сообщение от Jss email(??) on 29-Янв-08, 16:51 
>>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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

10. "Запрет доступа на саты по времени."  
Сообщение от Jss email(??) on 29-Янв-08, 17:24 
Все допер, спасибо.

>>>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

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

11. "читаем по-тихоньку? начинай писать!"  
Сообщение от Andrey Mitrofanov on 29-Янв-08, 17:29 
>Но при этом 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 в этом %) ТЗ ничего не было

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

12. "читаем по-тихоньку? начинай писать!"  
Сообщение от Jss email(??) on 29-Янв-08, 17:59 
Да нет фишка именно в то что получилось, в смысле вот как хотел.
      |
      |
     \|/
      \
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 разрешен всегда и еще плюс к этому в обед можно и доп услугами майла воспользоваться, просто посчитал что закрывать все сервисы сайта перечисляя их не стоит, они могут добавляться, проще закрыть все и разрешить только то что нужно.

Отец всегда говорит.... читай МАНЫ, не надо беспокоить людей.

Высказать мнение | Ответить | Правка | Наверх | Cообщить модератору

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру