Alterar password linux user pam autentication

3

Click here to load reader

Transcript of Alterar password linux user pam autentication

Page 1: Alterar password linux user   pam autentication

Usando o POPPASSD

O poppassd possibilita que qualquer usu?rio de uma m?quina Gnu/Linux possa alterar a senha corrente do

usu?rio selecionado atrav?s de um script PHP, abaixo voc? verifica com configurar este aplicativo etamb?m pega o source code do script PHP para executar o mesmo:

O poppassd criado Pawel Krawczyk(http://echelon.pl/pubs/poppassd.html), baseado no poppassd de John

Norstad, Roy Smith e Daniel L. Leavitt, cria um servi?o no linux que possibilita a troca de senhas no/etc/shadow ou /etc/passwd.

Como todo servi?o do Linux ,o poppassd ? associado a uma porta especifica.

Utilizando um script em php, podemos comunicar com essa porta e alterar a senha do usu?rio.

Link para download do poppassd : http://echelon.pl/pubs/poppassd-1.8.4.tar.gz

A instala??o do poppassd via c?digo fonte ? f?cil, vamos aos passos:

1. Instale as bibliotecas Linux-PAM(PAM-DEVEL) para C. O PAM fornece uma forma de programasautenticarem usu?rios em uma forma independente, baseada em “m?dulos de autentica??o”.

2. Crie uma pasta qualquer e descompacte o conte?do do arquivo poppassd-1.8.4.tar.gz.

Por exemplo :mkdir /usr/src/ poppassd

cd /usr/src/poppassd

tar zxvf poppassd-1.8.4.tar.gz

3. Como root execute:

make

make install

4. Adicione ao arquivo /etc/inetd.conf a seguinte linha:

poppassd stream tcp nowait root /usr/sbin/tcpd poppassd

5.Adicione ao arquivo /etc/services:

poppassd 106/tcp

O servi?o do poppassd neste caso est? utilizando a porta 106.

6.Adicione ao arquivo /etc/hosts.deny:

poppassd: nobody@localhost: allow

poppassd: ALL: deny

Estou liberando o acesso ao servi?o para o usu?rio nobody na maquina local(estou executando o script namesma maquina do servi?o do poppassd) e negando o acesso a outras maquinas e outros usu?rios, nobody

refere-se ao usu?rio que apache utiliza. Em algumas distrui??es o usu?rio do apache ? outro. No Suse

Linux o usu?rio ? wwwrun e no debian ele tem outro nome. Na duvida, busque no http.conf o nome dousu?rio, voc? deve encontrar algo assim:

User nobody

7.Adicione ao arquivo /etc/pam.d/poppassd:

#%PAM-1.0

Jaccon » Usando o POPPASSD http://jaccon.com.br/2004/04/usando-o-poppassd/

1 de 3 08/09/2010 17:16

Page 2: Alterar password linux user   pam autentication

#%PAM-1.0

auth required /lib/security/pam_pwdb.so shadow nullokaccount required /lib/security/pam_pwdb.so

password required /lib/security/pam_cracklib.so retry=3

password required /lib/security/pam_pwdb.so use_authtok nullok

8. Adicione ao arquivo /etc/syslog.conf :

local4.err /var/log/poppassd

9. Reinicie os servi?os do inetd.

Quem utiliza o mandrake pode instalar via rpm :

http://rpmfind.net/linux/RPM/mandrake/9.2/contrib/i586/poppassd-ceti-1.8.4-1mdk.i586.html

Para gosta do debian ou outra distribui??o baseada (por exemplo Kurumin) instalar o pacote via apt:

apt-get install poppassd ou dpkg -i nomedopacotepoppassd.deb

Download do pacote debian :

http://packages.debian.org/stable/mail/poppassd

< ?php

// Autor(a): Heloisa Karina Costa

// Fonte : http://bazar.conectiva.com.br/listas/linuxisp-br/arquivo/2001/10/msg00370.html// Conex?o para trocar senha de usu?rio sistema

// $servidor = ip do servidor de poppassd e autentica??o

// $porta = porta espec?fica do servi?o// $login = login do usu?rio

// $senhaold = senha atual

// $senhanew = nova senha

$socket = fsockopen($servidor,$porta);

if (!$socket) {

echo “Conex?o Recusada!”;}

$out = fgets($socket,4096);

if (strpos(”$out”,”500″)>-1) {echo “Conex?o Recusada!”;

}

fwrite($socket,”user $login\n”);$out = fgets($socket,4096);

if (strpos($out,”500″)>-1) {

echo “Usu?rio Inv?lido!”;}

fwrite($socket,”pass $senhaold\n”);

$out = fgets($socket,4096);

if (strpos($out,”500″)>-1) {

echo “Senha inv?lida!”;

}

fwrite($socket,”newpass $senhanew\n”);

Jaccon » Usando o POPPASSD http://jaccon.com.br/2004/04/usando-o-poppassd/

2 de 3 08/09/2010 17:16

Page 3: Alterar password linux user   pam autentication

fwrite($socket,”newpass $senhanew\n”);

$out = fgets($socket,4096);

if (strpos($out,”200″) >-1) {echo “Senha Alterada com Sucesso!”;

}

fwrite($socket,”quit\n”);?>

Jaccon » Usando o POPPASSD http://jaccon.com.br/2004/04/usando-o-poppassd/

3 de 3 08/09/2010 17:16