На рабочем Squid понадобилось ограничить доступ на один из сайтов. В squid.conf были добавлены следующие строки
acl special_client src 192.168.200.1
acl special_url url_regex ^http://www.special.com
http_access allow special_client special_url
http_access deny special_urlПосле перезагрузки squid зайти ни с указанного, ни с других адресов не удалось. Убрав вышедобавленные правила, я снова попытался зайти на указанный сервер, но попытка была безуспешной.
После включения отладки в cashe.log было обнаружено, что вместо метода GET squid почему-то использует CONNECT при подсоединении к этому ресурсу. Строка в cashe.log имеет вид:
2003/01/14 11:07:34| The request CONNECT www.special.com:19638 is DENIED,, because it matched 'SSL_ports'Как squid сказать, чтобы использовал метод GET?
>На рабочем Squid понадобилось ограничить доступ на один из сайтов. В squid.conf
>были добавлены следующие строки
>acl special_client src 192.168.200.1
>acl special_url url_regex ^http://www.special.com
>http_access allow special_client special_url
>http_access deny special_url
>
>После перезагрузки squid зайти ни с указанного, ни с других адресов не
>удалось. Убрав вышедобавленные правила, я снова попытался зайти на указанный сервер,
>но попытка была безуспешной.
>После включения отладки в cashe.log было обнаружено, что вместо метода GET squid
>почему-то использует CONNECT при подсоединении к этому ресурсу. Строка в cashe.log
>имеет вид:
>2003/01/14 11:07:34| The request CONNECT www.special.com:19638 is DENIED,, because it matched 'SSL_ports'
>
>
>Как squid сказать, чтобы использовал метод GET?посмотри внимательно что ты написал !
http_access allow special_client special_url
^^^^^^^^^^^
http_access deny special_urlты разрешил этот аксель и потом его же запрещаешь ! второе правило на deny уже не будет работать поскольку выше ты уже разрешил
правильно так:
http_access allow special_client
http_access deny special_url
>>имеет вид:
>>2003/01/14 11:07:34| The request CONNECT www.special.com:19638 is DENIED,, because it matched 'SSL_ports'
>>
>>
>>Как squid сказать, чтобы использовал метод GET?
>
>посмотри внимательно что ты написал !
>http_access allow special_client special_url
>http_access deny special_urlЗдесь синтаксис верен. сначала для указанного адреса разрешаем special_url, а затем для всех остальных его запрещаем.
Но проблема не в том. После того, как я удалил свои правила, squid все время для этого url пытается использовать метод CONNECT вместо GET. Почему?
>>>имеет вид:
>>>2003/01/14 11:07:34| The request CONNECT www.special.com:19638 is DENIED,, because it matched 'SSL_ports'
>>>
>>>
>>>Как squid сказать, чтобы использовал метод GET?
>>
>>посмотри внимательно что ты написал !
>>http_access allow special_client special_url
>>http_access deny special_url
>
>Здесь синтаксис верен. сначала для указанного адреса разрешаем special_url, а затем для
>всех остальных его запрещаем.неправильно ты говоришь !
правильно как я говорил ранее:
http_access allow special_client
http_access deny special_urlсоветую проверить
а вот почему у тебя идет запрос на www.special.com:19638
в порт 19638 - это вопрос ! порт 19638 сквид не проксит потому и ругается, может у тебя где-то в firewall какой-то redirect прописан ?
>>Здесь синтаксис верен. сначала для указанного адреса разрешаем special_url, а затем для
>>всех остальных его запрещаем.
>
>неправильно ты говоришь !
>правильно как я говорил ранее:
>http_access allow special_client
>http_access deny special_url
>
Смею несогласиться с iiws
доступ вида
http_access allow special_client special_url
http_access deny special_url
Вполне жизнеспособен и отвечает поставленой задаче.
Разрешает доступ при совпадении ОБОИХ acl ОДНОВРЕМЕННО, а потом запрещает соединение. Так что автор поста прав с этим. У меня такие доступы живут и работают на ура. Более того, на них основаны более сложные права доступа вовне и доступа к самому кэшу. Вариант, когда не сработает такое условие - это когда в одной строке будет указано взаимоисключающее значение acl-ов
Например
acl user1 src 10.10.10.10/255.255.255.255
acl user2 src 10.10.10.20/255.255.255.255
http_access allow user1 user2
Так как в данном случае невозможно совпадание адресов одновременно.
(SQUID FAQ)
Другим вариантом для автора поста будет будет
http_access deny special_url !special_clientВопрошающему нужно ещё раз пересмотреть свой squid.conf на предмет нахождения ошибок, допущенных в конфигурировании (иногда такое случается случайно) Судить, почему перестало работать то, что раньше работало - на основании его сообщения - довольно трудно, можно только догадываться.
Желательно видеть весь конфиг.
Удачи.