Autenticar usuários squid+shellscript+mysql
Publicado por Daniel Roque 05/02/2009 (última atualização em 14/07/2011)
[ Hits: 10.252 ]
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
Gerar arquivos CSV no postgresql
Instale o driver proprietário Nvidia baixado do site oficial em qualquer distro
Criando Autoridades Certificadoras e Certificados de Testes no Linux
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Opções secretas em tema do Cinnamon
Como mapear unidade de rede no Linux
Como quebrar senha usando john the ripper
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (1)
Alguém já testou o novo COSMIC Desktop? O que achou? (4)
Não consigo instalar distro antiga no virtualbox nem direto no hd (29)
queria saber como posso alterar a frequencia do meu ryzen 2300u pro (3)









