Autenticando Squid utilizando MySQL

Será descrito como fazer o usuário do Squid autenticar com o MySQL usando MD5 e o basic_db_auth.

[ Hits: 4.424 ]

Por: Álvaro Fernandes em 06/11/2018


Instalando Squid e o MySql e fazendo as preparações iniciais.



Vamos começar instalando os pacotes do Squid e do MySQL (foi feito no Ubuntu 16.04):

sudo apt-get install mysql -y
$ sudo apt-get install squid -y


Caso for fazer no Ubuntu 18.04, pode acontecer de o MySQL não pedir a senha de root, nesse caso use o comando:

sudo mysql_secure_installation

Coloque a senha que você deseja para o root e dê skip em tudo (apenas coloque a senha e aperte enter até terminar).

Agora iremos criar as tabelas no MySQL:

mysql -u root -p
mysql> create database squid;
mysql> use squid;
mysql> CREATE TABLE usuarios (nome varchar(50) NOT NULL,senha varchar(32) NOT NULL,status tinyint(1) NOT NULL default "1",PRIMARY KEY (NOME));
mysql> INSERT INTO usuarios VALUES ('vol1', md5('senha1'), 1);
mysql> INSERT INTO usuarios VALUES ('vol2', md5('senha2'), 0);

O vol1 e vol2 são os usuários e o md5('senha1') encripta a senha e o 1 e 0 irá dizer se é um usuário ativo ou inativo.

Configuração do basic_db_auth

Será preciso baixar alguns pacotes para a autenticação, pois o basic_db_auth é escrito em Perl.

sudo apt-get install libdbi-perl -y
$ sudo apt-get install libdbd-mysql-perl -y


Logo após instalar os pacotes, vamos começar a modificar o arquivo para fazer que ele trabalhe com a nossa tabela:

sudo nano /usr/lib/squid/basic_db_auth

Editar a linhas:
  • Database DSN. Default "DBI:mysql:database=squid" ---> mudar caso Squid esteja com "S" maiúsculo para squid com "s" minúsculo
  • Database table. Default "passwd". ----> mudar para usuários.
  • =item B<--usercol>
  • Username column. Default "user". ---> nome
  • =item B<--passwdcol>
  • Password column. Default "password". ----> senha
  • my $dsn = "DBI:mysql:database=squid"; ---> mudar caso Squid esteja com "S" maiúsculo para squid com "s" minúsculo
  • my $db_user = undef; ----> mudar para nome do usuário do mysql
  • my $db_passwd = undef; ----> mudar para senha do mysql
  • my $db_table = "passwd"; ----> mudar para usuários
  • my $db_usercol = "user"; ----> mudar para nome
  • my $db_passwdcol = "password";----> mudar para senha
  • my $db_cond = "enabled = 1"; ---> mudar enabled para status

Vamos fazer os testes:

./basic_db_auth --md5

Utilizar o --md5 para utilizar a criptografia md5 do mysql.

vol1 senha1 ----> colocar usuário e senha separados por espaço

Se retornar OK é porque está tudo certo.

./basic_db_auth --md5
vol2 senha2
ERR ---> se retornar ERR é pporque não autenticou.

Nesse caso estão corretos os dois exemplos, pois a autenticação é feita pelo usuário senha e o status, como o status do vol2 é 0 então ele não autentica.

    Próxima página

Páginas do artigo
   1. Instalando Squid e o MySql e fazendo as preparações iniciais.
   2. Configurando o Squid
Outros artigos deste autor

Configurando o Apache para deixar dois servidores web no mesmo link

Leitura recomendada

Problemas com o Squid

Proxy transparente com Squid, com controle de banda e bloqueio por horários

Compilando o Squid e criando o pacote para Slackware

Squid autenticado no Active Directory com Winbind

Autenticando usuários do Squid em um banco de dados MySQL

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts