Caixa – Conectividade Social

Ontem um amigo estava me perguntando como fazer o programa “Conectividade Social” da Caixa Economica Federal funcionar corretamente passando pelo proxy transparente que ele tem na rede (Linux + Squid).

Notei que muitas pessoas em diversos fóruns tem postado esta mesma dúvida e também existem diversas respostas dadas, porém poucas delas são simples e funcionais como poderiam ser.

Segue uma forma prática para liberar a entrada direta, sem redirecionamento para a porta do proxy:

# iptables -t nat -I PREROUTING -d 200.201.160.0/20 -j ACCEPT

Dessa forma inserimos uma regra prioritária sobre as outras (-I), liberando o range da CEF para ser acessado diretamente sem o redirecionamento.

Lembre-se de colocar a regra após todas as outras, ou então antes delas!

Aumentando o desempenho do Squid

Existem diversos pontos a serem analisados na hora de desenvolver um firewall para seu ambiente de forma que ele obtenha a máxima performance utilizando o hardware da melhor maneira possível, porém existem algumas práticas que são recomendadas para aumentar a performance e otimizar seu proxy durante a configuração do Squid.

Um dos principais fatores a serem considerados é a especificação do hardware utilizado e a preparação do sistema operacional. Ao utilizar RAID no servidor, prefira implementar em RAID0, que apresenta a melhor performance e dê preferência para realizar o armazenamento de cache e dos logs do Squid em um volume (preferencialmente com discos diferentes) separado, como estes dados normalmente são armazenados no /var, crie um ponto de montagem sobre a pasta apontando para seu volume. A escolha do sistema de arquivos também é um fator extremamente importante para otimizar o funcionamento, além do desempenho é necessário ter estabilidade na manipulação dos dados.

Um ponto crítico que pode fazer com que os usuários sintam lentidão ao utilizar a internet através do proxy é a resolução de nomes (DNS), para aumentar o desempenho na resolução de nomes é recomendável configurar um DNS cache na mesma máquina ou em uma máquina conectada diretamente ao proxy.

Existem alguns parâmetros que devem ser corretamente configurados no squid.conf de modo a otimizar o funcionamento. Segue uma breve descrição dos dois principais:

cache_mem

Esta opção informa ao Squid a quantidade de memória dedicada ao processo (podendo aumentar dependendo da demanda), sendo que em máquinas dedicadas à utilização de proxy podemos definir cerca de 80% da memória total da máquina.

maximum_object_size

Com esta diretiva podemos limitar o tamanho máximo dos objetos em cache para que objetos maiores do que o valor máximo aqui informado não sejam enviados para o disco. Um valor alto pode contribuir com uma maior economia de banda, porém pode causar uma utilização maior dos discos podendo aumentar o tempo de resposta em ambientes de alto tráfego. É recomendada a utilização de um valor entre 4 e 16MB (16384 KB).

A utilização de diversos caches separados em volumes diferentes pode contribuir para otimizar o armazenamento de dados e aumentar a performance do acesso a internet porém não interfere diretamente na performance do servidor.

Já a definição do método de acesso ao cache (store type) oferece difereças significativas na forma como o servidor acessa os discos. Os métodos mais utilizados são ufs, aufs, diskd e coss. Sendo que normalmente o sistema aufs apresenta ótima performance e facilidade de implementação (não depende de daemos externos) na maioria dos casos.

Existem ótimas alternativas para configuração de ambientes grandes onde existem milhares de hosts passando pelo proxy ao mesmo tempo para a distribuição de carga (um tipo de clusterização) em diversos servidores interligados entre si através de ICP, mas esse já é um tipo de instalação bem específica onde temos que fazer um levantamento bem detalhado do ambiente na implementação.