Limitação da taxa de squid

1

Eu quero limitar o número de pedidos que recebemos de IPs únicos, usando o squid (suponha que eu tenha que usar o squid por razões políticas), bloqueando aqueles que fazem pedidos demais em um período de tempo definido.

Eu estava pensando em escrever um script Perl curto e um external_acl_type, com um pool de retardo, mas não tenho certeza sobre quais parâmetros posso passar para a função auxiliar.

algo como:

external_acl_type rate_limit / usr / bin / squid-acesso-controle dst

mas não tenho certeza se isso funcionaria?

    
por Michael Thorpe 22.06.2012 / 17:57

1 resposta

2

Então a solução que eu descobri, que eu acho que vale a pena documentar, é a seguinte:

  • O Squid registra todas as solicitações recebidas
  • Para solicitações de CDN, o squid segue o cabeçalho X-forwarded-For, deixando o IP do cliente real em os logs
  • O Fail2ban verifica os logs, registrando quantas solicitações estão sendo feitas por clientes por minuto etc.
  • Quando um cliente faz X número de solicitações, ele é colocado na lista de IP squirm , que tem a solicitação foi reescrita para apontar para um servidor da Web no balanceador de carga.
  • O Squid pega isso, nega a solicitação de acesso aos servidores da Web e permite acesso a um servidor thttpd em execução no balanceador de carga, que hospeda uma página da Web de "você está banido".
por 03.07.2012 / 23:57

Tags