Squirrelmail: Metodo sencillo para que los usuarios puedan cambiar su contraseña

Imagen de RazaMetaL

Descargamos el plugin desde:

cd /usr/src
wget http://www.squirrelmail.org/plugins/change_pass-2.7a-1.4.x.tar.gz

Descargamos poppassd

wget ftp://netwinsite.com/pub/poppassd/poppassd.c

Instalamos poppassd:

gcc poppassd.c -o poppassd -lcrypt
cp poppassd /usr/sbin

Creamos el archivo poppassd dentro de /etc/xinet.d que contenga:

#
# default: off
#
# description: The POPPASSD service allows remote users to change their
#
# password remotely via Eudora or NUPOP using a network
#
# protocol on port 106.
#
#
#
service poppassd
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/sbin/poppassd
log_on_success += USERID
log_on_failure += USERID
}

Reiniciamos xinetd:

/etc/init.d/xinetd restart

poppassd utiliza el puerto 106, si tenemos un firewall entonces debemos tener abierto ese puerto.

Podremos probar si poppassd esta funcionando haciendo telnet al localhost en el puerto 106:

# telnet localhost 106
Trying 127.0.0.1...
Connected to mail.midominio.com.ec (127.0.0.1).
Escape character is '^]'.
200 midominio.com.ec poppassd v1.6a hello, who are you?

Instalamos el plugin change_pass:

cp change_pass-2.7a-1.4.x.tar.gz /usr/share/squirrelmail/plugins/
cd /usr/share/squirrelmail/plugins/
tar zvxf change_pass-2.7a-1.4.x.tar.gz

Ejecutamos el script de configuración de squirrelmail:

../config/conf.pl

En el script conf.pl activaremos el plugin change_pass y guardamos los cambios.

Ahora debemos probar de que efectivamente funciona, si abrimos squirrelmail desde el navegador y nos logueamos veremos una nueva opción en las opciones que sirve para cambiar a contraseña. Ingresaremos la contraseña actual y la contraseña nueva para que sea cambiada. Si obtenemos un error como:


BAD PASSWORD: it is based on a dictionary word

Significa que pam esta utilizando el modulo cracklib. La mayoría de las veces este error desaparece si nuestra contraseña contiene números, letras y símbolos, ó si es una contraseña con mas de 8 caracteres. Si no queremos tener contraseñas tan largas o difíciles (mala idea) basta con comentar el módulo pam_cracklib.so en /etc/pam.d/system-auth :

#password requisite pam_cracklib.so try_first_pass retry=3
password sufficient pam_unix.so md5 shadow nullok try_first_pass use_authtok
password required pam_deny.so

Comentarios

Me aparece lo siguiente.

telnet localhost 106
Trying 127.0.0.1...

telnet: Unable to connect to remote host: Connection refused

-----

porque puede estar apareciendo esto?

gracias por las respuestas :)

No me resulta

Tengo instalado poppassd ya que lo trate de instalar y me salio esto.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Wed Feb 15 09:40:13 2012 from 200.111.122.2
root@hcdsmail:~# apt-get install poppassd
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
>poppassd ya está en su versión más reciente.
0 actualizados, 0 se instalarán, 0 para eliminar y 76 no actualizados.
root@hcdsmail:~#

Despues no puedo crear el archipo poppasd dentro de xinet.d porque me sale esto...
root@hcdsmail:/etc# cd /xinet.d
-bash: cd: /xinet.d: No existe el fichero o el directorio


y no puedo reiniciar el servicio xinetd porque sale esto...
root@hcdsmail:/etc# cd /etc/init.d/xinetd restart
-bash: cd: /etc/init.d/xinetd: No es un directorio
root@hcdsmail:/etc#

... esta todo mal ..jajajaj

pues fíjate bien en lo que

Imagen de deathUser

pues fíjate bien en lo que haces, debes tener un poco de conocimiento de lo que haces, aunque, tengo que reconocer que hay algunos HOW-TOS tan bien hechos que si copias y pegas tal como te lo dicen funciona (sin saber leer ni escribir, respecto a lo que trata el howto...), es mejor si entiendes cada cosa que estás haciendo, para eso, basta con leer las páginas de manual de los comandos involucrados ...

[quote=hmontoyal]Despues no puedo crear el archipo poppasd dentro de xinet.d porque me sale esto...
root@hcdsmail:/etc# cd /xinet.d
-bash: cd: /xinet.d: No existe el fichero o el directorio[/quote]
Si te fijas tratas de ingresar en un directorio "xinet.d" en la raíz "/", normalmente está ubicado bajo el directorio /etc por lo que el comando adecuado sería ...


cd /etc/xinetd.d

[quote=hmontoyal]y no puedo reiniciar el servicio xinetd porque sale esto...
root@hcdsmail:/etc# cd /etc/init.d/xinetd restart
-bash: cd: /etc/init.d/xinetd: No es un directorio[/quote]
Si te fijas el mismo linux te da la respuesta "cd" lo usas para cambiar de directorio (son las siglas de Change Directory, casi todos los comandos de linux/unix son acrónimos o abreviaturas de las acciones a realizar), y como no es un directorio pues no puedes cambiarte a el, lo correcto sería:


/etc/init.d/xinetd restart

Lee nuevamente el COMO y fíjate en lo que hiciste mal.

bye
;)

!!!

jajaj tenias mucha razon estaba ejecutando algunos comando mal y no soy muy experimentado en linux, reinicie xinetd y probe cambiar la pass desde el web y me arrojo

--> 500 Old password is incorrect.

y lo intente varias veces pero no funciona, estoy buscando que puede ser pero si me puedes seguir ayudando seria excelente.

Saludos !!!

error 500 a mi también me

error 500 a mi también me salio al momento de hacer todas las pruebas, lo que hice fue que desinstale el poppassd


apt-get remove poppassd

y lo volví a instalar de esta manera


apt-get install poppassd

después edite en /etc/services

poppassd 106/tpc
#poppassd 106/udp esta linea la elimine

y en el directorio /etc/pam.d
edite el poppassd con lo siguiente, si no existe se crea como fue mi caso


@include common-aut
@include common-password

Páginas