21 de janeiro de 2008

Teste do gnome-blog!

Opa,

Após uma postagem do meu amigo Enderson, resolvi buscar um programinha para ajudar nas postagens do meu blog e achei o gnome-blog. Ele é bem simples e vai me ajudar bastante. ;-)

Fica ai a dica para quem usa Linux.

Aplicação em PHP para alterar senha no AD

Opa,

Primeiro a velha dica, "Este é um post técnico, para os que não entendem de Linux favor pular!" :-)

Agora vamos ao que interessa, eu gosto de dizer que eu adoro meu trabalho pelo simples fato de não ter que mexer em lixo, mas às vezes sou obrigado a mexer no lixo para resolver algumas solicitações. Uma delas foi criar uma aplicação em PHP que pudesse alterar a senha do usuário no Active Directory da Mico$oft. No mesmo instante eu pensei: "Isso deve ser moleza, já devem ter pelo menos uns 100 scripts prontos ou até mesmo projetos no sourceforge.net!", bem, para a minha surpresa isso demorou mais do que eu esperava. Para usar o php+ldap para acessar a base do AD é simples, para fazer consultas também é simples, mas para alterar/adicionar/excluir dados da base do AD o negócio é mais embaixo. Foi necessário criar um certificado raiz no servidor do AD e copiá-lo para o Linux, é isso mesmo que você está pensando, o AD só permite essas operações rodando sobre ssl (porta 636).

Para criar o certificado no servidor do AD será necessário (caso não esteja instalado) adicionar o serviço de certificação, se conecte no seu servidor AD, vá até adicionar/remover programas, depois adicionar/remover componentes, na lista marque a opção Serviços de Certificação e clique em OK/Finish ou qualquer outra coisa que seja, já esqueci! Após instalado abra o Serviço de Certificação (Iniciar / Ferramentas Administrativas / Autoridade de certificação), clique com o botão direito do mouse sobre o servidor que foi criado e escolha propriedades, depois clique no botão "Exibir certificado", na janela que aparecer escolha a aba "Detalhes" e clique no botão "Copiar para arquivo...", clique em avançar, escolha o formato codificado na base 64 e clique em avançar, escolha o local onde será gerado o certificado e depois OK/Finish ou qualquer outra coisa que seja, pronto! Criamos o certificado raiz do servidor AD, agora precisamos copiar para o servidor Linux, de preferência copie esse arquivo utilizando uma maneira segura (SSH).

Com o arquivo no servidor Linux mova-o para a pasta /etc/ssl/certs (Gentoo e OpenSuSE), ajuste as permissões (chmod 644 e chown root:) e execute o comando c_rehash. Abra o arquivo /etc/openldap/ldap.conf e adicione as seguintes linhas:
TLS_REQCERT never

TLS_CACERT /etc/ssl/certs/nome_certificado_copiado_do_ad.pem
TLS_CACERTDIR /etc/ssl/certs
Depois disso reinicie o serviço do Apache, crie sua aplicação PHP e pronto, lembrando que é necessário compilar o php com suporte a ldap e ssl! Abaixo tem um exemplo de uma aplicação para alterar a senha do usuário, lembre-se de adicionar as tags do php. Maiores informações no site do php.
$AD_server = "ldaps://srvad.teste.com";
$AD_Auth_User = "Administrador@teste.com";
$AD_Auth_PWD = "senha_administrador";
$AD_dn = 'CN=Users,DC=teste,DC=com';
$uid = "usuario_alterar";
$pwdold = "senha_antiga";
$pwdtxt = "novasenha";

$protocolVersion = 3;

$ldap = ldap_connect($AD_server);
if (!ldap_set_option($ldap, LDAP_OPT_PROTOCOL_VERSION, $protocolVersion)) {
exit('Falha em definir protocolo na versao '.$protocolVersion);
}
ldap_set_option($ldap, LDAP_OPT_REFERRALS, 0);
ldap_bind($ldap);
if (ldap_errno($ldap) !== 0) {
exit('Nao foi possivel conectar no servidor');
}
ldap_bind($ldap, $AD_Auth_User,$AD_Auth_PWD);
if (ldap_errno($ldap) !== 0) {
exit('ERRO: '.ldap_error($ldap));
}
$searchResults = ldap_search($ldap, $AD_dn, 'cn=*'.$uid.'*');
// no matching records
if ($searchResults === false){
exit('Usuario nao encontrado');
}

if (!is_resource($searchResults)){
exit('Erro na consulta.');
}
$newPassword = "\"" . $pwdtxt . "\"";
$len = strlen($newPassword);
$newPassw = "";

for($i=0;$i<$len;$i++) { $newPassw .= "{$newPassword{$i}}\000"; } $info["unicodepwd"] = $newPassw; $entry = ldap_first_entry($ldap, $searchResults); if (!is_resource($entry)){ exit('Couldn\'t get entry'); } $userDn = ldap_get_dn($ldap, $entry); $resultado = ldap_modify($ldap, $userDn, $info); if($resultado) { echo "Senha alterada com sucesso! "; }else{ echo "Erro! "; echo ldap_error($ldap)." "; }

7 de janeiro de 2008

Ano Novo = Novidades!!!

Opa,

É verdade, começa o ano e as novidades vão aparecendo, primeiro uma que na verdade chegou antes do ano novo, mas só estou apresentando agora, meu Notebook!!! É verdade, após muuuuuuuuito tempo finalmente consegui comprar, assim que possível tiro umas fotos dele ou gravo um vídeo do Desktop para a galera.

A segunda realmente chegou em 2008, podem comemorar, passei na prova que fiz em Recife para a LPI (Linux Professional Institute), assim que chegar o certificado e a carteirinha vou tirar umas fotos para a galera também. Agora é começar os estudos para a versão 2, já que sou LPIC-1 e pretendo tirar o LPIC-2 também. Ah! A galera que fez comigo (Wagner e Alexandre) também passaram.

Bem, por enquanto é isso, espero em breve ter mais novidades (boas).

5 de janeiro de 2008

Ano Novo em Porto de Galinhas!!!

Peeeeeeennnnnssssssssseeeeeeeee numa festa de Ano Novo onde todos estavam, como a galera dizia na casa, "MUUUIIITTTHHHHHOOOOO DOIDHOOOOO!!!!", hehehe...


Essa farra foi pra ficar na história, valeu galera!!! Até a próxima!!!