Derrubando Conexões já estabelecidas no Squid

O Problema:
Imagine a seguinte situação: você detecta (via sqstat, por exemplo) uma conexão a um site que deveria ser proibido, mas ainda não consta nas suas listas de bloqueio. Assim, você faz insere o site na lista e efetua o reload do squid (normalmente com "/etc/init.d/squid reload" OU "squid -k reconfigure"). As novas conexões são bloqueadas, mas as já existentes permanecem. Dar um restart implicaria em um downtime (ainda que apenas de 1 minuto) na rede toda.

A Solução: Bloquear via negação de rota

1) Descobrir o endereço IP do host de destino:

ping mediafarm02.cdn.embratel.net.br
PING mediafarm02.cdn.embratel.net.br (200.214.220.66) 56(84) bytes of data.
64 bytes from 200.214.220.66: icmp_seq=1 ttl=246 time=2.10 ms

2) Rejeitar a rota para o host desejado.
route add -host 200.214.220.66 reject

3) Checando com o comando route. Perceba que não há indicação de roteador nem interface para o destino selecionado, e que há um sinal de exclamação mostrando que a rota foi rejeitada.


Alguns segundos após a criação da rota, a conexão dá timeout e é finalizada. Posteriormente, essa rota pode ser removida, pois novas conexões serão tratadas diretamente pelo squid.

Nenhum comentário: