você está aqui: Home  → Arquivo de Mensagens Programação Shell Linux: Inscrições Abertas

Limitando tamanho de envio do método POST no SQUID

Colaboração: Smailli Hemori Moraes

Data de Publicação: 25 de Novembro de 2006

Crie o script /usr/lib/squid/size.sh com o seguinte conteúdo

#!/bin/sh

while read size limit; do
**if [ "${size}" -gt "${limit}" ]; then
echo ERR
else
echo OK
fi
done

Torne-o executável com o comando

# chmod +x /usr/lib/squid/size.sh
  1. Crie as seguintes ACLs em /etc/squid/squid.conf

    Chamada de ACL externa para verificação do tamanho do envio no método POST

    external_acl_type request_body %{Content-Length} /usr/lib/squid/size.sh
    

    ACL que define o tamanho do método POST, nesse caso 10 kb
    acl request_max_10KB external request_body 10240
    

    Bloqueia todo POST acima de 10 kb
    http_access deny !request_max_10KB
    

    ==EXTRAS==

    Pode-se atrelar essa ACL com outras, por exemplo com algum IP

    http_access deny !request_max_10KB IPS_BLOQUEADOS
    

    Assim, quando o IPS_BLOQUEADOS tentar fazer um post maior de 10KB (enviar um anexo por exemplo) ele será bloqueado. Porém, essa configuração pode negar envio de algum tipo de formulário que seja maior que 10KB.

    Um exemplo é o tradutor do google, se tentar traduzir algo que ultrapasse o método POST em 10KB será bloqueado. Para sanar isso crie a seguinte regra
    acl GOOGLE dstdomain translate.google.com.br
    http_access deny !request_max_10KB localhost !GOOGLE
    
    O mais correto, criar uma ACL com os webmails atrelados e limitar o POST somente para eles.
    acl DOM_WEBMAIL dstdomain "/etc/squid/dominios_webmail.conf"
    acl USER_NO_ATT proxy_auth "/etc/squid/usuarios_webmail_sem_anexo.conf"
    
    http_access deny !request_max_10KB DOM_WEBMAIL USER_NO_ATT
    


Veja a relação completa dos artigos de Smailli Hemori Moraes