Os testes que realizei foram com base em uma instalação sobre o Linux CentOS 6.8 e o Squid 3.1, padrão rpm até o momento.
Nas primeiras configurações, onde verificava os acessos dos usuários com configuração de proxy nos navegadores das máquinas locais, não visualizava problemas, mas quando habilitei a autenticação dos usuários no AD da Microsoft com Windows 2012 percebi problemas com acesso as páginas https que por várias vezes não abria ou com erro de certificado.
A primeira coisa que percebi após algumas pesquisas, seria necessário uma versão mais atual do squid, que neste caso deveria ser instalada uma versão compilada. Mas vamos ao roteiro.
Para autenticação do proxy em domínio o squid, compilado será o ultimo a ser instalado. Vamos precisar do samba, krb5, openssl entre outros para autenticação no AD e mais algumas ferramentas para compilação do squid.
Siga estes procedimentos para autenticação no AD
Após a autenticação com o AD estar funcionando, vamos desinstalar o squid se estiver instalado.
yum remove squid -y
cd /usr/src
# Baixar a ultima versão do squid
wget http://www.squid-cache.org/Versions/v3/3.5/squid-3.5.22.tar.gz
tar -zxpvf squid-3.5.22.tar.gz
cd squid-3.5.22
useradd squid
./configure –enable-icap-client –enable-ssl –enable-ssl-crtd –includedir=/usr/include –mandir=/usr/share/man –infodir=/usr/share/info –sysconfdir=/etc –localstatedir=/var –libexecdir=/lib/squid3 –srcdir=. –datadir=/usr/share/squid3 –sysconfdir=/etc/squid3 –bindir=/bin –sbindir=/sbin –with-default-user=squid –with-logdir=/var/log/squid3 –with-openssl
make all
make install
mkdir -p /etc/squid3/ssl_cert
cd /etc/squid3/ssl_cert
# Criar um certificado auto assinado
openssl req -new -newkey rsa:1024 -days 365 -nodes -x509 -keyout certificado.pem -out certificado.pem
# Criar uma versão a ser importada no browser do usuário:
openssl x509 -in certificado.pem -outform DER -out certificado.der
# Criar a estrutura para os certificados dinâmicos com o ssl_crtd
/lib/squid3/ssl_crtd -c -s /var/lib/ssl_db -M 4MB
chown squid:squid /var/lib/ssl_db -R
# Altere o arquivo squid.conf
# Retire a opção “intercept” se não for trabalhar com o squid em modo transparente (redirecionamento com iptables), podendo assim trabalhar apenas na porta 3128
vi /etc/squid3/squid.conf
http_port 3128 intercept
https_port 3127 intercept ssl_bump generate_host_certificates=on dynamic_cert_mem_cache_size=4MB cert=/etc/squid3/ssl_cert/myCA.pem
ssl_bump none localhost
ssl-bump server-first all
sslcrtd_program /lib/squid3/ssl_crtd -s /var/lib/ssl_db -M 4 MB
sslcrtd_children 5
mkdir /var/cache/squid/
chown squid.squid /var/cache/squid/ -R
squid -z
squid
# Verifique se o squid está executando
netstat -ln | grep 3128
tcp 0 0 :::3128 :::* OUÇA
# Agora você pode criar regras de bloqueio/acesso a paginas de internet através de listas fixas, pode definir acesso por usuário e/ou grupo com base na autenticação do AD. Também poderá instalar o Sarg ou outra ferramenta para gerar relatórios de acesso
# Um exemplo posteriormente estará disponível.