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



         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 e
         tamb?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 programas
         autenticarem 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 na
         mesma 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 do
         usu?rio, voc? deve encontrar algo assim:

         User nobody

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

         #%PAM-1.0

1 de 3                                                                                                         08/09/2010 17:16
Jaccon » Usando o POPPASSD                                                        http://jaccon.com.br/2004/04/usando-o-poppassd/


         #%PAM-1.0
         auth required /lib/security/pam_pwdb.so shadow nullok
         account 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 $loginn”);
         $out = fgets($socket,4096);

         if (strpos($out,”500″)>-1) {
         echo “Usu?rio Inv?lido!”;
         }

         fwrite($socket,”pass $senhaoldn”);
         $out = fgets($socket,4096);

         if (strpos($out,”500″)>-1) {
         echo “Senha inv?lida!”;
         }

         fwrite($socket,”newpass $senhanewn”);

2 de 3                                                                                                          08/09/2010 17:16
Jaccon » Usando o POPPASSD                        http://jaccon.com.br/2004/04/usando-o-poppassd/

         fwrite($socket,”newpass $senhanewn”);
         $out = fgets($socket,4096);

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

         fwrite($socket,”quitn”);
         ?>




3 de 3                                                                          08/09/2010 17:16

Alterar password linux user pam autentication

  • 1.
    Jaccon » Usandoo POPPASSD http://jaccon.com.br/2004/04/usando-o-poppassd/ 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 e tamb?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 programas autenticarem 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 na mesma 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 do usu?rio, voc? deve encontrar algo assim: User nobody 7.Adicione ao arquivo /etc/pam.d/poppassd: #%PAM-1.0 1 de 3 08/09/2010 17:16
  • 2.
    Jaccon » Usandoo POPPASSD http://jaccon.com.br/2004/04/usando-o-poppassd/ #%PAM-1.0 auth required /lib/security/pam_pwdb.so shadow nullok account 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 $loginn”); $out = fgets($socket,4096); if (strpos($out,”500″)>-1) { echo “Usu?rio Inv?lido!”; } fwrite($socket,”pass $senhaoldn”); $out = fgets($socket,4096); if (strpos($out,”500″)>-1) { echo “Senha inv?lida!”; } fwrite($socket,”newpass $senhanewn”); 2 de 3 08/09/2010 17:16
  • 3.
    Jaccon » Usandoo POPPASSD http://jaccon.com.br/2004/04/usando-o-poppassd/ fwrite($socket,”newpass $senhanewn”); $out = fgets($socket,4096); if (strpos($out,”200″) >-1) { echo “Senha Alterada com Sucesso!”; } fwrite($socket,”quitn”); ?> 3 de 3 08/09/2010 17:16