Назад | Перейти на главную страницу

Squid proxy_protocol_access с acl dstdomain

Я настраиваю прокси-сервер Squid для работы в качестве шлюза для исходящего трафика. В среде, в которой это развернуто, есть клиент, который делает запрос через балансировщик нагрузки, который затем отправляет его на прокси-сервер squid. Чтобы не скрывать исходный IP-адрес клиента, балансировщик нагрузки использует протокол прокси. Squid (3.5+) "поддерживает" протокол прокси и позволяет использовать его в acl. Ниже приведена рабочая конфигурация, разрешающая доступ к прокси-протоколу, которую я видел:

acl localnet src 10.0.0.0/8
http_port 3128 require-proxy-header
http_port 3128
proxy_protocol_access allow localnet

Однако это не позволяет мне фильтровать последующие запросы на основе dstdomain. Я также пробовал

acl allowed dstdomain .google.com
acl localnet src 10.0.0.0/8
http_port 3128 require-proxy-header
http_port 3128
proxy_protocol_access allow localnet allowed

Но это приводит к тому, что мои запросы curl возвращаются с ошибкой 53 пустых запросов. я пробовал

acl allowed dstdomain .google.com
http_port 3128 require-proxy-header
http_port 3128
proxy_protocol_access allow allowed

Он ведет себя так же, как и выше. Я тоже пробовал

acl localnet src 10.0.0.0/8
http_port 3128 require-proxy-header
http_port 3128
proxy_protocol_access allow localnet

acl allowed dstdomain .google.com
http_access allow allowed
http_access deny all

И это приводит к тому, что весь трафик пропускается. (Я также пробовал поменять местами эти 2 блока с теми же результатами.

Я что-то упускаю? Есть ли у кого-нибудь рабочая конфигурация, позволяющая фильтровать домен и протокол прокси?

Посмотрев на это подробнее, я смог исправить конфигурацию, чтобы она работала. Это работает:

acl localnet src 10.0.0.0/8
http_port 3128 require-proxy-header
http_port 3128
proxy_protocol_access allow localnet

acl allowed dstdomain .google.com .yahoo.com
http_access allow allowed
http_access deny all

Хотя я пробовал это раньше, у меня возникла проблема с http_access deny all был указан выше.

Proxy_protocol_access просто устанавливает, откуда может быть принят протокол прокси. При просмотре cache.log при перезагрузке кажется, что любая фильтрация dstdomain в proxy_protocol_access фактически не разрешена.

Примечание: правила применяются в порядке появления в конфигурации и по мере совпадения. Таким образом, если выше появляется отказ, запрос отклоняется.

Дополнительная информация журнала может быть предоставлена ​​для устранения неполадок с помощью debug_options конкретно debug_options 3,28 для устранения неполадок с файлом конфигурации. (Подробнее здесь: http://wiki.squid-cache.org/KnowledgeBase/DebugSections)

http://www.squid-cache.org/Doc/config/proxy_protocol_access/