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.413 ]

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

Filtro de conteúdo autenticado com níveis de privilégio

Squid 3.4.8 + SSL + Firewall + DNS + DHCP no Debian Jessie (v.8)

Squid autenticado - Instalar e configurar

Proxy em paralelo com o mikrotik

Squid balanceado com LVS

  
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