Squid proxy_protocol_access com dstdomain acl

1

Estou configurando um proxy do squid para funcionar como uma espécie de gateway para saída de tráfego. O ambiente no qual isso é implementado tem um cliente que faz uma solicitação por meio de um balanceador de carga, que o envia ao proxy do squid. Para não ofuscar o ip do cliente original, o balanceador de carga usa o protocolo de proxy. O Squid (3.5+) "suporta" o protocolo do proxy e permite que ele seja usado em um acl. Uma configuração de trabalho que vi para permitir o acesso ao protocolo de proxy está abaixo:

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

No entanto, isso não me permite filtrar as solicitações subsequentes com base no dstdomain. Eu também tentei

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

Mas isso faz com que minhas solicitações de curvatura retornem com solicitações vazias de erro 53. Eu tentei

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

Isso tem o mesmo comportamento que o diretamente acima. Eu também tentei

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

E isso resulta em todo o tráfego permitido. (Eu também tentei trocar esses dois blocos com os mesmos resultados.

Estou faltando alguma coisa? Alguém tem uma configuração funcional que permita o protocolo de proxy e de filtragem de domínio?

    
por jshack.anc 28.03.2017 / 01:02

1 resposta

1

Depois de ver isso mais, consegui corrigir a configuração para que funcionasse. Isso funciona:

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

Embora eu já tenha tentado isso antes, encontrei um obstáculo com http_access deny all listado acima.

O proxy_protocol_access simplesmente estabelece onde o protocolo do proxy pode ser aceito. Ao olhar para o cache.log ao recarregar, parece indicar que qualquer filtragem dstdomain em proxy_protocol_access não é realmente permitida.

Como uma observação: as regras são aplicadas em ordem de aparição na configuração e conforme as coisas correspondem, elas são aplicadas. Então, se uma negação aparecer acima, a solicitação é negada.

Informações adicionais de registro podem ser fornecidas para a solução de problemas, usando o debug_options especificamente debug_options 3,28 para a solução de problemas do arquivo de configuração. (Mais informações aqui: link )

link

    
por 28.03.2017 / 19:26