[squid] ordem do http_access [RESOLVIDO]

1. [squid] ordem do http_access [RESOLVIDO]

Andre
rocky

(usa openSUSE)

Enviado em 02/11/2011 - 12:55h


http_port 3128 transparent
visible_hostname InternetServer

acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews

acl all src 0.0.0.0/24
acl rede_interna src 192.168.1.0/24

acl ACESSO_LIBERADO src "/etc/squid/ctrl/acessoliberado.txt"
acl SITES_LIBERADOS url_regex -i "/etc/squid/ctrl/sitesliberados.txt"

acl streaming rep_mime_type ^video/x-ms-asf
acl proibir_musica urlpath_regex -i \.aif$ \.aifc$ \.aiff$ \.asf$ \.asx$ \.avi$ \.au$ \.m3u$ \.med$ \.mp3$ \.m1v$ \.mp2$ \.mp2v$ \.mpa$ \.mov$ \.mpe$ \.mpg$ \.mpeg$ \.ogg$ \.pls$ \.ram$ \.ra$ \.ram$ \.snd$ \.wma$ \.wmv$ \.wvx$ \.mid$ \.midi$ \.rmi$

http_access allow ACESSO_LIBERADO
http_reply_access deny streaming
http_access deny proibir_musica
http_access deny !Safe_ports
http_access deny !SITES_LIBERADOS
http_access allow rede_interna
http_access deny all

Boa tarde pessoal!

Li em vários sites que o squid lê o arquivo de cima pra baixo, e se por exemplo, a regra se aplicar ao primeiro http_access allow ACESSO_LIBERADO então ele NÃO passará pelas regras seguintes correto?

Agora imaginemos o cenário 2: O computador não tem acesso total, e quer acessar um site "*.gov.br". Ele irá cair na regra SITES_LIBERADOS e parar por ali correto? Logo a regra rede_interna não será executada.

Mas não é isso que acontece, sem a regra rede_interna, mesmo eu acessando um site liberado, o squid bloqueia.

Por que? Poderiam me explicar melhor?


  


2. Re: [squid] ordem do http_access [RESOLVIDO]

Daniel Lara Souza
danniel-lara

(usa Fedora)

Enviado em 02/11/2011 - 13:00h

faz assim
deixe http_access allow sempre em 1º e os deny depois
e testa




3. Re: [squid] ordem do http_access [RESOLVIDO]

Andre
rocky

(usa openSUSE)

Enviado em 02/11/2011 - 18:20h

Então, mas por que mesmo?


4. ACL

Adriano Rodrigues Balani
balani

(usa Slackware)

Enviado em 02/11/2011 - 22:32h

Amigo vamos supor que vc tem duas classes, sendo:

Diretoria: todos os sites liberados;

Usuarios: Com varias restrições


Ficaria assim:


acl Diretoria src "/etc/squid/ctrl/diretoria.txt"
acl Usuarios src "/etc/squid/ctrl/usuarios.txt"
acl Sites_Bloqueados url_regex -i "/etc/squid/ctrl/sites_bloqueados.txt"


http_access allow Diretoria
http_access deny Sites_Bloqueados
http_access allow Usuarios
http_access allow rede

O principio basico do funcionamento é, que o Squid faz a leitura do arquivo conf de cima para baixo, sendo assim
quando liberamos primeiro a ACL Diretoria, essa ACL terá acesso total inclusive tendo abaixo uma ACL bloqueando sites, e já
a ACL Usuarios não conseguirá acessar os sites contidos na ACL Sites_Bloqueados, porque o bloqueio vem primeiro.


5. Re: [squid] ordem do http_access [RESOLVIDO]

Andre
rocky

(usa openSUSE)

Enviado em 03/11/2011 - 13:34h

balani: Entendi. Ele vai executando as regras até se encaixar em uma. Quando ele se encaixar na regra de Usuários, por ex, ele já terá executado as outras regras, correto?


6. Re: [squid] ordem do http_access [RESOLVIDO]

Adriano Rodrigues Balani
balani

(usa Slackware)

Enviado em 03/11/2011 - 16:40h

Isso mesmo, a ordem vai influciar no resultado. Seu raciocinio está correto.