Proxy

Configurando o Varnish no CentOS 6 para múltiplos sites

Abaixo segue um exemplo de configuração do Varnish, para quem trabalha com multiplos sites ou tem outros endereços IP no servidor.

Primeiro altere o VirtualHost para a porta 8080, por exemplo:

<VirtualHost X.X.X.X:8080>
        ServerName www.dominio.com.br
        DocumentRoot /path/
        ---------
</VirtualHost>

No Varnish, crie um novo backend, editando o arquivo /etc/varnish/default.vcl

backend virtualhosts {
  .host = "X.X.X.X";
  .port = "8080";
}

Adicione a vcl_recv:

if (server.ip == "X.X.X.X")
  {
    set req.backend = virtualhosts;
  }
  else
  {
    set req.backend = default;
  }
}

Nos exemplos acima, X.X.X.X é o endereço IP do seu servidor.

Squid autenticado e Windows Live Messenger 2009

Existe um erro em todas as versões do Microsoft Internet Explorer, no qual o esquema de autenticação NTLM deve ser declarado primeiro ou ele não será selecionado. Isso vai contra a RFC 2616, que recita “O agente do usuário deve optar por usar o esquema de autenticação mais forte que ele entende”.

E se você tiver uma politica onde bloqueia tudo e libera as exceções, e precisar liberar o MSN Messenger para um usuário específico, provavelmente encontrará o seguinte problema:

192.168.0.XX TCP_DENIED/407 1828 CONNECT local-bay.contacts.msn.com:443 – NONE/- text/html
192.168.0.XX TCP_DENIED/407 1834 CONNECT byrdr.omega.contacts.msn.com:443 - NONE/- text/html

O problema pode ser resolvido da seguinte forma:

acl users proxy_auth user1 user2
acl msn urlpath_regex -i gateway.dll
acl msnd dstdomain messenger.msn.com gateway.messenger.hotmail.com
acl msn_server rep_mime_type ^application/x-msn-messenger$
acl msncontact dstdomain .contacts.msn.com

http_access allow msncontact
http_access allow msn users
http_access allow  msnd users

http_reply_access deny msn_server !users

O detalhe é que a acl msncontact não pode estar associada a autenticação dos usuários.

Fonte: Wiki Squid

Squid com suporte a acl arp no CentOS

O Squid, se instalado do repositório via YUM ele não vem com suporte a acl arp, para realizar controles a partir de endereços MAC(endereço físico da interface de rede), e recentemente precisei implementar um controle a partir dos endereços MAC dos hosts e surgiu este problema.

Para habilitar o suporte a acl arp é necessário recompilar o squid, habilitando o suporte a esta acl, abaixo vou mostrar como gerar o pacote RPM da versão mais recente do squid com suporte a acl arp.

1. Instale as depedências

yum install rpm-build gcc linuxdoc-tools openldap-devel pam-devel openjade openssl-devel perl-URI

2. Baixe o source do squid e instale-o:

cd /usr/src

wget http://mirror.centos.org/centos/5/os/SRPMS/squid-2.6.STABLE21-3.el5.src.rpm

rpm -ivh squid-2.6.STABLE6-5.el5_1.3.src.rpm

3. Edite o arquivo /usr/src/redhat/SPECS/squid.spec e adicione na linha 114 o suporte a acl arp:

--enable-arp-acl \

4. Agora gere o novo pacote RPM:

rpmbuild -bb /usr/src/redhat/SPECS/squid.spec

5. Instale ou atualize sua versão atual, a partir do pacote gerado.

rpm -Uvh /usr/src/redhat/RPMS/i386/squid-2.6.STABLE6-5.3.i386.rpm

6. Agora é só testar criando uma acl arp e fazer um filtro, ex:

acl testemac arp "/etc/squid/macs.txt"
...
...
http_access deny testemac

* Procedimento testado no CentOS 5 e CentOS 4, dependendo da versão o source muda, nesse caso utilizei o da versão 5.

Caso você queira baixar o pacote gerado durante o procedimento acima, clique AQUI. O pacote foi gerado para o CentOS 5.

Dúvidas, críticas e/ou sugestões, post aqui.