Permitir um determinado caminho de URL com o Squid

4

Estou usando o Squid 3.4 no Debian, e quero saber como permitir certas sub-URLs enquanto bane o resto delas.

Particularmente, quero proibir o acesso a reddit.com/*, mas permitir acesso a reddit.com/r/foo/* e reddit.com/r/foo /

acl bad url_regex reddit\.com.*
acl good url_regex reddit\.com.*foo*

http_access deny bad
http_access allow good

...
http_access allow localnet
http_access allow localhost
http_access deny all

Este código parece não funcionar, e tudo no reddit.com acaba sendo bloqueado. Como posso obter a configuração que quero?

Editar: configuração atualizada que ainda não funciona:

acl good url_regex http(s)?://(www\.)?reddit\.com/r/foo.*
acl bad url_regex http(s)?://(www\.)?reddit\.com.*

http_access allow good
http_access deny bad

...
http_access allow localnet
http_access allow localhost
http_access deny all

Isso tem o efeito oposto do código anterior; permite acesso a todo o reddit.com (que eu não quero).

    
por unsi 15.03.2015 / 02:51

4 respostas

2

Para qualquer outra pessoa como eu que tropeça neste post à procura de uma resposta. O motivo é que o squid não consegue ver o URL completo para solicitações HTTPS, apenas o domínio.

Você pode fazer um url_regex apenas para conexões HTTP. Você tem que fazer um dstdomain para conexões HTTPS.

A forma como o proxy CONNECT funciona e não a questão do Squid é importante.

    
por 24.03.2017 / 09:14
1

A ordem é importante. Coloque a linha de permissão antes da negação.

Além disso, url_regex corresponde a um URL inteiro, incluindo http: //, portanto, você precisa alterar seus regexes. Lembre-se de reiniciar ou recarregar o squid após as alterações.

    
por 15.03.2015 / 09:55
1

é descrito aqui; link

Minha configuração atual é assim:

acl special_client src 10.1.255.93
acl special_url url_regex ^http://ppa.launchpad.net/adiscon/v8-devel/ubuntu/.*
http_access allow special_client special_url
http_access deny special_url
    
por 15.03.2016 / 13:34
0

Acho que você está procurando algo assim:

http_access allow good
http_access deny bad !good

Porque, na verdade, a good regexp corresponde à bad regexp e você precisa usar o conector AND na segunda linha.

Note que você pode depurar o acl com esta linha:

debug_options ALL,1 28,3 33,2
    
por 15.03.2016 / 16:06