Squid proxy_protocol_access с dstdomain acl

Я настраиваю прокси-сервер 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 блока с теми же результатами.

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

1
задан 28 March 2017 в 02:02
1 ответ

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

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/

1
ответ дан 3 December 2019 в 23:32

Теги

Похожие вопросы