quarta-feira, 29 de dezembro de 2010

Como autenticar o squid no LDAP

Olá pessoal,

Ai vai uma dica interessante pra quem quiser autenticar o Squid no LDAP, inclusive Active Directory, sem ter que colocar a máquina Linux no domínio e usar aquele winbind chato.


Crie um script em PHP chamado, por exemplo /etc/squid/authldap.php e marque ele como executável com chmod 755 /etc/squid/authldap.php.

Segue o conteudo:

#!/usr/bin/php

$ldaphost="192.168.0.1";
$ldapport="389";

$ldapconn = ldap_connect($ldaphost, $ldapport)
           or die("Could not connect to $ldaphost");


if ($ldapconn) {

        # Loop infito - cada requisicao do proxy é 
        while(!feof(STDIN)){

                $ldapbind = false;
                # toma a linha e separa usuario e senha
                $line = trim(fgets(STDIN));
                list($user,$pass) = split(" ",$line);
       
                 // binding to ldap server
                $ldapbind = ldap_bind($ldapconn, $user."@seudominiodoad.com.br", $pass);
                #
                # Se ele nao existir, ja retorna ERR
                if($ldapbind){
                        echo "OK\n";
                }
                else{
                        echo "ERR\n";
                }
        }
      }      
?>








No squid.conf utilze o script acima para autenticar:

Adicione as linhas abaixo,

auth_param basic realm   Entre com seu login e senha da rede
auth_param basic program /etc/squid/authldap.php
acl password proxy_auth REQUIRED


Altera a linha correspodente, mais no fim do squid.conf, como se segue. Nao deixe outros "http_access" com o nome da sua rede sobreporem a regra de uso de senha.

http_access allow password


Qualquer dúvida entrem em contato!

terça-feira, 28 de dezembro de 2010

Como um script se suicida?

Como um script se suicida?

rm -f $0 && kill -9 $$

Explicação:
$0 expande para o nome do próprio script
$$ é o PID do script rodando

quinta-feira, 9 de dezembro de 2010

Como compilar o ESD para AR71xx


O ESD é um software muito interessante. Ele permite que você "envie" o som via TCP/IP para tocar em computador remoto. O PulseAudio é compatível com ele, o que torna as coisas bem legais, como poder mandar tocar musicas no meu amplificador de potência estando em qualquer parte da casa sem precisar conectar cabos ao notebook. Como utilizo um roteador com placa USB, resolvi comprar uma dessas placas de audio USB baratinhas e tornar o router um sound server.

Como encontrei o esd pre-compilado somente para processadores Broadcom ( plataforma MIPSEL), tive que compilar o esd para o processador Atheros AR71xx (plataforma MIPS) do TP-Tink WR-1043ND.

Depois de brincar bastante com o DD-WRT, decidi que seria hora de migrar para o OpenWrt, por ser mais versátil e menos "engessado". O DD-WRT é ótimo, mas o OpenWrt é, digamos, mais "hacker friendly". Só peca na interface web, mas usando o X-Wrt achei até melhor que o DD-WRT.

O primeiro passo foi baixar os fontes do OpenWrt, na versão BackFire 10.03, pois contem todos os compiladores e ferramentas necessárias para compilar cruzado. Descompactei o fonte dentro da pasta ~/src do meu home, mas você pode ajustar para o caminho que desejar. Depois de ter as ferramentas instaladas, passei para a compilação dos softwares. É possível criar um pacote, mas isso vai ficar pra uma outra hora, pois exige um pouco mais de estudo...

Em seguida, baixei o fonte do audiofile-0.2.7, que é uma lib necessária para o ESD.

Usei o script abaixo para compilar.
#!/bin/bash
export PATH=$HOME/src/backfire_10.03/staging_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/bin:$PATH
export CC=mips-openwrt-linux-uclibc-gcc
export LD=mips-openwrt-linux-uclibc-ld

./configure --prefix=/usr \
--without-libiconv-prefix \
--without-libintl-prefix \
--disable-nls \
--program-transform-name="" \
--host=mips \
--target=mips-openwrt-linux-uclibc
make




Depois, baixei o fonte do esound-0.2.8, e de modo similar, utilizei o script abaixo. Note que tive que adequar os caminhos para a libaudiofile, compilada a pouco.


#!/bin/bash
export PATH=$HOME/src/backfire_10.03/staging_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/bin:$PATH
export CC=mips-openwrt-linux-uclibc-gcc
export LD=mips-openwrt-linux-uclibc-ld

export AUDIOFILE_CFLAGS="-I $HOME/src/audiofile-0.2.7/libaudiofile"
export AUDIOFILE_LIBS="-L $HOME/src/audiofile-0.2.7/libaudiofile/libaudiofile.la"

./configure --prefix=/usr \
--without-libiconv-prefix \
--without-libintl-prefix \
--disable-nls \
--enable-arts=no \
--enable-alsa=no \
--program-transform-name="" \
--includedir=$HOME/src/audiofile-0.2.7/libaudiofile \
--libdir=$HOME/src/audiofile-0.2.7 \
--host=mips \
--target=mips-openwrt-linux-uclibc

make

Com isso, temos o binário chamado esd, que pode ser transferido para o router via scp, por exemplo.

Para utilizá-lo, uso o seguinte comando na inicialização:

/opt/bin/esd -tcp -public -nobeeps &


Compilei também o aumix, que é um mixer de linha de comando. O som fica no máximo por padrão, o que pode ser um inconveniente. O procedimento é o mesmo.

#!/bin/bash
export PATH=/home/jones/src/backfire_10.03/staging_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/bin:$PATH
export CC=mips-openwrt-linux-uclibc-gcc
export LD=mips-openwrt-linux-uclibc-ld

./configure --prefix=/usr \
--without-gpm \
--without-sysmouse \
--without-libiconv-prefix \
--without-libintl-prefix \
--without-gtk \
--disable-nls \
--host=mips \
--target=mips-openwrt-linux-uclibc \
--libdir=$HOME/src/backfire_10.03/staging_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/lib/ \
--includedir=$HOME/src/backfire_10.03/staging_dir/toolchain-mips_r2_gcc-4.3.3+cs_uClibc-0.9.30.1/usr/include/
make

A partir de então, basta apontar o player para utilizar o esd. O mplayer e o audacity são  dois que sei que funcionam. Ainda estou tentando colocar o PulseAudio para usar o ESD, mas ainda não funcionou. Com isso, será possível redirecionar o som de qualquer aplicativo que utilize o som padrão do Ubuntu.


Nota Importante

O conteúdo deste blog foi desenvolvido por mim e não foi copiado de outros locais, embora alguns poucos tópicos tenham sínteses e adaptações de outras fontes, que neste caso, serão referenciadas para se dar o devido crédito.
A reprodução é permitida desde que citada a fonte e para fins não comerciais. É proibido o uso para fins comercias sem a expressa autorização do autor.
Embora o conteúdo aqui apresentado seja testado pelo autor e/ou passado por sua aprovação, não é oferecida nenhuma garantia de que tudo funcionará corretamente ou não irá danificar os sistemas envolvidos, pois o sucesso dependerá do ambiente e/ou conhecimento do leitor.
Ao utilizar este blog, para qualquer fim, o leitor concorda com estes termos e isenta o autor de qualquer responsabilidade, ficando o uso do conhecimento aqui apresentado por sua conta e risco.
Caso discorde destes termos, gentileza fechar esta página imediatamente.

Copyright Jonathan Araújo 2010