tail -f /var/log/squid/access.log | gawk '{ printf strftime("%d/%m/%Y %H:%M ",$1)} " => " '

Configura se o pacote gawk encontra-se instalado.

Colocado em Linux, Squid.
Comente!.

Em contribuição a comunidade livre, resolvi escrever aqui minha experiência na integração do squid autenticado usando a base de usuários do KyaPanel.

Dependendo da distribuição que você use, após instalar o squid procure por ldap_auth.

No caso do Slackware: /etc/squid/libexec/squid_ldap_auth

No Ubuntu: /usr/lib/squid/ldap_auth

Teste de autenticação

Agora iremos fazer o teste de autenticação na base ldap usando o ldap_auth. Consegui fazer essa autenticação de duas formas. Uma delas é o pelo email todo do usuário e outra pelo login (tudo antes do @).

Testando – Primeira Forma

/etc/squid/libexec/squid_ldap_auth -b ou=seudominio.com.br,ou=mail,ou=jegue_panel,dc=seudominio -h ipdoldap -p 389 -v 3

Note que ao usarmos o comando acima não fará nada e via esperar você digitar o login e senha separados por um espaço:

admin@seudominio.com.br senha

Ao digitar esse login e senha irá te retornar o resultado. Se tudo ocorrer bem retorna OK, senão retorna ERR.

Testando – Segunda Forma

/etc/squid/libexec/squid_ldap_auth -b ou=seudominio.com.br,ou=mail,ou=jegue_panel,dc=seudominio -h ipdoldap -p 389 -v 3 -f "uid=%s@seudominio.com.br"

E digitará o login e senha:

admin senha

E retornará o resultado.

OK

Como sou bonzinho com meus usuários, eles somente precisam digitar na sua autenticação seu login (o que vem antes do @) e sua senha.

Feito este teste, já comprovamos o funcionamento da autenticação.

No squid.conf será necessário adicionar as linhas referentes a autenticação

auth_param basic program /etc/squid/libexec/squid_ldap_auth -b ou=seudominio.com.br,ou=mail,ou=jegue_panel,dc=seudominio -h ipdoldap -p 389 -v 3 -f "uid=%s@seudominio.com.br"
acl senha proxy_auth REQUIRED
http_access deny !senha
http_access allow senha
http_access deny all

Salve o arquivo, pois iremos testar as configurações e também criar o cache

squid -z

Se tudo ocorrer bem retornará:

Creating Swap Directories*

Pronto! já configuramos um squid autenticado agora é somente inicializar o serviço:

/etc/init.d/squid start

Agora podemos acompanhar os acessos:

tail -f access.log

Testando o funcionamento

Para testar o acesso teremos que ir a uma estação de trabalho e configurar o proxy no navegador com o ip do servidor e porta 3128.

Então tente acessar um site e imediatamente deverá aparecer uma telinha pedindo nome de usuário e senha é só digitar e navegar. Se voltar essa telinha novamente é porque você digitou algo errado em um dos campos.

Ajustes finais

Para que nenhum usuário de sua rede navegue usando o proxy é necessário configurar o proxy no navegador e até mesmo redirecionar o tráfego web para o proxy:

iptables -t nat -A PREROUTING -p tcp -m multiport –dport 80,3128 -i eth1 -j DNAT –to 192.168.0.1:3128

Antes de iniciar vamos setar alguns parâmetros

ulimit -HSn 16384
echo "5000 64000" > /proc/sys/net/ipv4/ip_local_port_range

Compilar o squid

wget -c http://www.squid-cache.org/Versions/v2/2.7/squid-2.7.STABLE3.tar.gz
tar -zxvf squid-2.7.STABLE3.tar.gz
cd squid-2.7.STABLE3
./configure --sysconfdir=/etc/squid/ --enable-storeio=aufs,coss,diskd,ufs \
--enable-poll --enable-delay-pools --enable-linux-netfilter --enable-htcp \
--enable-carp --with-pthreads --enable-underscores --enable-external \
--enable-arp-acl --with-maxfd=16384
make
make install

Criando links simbólicos

cd /usr/sbin/
ln -s /usr/local/squid/sbin/squid
cd /usr/bin/
ln -s /usr/local/squid/sbin/squid

Criando espaço para cache

mkdir /squid/
chmod 777 *
chmod 777 /squid/ -R

Vamos criar o arquivo /etc/squid/squid.conf com configurações bem simples

max_filedescriptors 16384
http_port 3128 transparent
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
no_cache deny QUERY
cache_mem 2000 MB
maximum_object_size 20480 KB
minimum_object_size 0 KB
maximum_object_size_in_memory 256 KB
cache_dir diskd /squid/cache1 5000 16 256
cache_dir diskd /squid/cache2 5000 16 256
cache_dir diskd /squid/cache3 5000 16 256
cache_dir diskd /squid/cache4 5000 16 256
cache_access_log /var/log/squid/access.log
cache_log /var/log/squid/cache.log
cache_store_log /var/log/squid/store.log
##############
cache_replacement_policy heap LRU
cache_effective_user nobody
cache_effective_group nobody
################### ACLS
acl all src 0.0.0.0/0.0.0.0
acl rede src 192.168.0.0/255.255.255.0
acl manager proto cache_object
acl localhost src 127.0.0.1/255.255.255.255
acl SSL_ports port 443 563
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
acl Safe_ports port 443 563 # https, snews
acl Safe_ports port 70 # gopher
acl Safe_ports port 210 # wais
acl Safe_ports port 3135
acl Safe_ports port 8080
acl Safe_ports port 1025-65535 # unregistered ports
acl Safe_ports port 280 # http-mgmt
acl Safe_ports port 488 # gss-http
acl Safe_ports port 591 # filemaker
acl Safe_ports port 777 # multiling http
acl CONNECT method CONNECT
###################
http_access allow manager localhost
http_access deny manager
http_access deny CONNECT !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow rede
http_access deny all
icp_access allow all
###################
visible_hostname nomedohost
cache_mgr emaildo@admin.com

Vamos criar a pasta e os arquivos de log

mkdir /var/log/squid
cd /var/log/squid
touch access.log store.log cache.log
chmod 777 *

Criar o arquivo /etc/rc.d/rc.squid

#!/bin/sh
ulimit -HSn 16384
echo "5000 64000" > /proc/sys/net/ipv4/ip_local_port_range
# Start squid:
squid_start() {
if [ -x /usr/sbin/squid ]; then
echo "Starting SQUID..."
/usr/sbin/squid -D
#/usr/sbin/squid -d 1
fi
}

# Stop squid:
squid_stop() {
killall squid
}

# Restart squid:
squid_restart() {
squid_stop
squid_stop
sleep 1
squid_stop
squid_stop
sleep 1
squid_stop
squid_stop
sleep 1
squid_start
}

case “$1” in
‘start’)
squid_start
;;
‘stop’)
squid_stop
squid_stop
squid_stop
;;
‘restart’)
squid_restart
;;
*)
echo “usage $0 start|stop|restart”
esac

Colocando o squid na inicialização

chmod +x /etc/rc.d/rc.squid
echo "/etc/rc.d/rc.squid start
" >> /etc/rc.d/rc.local

Vale a pena salientar a importância do parâmetro max_filedescriptors 16384 para proxy com um número muito grande de requisições.

Colocado em Kyapanel, Ldap, Linux, Squid.
Comente!.

Este monitoramento de conexões ativas no squid pode ser acompanhada pelo sqstat que é um software livre desenvolvido em php.

A instalação é super simples e com apenas alguns linhas adicionadas ao squid.conf desfrute desta poderosa ferramenta. Por ele ser desenvolvido em php permite a customização e adaptação tais como linguagem e layout.

Site do projeto: http://samm.kiev.ua/sqstat/

sqstat

Colocado em Linux, Squid.
Comente!.

-->