Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Alterar password linux user pam autentication

1,004 views

Published on

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Alterar password linux user pam autentication

  1. 1. 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
  2. 2. 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
  3. 3. 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

×