Últimos Posts últimos posts

Autenticando o squid no mysql

Depois de algum tempo sem postar vou com uma coisa interessante.

Passei alguns dias pensando em como integrar toda minha estrutura em um único banco de dados, já tenho meus usuários autenticando samba, smtp, pop e imap no mysql.

Achei a solução para integrar meu squid, acabei fazendo o meu próprio autenticador.

Vamos ao código em c++:

#include
#include
#include
#include
using namespace std;

int main (int argc, char **argv) {

        string user, pass;

        /* Recebendo os argumentos de stdin na sequencia usuario, senha */
        cin >> user;
        cin >> pass;

        try {
                mysqlpp::Connection con("database","ip","user","password");
                mysqlpp::Query query = con.query();
                mysqlpp::Result res;
                mysqlpp::Row::size_type i;
                mysqlpp::Row response;

                // Caso exista na base ele volta OK e o squid autoriza o usuario
                query << "SELECT 'OK' FROM view_users WHERE email = '"  <<
                        user << "' and password = md5('" << pass << "') ;";

                res = query.store();
                response = res.at(0);

                cout << response.at(0) << endl;

        } catch (mysqlpp::BadQuery err) {
                cerr << err.what() << endl;
        } catch (mysqlpp::EndOfResults) {
                // Caso o select seja null cai aqui onde retorna
               // o ERR para o squid e nega o acesso do usuario
                cerr << "ERR" << endl;
        } catch (mysqlpp::ConnectionFailed err) {
                cerr << err.what() << endl;
        }

        return 0;
}

Pronto agora vamos compilar :D

g++  -lmysqlpp -I/usr/include/mysql++ $(mysql_config --libs) $(mysql_config --cflags)
nauth_squid.C -o nauth_squid

Copie o binario gerado:

cp  nauth_squid /usr/local/bin

Ok. Lembrando que para funcionar você deve ter os pacotes de dev de mysql e mysql++

Agora vamos editar o squid.conf e adicionar nosso novo autenticador. Na tag: auth_param do squid siga até o final comente as linhas referente a autenticação e troque por:

auth_param basic program /usr/local/bin/nauth_squid
auth_param basic children 5
auth_param basic realm Squid proxy - caching web server
auth_param basic credentialsttl 10 minutes

Pronto :D. Agora apenas fazendo um restart no squid já vai estar autenticando :D. Lembre de verificar se o usuario que roda o squid na sua maquina tem permissão para executar esse binário

Agora é só acertar suas acl’s e liberar as permissões por usuário :D

Data do Post 14 março postado por Categoria Code Comentarios Sem comentários »


Deixe um Comentário

Voltar

Sobre

DOTMAC é um blog técnico sobre Macintosh. Entre, relaxe, leia sem pressa e deixe seu comentário.

Subir para o topo

Últimos Comentários últimos comentários

  • Sanmix: Eai beleza ! olha muito bom mesmo,valeuuuu….
  • Adriano: Consegui… valeu, Brother!!
  • GUSSHHH: O MEU AOE3 deu um negocio estranho… simplesmente nao aparece...
  • dotmac: Show de bola !
  • Marcela: Ai não acredito, depois de 4 horas tentando instalar...

Informações Informações

Site melhor visualizado: Firefox e Safari.
Resolução recomendada: 1280x800.
Tecnologia: Wordpress.
Theme: DOTMAC
DOTMAC - 2005 - 2011 (Todos os direitos reservados)

Valid XHTML 1.0 Transitional