Alguns modelos de ACL no Squid.
Os modelos, comandos ou dicas podem não atender as suas necessidades, não ser compatível com sua instalação, use como referencia, tente adaptar ao seu ambiente.
acl ipinterno dst 192.168.1.3/32 http_access allow ipinterno all
regex = (expressão regular = regular expression).
O ponto sozinho é um coringa e pode ser interpretado como qualquer carcter no lugar dele, para identificar arquivos .exe tem que usar a barra invertida para escapar da interpretação, em lugar de .exe use \.exe para indicar que se trata de .exe
url_regex
pesquisa com palavras-chave na URL, modo genérico.
urlpath_regex
dstdom_regex
^
inicio de linha
$
final de linha.
\.exe$
procura somente .exe no final de linha
\.exe($|\?)
procura no final de linha e também as ocorrencias exe?qualquercaracter em qualquer parte da da linha.
\.scr[\?\&]
procura scr mais um caracter qualquer, neste caso não tem sentido usar \&, não entendi mas já encontrei ocorrencias com scr&, achei melhor testar com este exemplo mas ainda não cheguei a conclusão se é necessário ou não.
Falta testar também com .* neste formato \.scr[\?].*
ACL do tipo url_regex, as regras tem que ser em formato regex.
ACL para negar download de qualquer .exe, executável do windows.
Exemplo de ACL para bloquear URL que termina em .exe ou contenha .exe? em qualquer parte da URL.
acl exetodos urlpath_regex \.exe($|\?) acl exelivre urlpath_regex "/etc/squid/exelivre.txt" http_access allow all exelivre http access deny all exetodos
Considere tambem como executáveis para windows .bat .scr .com .pif e vbscript que não sei qual a terminação.
Muito comum aquelas proteção de tela (malware) .scr, para bloquear todos deve usar algo como: \.scr$ \.scr[\?\&]
Para demais extensões, use espaço como separador, exemplo para diversas extensões.
acl download urlpath_regex \.exe \.arj \.zip \.mp3 \.bat \.pif \.scr \.src http_acces allow download ips_liberados http access deny all download
Exemplo de ACL que pega somente o .exe no final da URL, não é grande coisa mas ajuda, não funciona em muitos sites que insere codigos na URL.
acl negaexe url_regex -i ^http://.*\.exe$ http_access deny negaexe
Utilizo FreeNX no servidor Samba, também servidor web interno, assim todo dowload é feito pelo Linux e salva no diretório do servidor web.
Mesmo assim tem situações que precisa liberar alguns micros, neste caso crie ACL liberando sites que deseja liberar, Windows update, atualização do anti-virus, sites do governo e etc..
ACL permitindo download de alguns executáveis do Windows.
acl liberaexe url_regex "/etc/squid/liberaexe.txt"
http_access allow liberaexe
Onde /etc/squid/liberaexe.txt tem a lista dos .exe sites liberados para download, liberar dowanload do site da Receita Federal, acrescente no arquivo /etc/squid/liberaexe.txt
^http://www.receita.fazenda.gov.br/.*\.*$.
Barrar por tipo de arquivo, ACL do tipo mime_type, formato da acl para barrar arquivos pelo tipo de aplicação, um exemplo para barrar arquivos do tipo pdf.
acl minhaacl rep_mime_type ^application/pdf$ http_reply_access deny minhaacl
Outro exemplo para barrar videos do tipo asf, não confundir aplication com aplicativo, com sendo a finalidade do programa, aqui se refere a destinação do tipo de arquivo. radio online pode econtrar no formato de Real Player, midia player e muitos outros, acho que deve existir diversos streaming para radio online, a seguir um exemplo de acl barrando streaming, logo em seguida outro exemplo complementar usando ERP (urlpath_regex).
# Barrar streaming radio online acl streaming rep_mime_type ^video/x-ms-asf http_reply_access deny streaming
ACL mais abrangente, definindo varios mime_time, para facilitar a organização e manutenção, use arquivo externo.
acl mimeaplicativo rep_mime_type -i "/etc/squid/mimeaplicativo.txt"
Onde /etc/squid/mimeaplicativo.txt contém a lista de aplicações a serem negadas, um exemplo de conteúdo deste arquivo
^application/x-msn-messenger$ ^application/x-mms-framed$ ^application/vnd.ms.wms-hdr.asfv1$ ^video/x-ms-asf$ ^audio/x-pn-realaudio$ ^audio/x-ms-wma$ ^video/x-msvideo$ ^video/mpeg$ ^application/vnd.rn-realmedia$ ^video/x-ms-wmv$ ^audio/x-realaudio$ ^video/x-ms-asx$ ^video/x-ms-wvx$ ^application/x-mplayer2$ ^application/x-oleobject$ ^application/x-pncmd$
Considerando a existenciado arquivo acima, esta ACL tem este formato.
acl mimeaplicativo rep_mime_type -i "/etc/squid/mimeaplicativo.txt" http_reply_access deny mimeaplicativo Também pode usar esta lista para liberar a um grupo especifico de IP, neste caso precisa criar um arquivo com a lista de IP a liberar, acl mime-ip src 192.168.1.205 192.168.1.211 192.168.1.212 No squid.conf esta ACL tem que ficar antes da ACL de bloqueio, exemplo desta ACL. acl mimeaplicativo rep_mime_type -i "/etc/squid/mimeaplicativo.txt" http_reply_access allow mimeaplicativo mime-ip
Os exemplos acima não barra tudo, pode implementar uma acl completar do tipo urlpath_regex, nesta acl usa expressão regular no filtro, assim podemos barrar diversos tipos de arquivos, no exemplo a seguir, pega as terminações quando ocorre no final da URL, embora seja muito eficiente por barrar os formatos mais comum, pode falhar em programas ou sites que mascaram o formato.
Barrando radio e video online.
Pesquisando no Google encontrei diversos formatos de som e video, algumas páginas em outros idiomas não entendi o significado, alguns nem conheço, pode nem ser sobre audio, abaixo um acl para barrar alguns tipos, caso tenha problema com algum ou descubra mais algum, é só acrescentar ou remover, cuidado com a quebra de linha, a acl com todos os formatos estão em uma única linha.
# Barrar arquivos de som e video em geral acl websom urlpath_regex -i \.asf$ \.asx$ \.avi$ \.au$ \.mid$ \.midi$ \.mov$ \.mpeg$ \.mpg$ \.mp3$ \.mp2$ \.mp2v$ \.ogg$ \.pls$ \.ra$ \.ram$ \.rmi$ \.snd$ \.wav$ \.wma$ \.wmv$ \.wvx$ http_access deny websom
Ainda não testei, mas deve funcionar e fica mais fácil administrar em aquivo, a mesma acl acima modificada para pegar os tipos de arquivo em um arquivo texto, ficaria assim.
# Barrar arquivos de som em geral acl websom urlpath_regex -i "/etc/squid/arqsom.txt" http_access deny websom
Onde /etc/squid/arqsom.txt é um arquivo texto contendo um tipo por linha, como neste exemplo.
\.asf$ \.asx$ \.avi$ \.au$ \.mp3$ \.ra$ \.ram$
ACL mime_type texto
acl testemime req_mime_type texto
Este tipo de ACL não tem relação com a aplicação, procura o "texto" no endereço solicitado, qualquer dia coloco exemplos aqui.
Exemplos de ACL para trabalhar sem cache.
acl semcache urlpath_regex "/etc/squid/semcache.txt" \? no_cache deny semcache
No arquivo semcache.txt coloque a lista dos arquivos que não quer fazer cache, neste formato.
.jpg .mp3 .exe