[squid-users] Squid + Mysql

Amos Jeffries squid3 at treenet.co.nz
Wed Aug 19 14:49:49 UTC 2015


On 20/08/2015 12:17 a.m., adricustodio wrote:
> Hi guys, i got a question... again....
> 
> Im runing here Centos7 + squid 3.3.8
> Im trying to set up a squid with mysql auth, but im kinda lost here...
> 
> For now squid is running fine on basic_ncsa_auth
> I've created a mysql db called "squid" and a table called "users" with name,
> pass (varchar) and status.
> 
> My squid did not come with mysql_auth, so i tried to create a new one and
> tried to use basic_db_auth

basic_db_auth is what I use to authenticate my clients against a MySQL
database. Whats the problem?


> mysql_auth is this
> 
> #!/usr/bin/php

I seriously advise against PHP. Spent most of a year trying to get it
interoperating well as a helper language, but had to give up. It has a
history of bugs and weirdness with timeouts rooted in its primary
use-case as a web CGI interface that has not yet gone away AFAICT.


> <?
> $link = mysqli_connect("localhost", "usuario_do_banco", "senha_do_banco");
> 
> if (!$link) {
>    printf("Erro ao Conectar com o Banco de Dados: %s\n",
> mysqli_connect_error());
>    die();
> }
> 
> $selectdb = mysqli_select_db($link, "squid");
> 
> if (!$selectdb) {
>    printf("Erro ao Abrir o Banco de Dados: %s\n", mysqli_error($link));
>    die();
> }
> 
> while ( fscanf(STDIN, "%s %s", $nome, $senha) ) {
>    $select = "SELECT nome, senha FROM usuarios WHERE nome = '".$nome."' AND
> status = 1";
>    $Query = mysqli_query($link, $select);
>    $nrRegistros = mysqli_num_rows($Query);
>    $erro = true;
> 
>    while ( $Registro = mysqli_fetch_array($Query) ) {
>       $erro = false;
> 
>       if ( crypt($senha, $Registro[senha]) ==    $Registro[senha] )

Replace " [senha] " with " ['senha'] " (notice the single-quotes).

> printf("OK\n");
>       else printf("ERR\n");
>    }
>       if ($erro) printf("ERR\n");

On helper errors output "BH"


> }
> ?> 
> 
> My squid asks for user and password but do not authenticate...
> on the basic_db_auth i didnt change anything, i dont know how to configure
> squid to authenticate on mysql.

Same as the demo I gave for using it to authenticate directly to
OracleDB but with "mysql" instead of "Oracle" and 3306 instead of 1234
in the --dsn value.

With your described DB setup you also want --plaintext instead of --md5
and --salt.


Amos


More information about the squid-users mailing list