Autenticar usuários squid+shellscript+mysql
Publicado por Daniel Roque 05/02/2009 (última atualização em 14/07/2011)
[ Hits: 10.290 ]
Homepage: None
Download 1299029728.autenticador (versão 2)
Script para autenticar usuários cadastrados numa tabela mysql, no squid.
Leia a parte comentada no script para correta instalação e configuração.
O script pressupõe que já tenha instalado no computador mysql e squid. Espera também uma certa familiaridade com os dois.
Boa sorte!
Versão 2 - Enviado por Daniel Roque em 01/03/2011
Changelog: Nenhuma mudança drástica, apenas o script está mais robusto, melhor configurável e utiliza a função PASSWORD do mysql que melhora um pouco a segurança do processo.
E espero que desta vez ninguém tenha problemas em utilizar o script :D.
Boa sorte a todos!
Download 1299029728.autenticador
#!/bin/sh
#
#
# Daniel Roque - 2006roque@gmail.com
#
#
#
# 2008-11-23
#
#
# Copie o arquivo para /etc/squid/autenticador
#
# IMPORTANTE os dois comando abaixo.
# Nao importa onde o script estiver ele precisa se acessivel pelo usuario proxy, ou nao funcionara.
# chown proxy.proxy /etc/squid/autenticador
# chmod 771 /etc/squid/autenticador
#
# Adicione ao /etc/squid/squid.conf
# auth_param basic program "/etc/squid/autenticador"
# auth_param basic realm "Digite usuario e senha"
# acl geral proxy_auth REQUIRED
#
# ATENCAO EXECUTE OS COMANDOS DENTRO DO mysql
#
# GRANT ALL PRIVILEGES ON *.* TO adm@localhost IDENTIFIED BY 'minhasenha' WITH GRANT OPTION;
# GRANT ALL PRIVILEGES ON *.* TO adm@'%' IDENTIFIED BY 'minhasenha' WITH GRANT OPTION;
# GRANT RELOAD,PROCESS ON *.* TO adm@localhost;
# GRANT USAGE ON *.* TO adm@localhost;
#
# CREATE DATABASE IF NOT EXISTS dbsquid;
# USE dbsquid;
# CREATE TABLE IF NOT EXISTS usuarios(
# codigo int(6) primary key NOT NULL AUTO_INCREMENT,
# login varchar(40) unique NOT NULL,
# senha varchar(255) NOT NULL,
# status int(11) NOT NULL default 1,
# mudarsenha varchar(1),
# nivel int(1),
# visivel varchar(1),
# cadastro date
# )ENGINE=INNODB;
#
# PARA ADICIONAR USUARIOS, basta trocar daniel e senha por outro usuario outra senha
# insert into usuarios (login,senha,status,visivel,cadastro) values ('daniel','senha',1,'s',now());
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin/"
log='/tmp/auth-squid.log'
data=`date -d now`
db='dbsquid'
tabela='usuarios'
usql='adm'
psql='minhasenha'
valor=''
while read valor;
do
data=`date -d now`
if [ "$valor" != '' ];then
login=`echo $valor|sed 's/\(.*\)\( .*\)/\1/g'`
senha=`echo $valor|sed 's/\(.* \)\(.*\)/\2/g'`
if [ "$login" == '' ];then
echo "$data usario vazio" >>$log
echo ERR
exit 0
fi
echo "$data tentando autenticar '$login'" >>$log
sql="SELECT login FROM usuarios WHERE login='$login' AND senha='$senha' AND status='1';"
rslt=`mysql -u$usql -p$psql -t --database "$db" -e "$sql"|sed -n 's/|//g;s/ //g;4p'`
if [ "$login" == "$rslt" ];
then
echo "$data resposta OK para $login" >>$log
echo OK
else
echo "$data resposta ERR para $login" >>$log
echo ERR
fi
echo >>$log
else
echo "$data resposta ERR para $login" >>$log
echo ERR
fi
done
exit 0
Busca de arquivos nas ports FreeBSD
Instalador .tar.bz2 com menu gráfico Zenity
Script para acessar terminais LInux e Unixes remotos do XDM
Iniciar firewall quando houver rede habilitada (Internet)
A Fundação da Confiança Digital: A Importância Estratégica de uma PKI CA na Segurança de Dados
Como enviar dicas ou artigos para o Viva o Linux
Como Ativar a Aceleração por GPU (ROCm) no Ollama para AMD Navi 10 (RX 5700 XT / 5600) no Gentoo
Cairo Dock ainda funcional nos dias de hoje
Configuração de IP fixo via nmcli e resolução de nomes via /etc/hosts no Gentoo
Removendo o bloqueio por erros de senha no Gentoo (systemd)
Papel de Parede Animado no KDE Plasma 6 (Com dicas para Gentoo)
Homebrew: o gerenciador de pacotes que faltava para o Linux!
Tentando fazer um "linux ricing" mas falhando miseravelmente... (2)
Elilo e Sofrimento no Slackware (3)
Não consigo instalar as bibliotecas em Python pelo terminal. (1)









