Tiene 2 métodos:
Basic y Digest , la primera envía la contraseña desde el cliente hasta el navegador sin encriptar, mientras la segunda lo encripta:
Haremos la prueba capturando tramas con un Sniffer conocido como el wireshark (lo podeís decargar aquí) desde nuestro servidor web y veremos el usuario y contraseña bajo protocolo http:
Crearemos los usuarios siguiendo los siguientes pasos:
1ro.- Crearemos un txt donde estarán nuestros usuarios, lo llamaremos users.txt (lo podéis guardar por ejem. en la unidad C:\).
2do.- Ahora crearemos los usuarios ,con el siguiente comando, y así con todos los usuarios que querramos , muy importante la ruta de htpasswd en entorno ms-dos (usuario=sole, password=12345aA):
C:\Apache2\bin>htpasswd C:\users.txt sole
Automatically using MD5 format.
New password: *******
Re-type new password: *******
Adding password for user sole
Una vez ejecutado lo anterior, abrimos el archivo que creamos para los usarios "users.txt" y veremos como se codifica la contraseña que le hemos puesto a nuestros usuarios:
3er.- Ahora editaremos nuestras directivas(en este ejemplo trabajo con virtual host para cada IP, no es muy común, lo normal es que sea por nombre), nuestro código será el siguiente en httpd-vhosts.conf (c\apaceh2\conf):
ServerName 192.168.20.1
NameVirtualHost 192.168.20.10
NameVirtualHost 192.168.20.8
ServerName www.s2k07.com
ServerAlias 3ws.s2k07.com
DocumentRoot "C:\Apache2\sites\s2k07.com"
DirectoryIndex index.html index.htm default.html default.htm
########## Directivas www.s2k07.com ##########
AuthType Basic
AuthName "Acceco Restringido!!!!"
AuthBasicProvider file
AuthUserFile "C:\users.txt"
Require user sole
##############################################
ServerName www.ejemplo07.net
ServerAlias *.ejemplo07.net
DocumentRoot "c:/Apache2/sites/ejemplo07.net"
DirectoryIndex index.html index.htm
########## Directivas www.ejemplo07.net ##########
AuthType Basic
AuthName "Acceco Restringido!!!!"
AuthBasicProvider file
AuthUserFile "C:\users.txt"
Require user sole
Lo probamos nos conectamos a la url, en este caso es www.ejemplo07.com, y con el sniffer y veremos como podemos capturar el usuario y su contraseña:
Ahora lo haremos en modo AuthType Digest. Este método está implementado en mod_auth_digest y es mucho más seguro. Este tipo de atutentificación encripta las contraseñas y de esta manera no podremos capturarlas atra vez de un sniffer.
Configuración de la directiva Digest:
Tenemos que cargar el modulo Digest para funcione(por defecto viene comentada) para eso tenemos que descomentar en nuestro httpd.conf la siguiente línea:
LoadModule auth_digest_module modules/mod_auth_digest.so
AuthName "Acceso privado"
AuthType Digest
AuthUserFile "C:\user_digest.txt"
Require valid-user
valid-user=Cualquier usuario que este dado de alta en modo digest , no funciona con nombres de usuarios.
Ahora para la creación de nuestro user digest a comparación del basic es distinto, no funciona con el htpass , utiliza htdigest (C:\Apache2\bin), desde cmd:
C:\Apache2\bin>htdigest -c C:\user_digest.txt "Acceso privado" arturo
Adding password for arturo in realm Acceso privado.
New password: *******
Re-type new password: *******
NO OLVIDEMOS REINICIAR O HACER UN RELOAD, UNA VEZ HECHO LOS CAMBIOS.
Ahora nos conectaremos a s2k07.com y con el sniffer en marcha veremos que la contraseña del usuario estara encriptada.
Es pero que os haya servido de algo mi experiencia con apache....saludos y cualquier consulta duda, comente..................
1 comentarios:
Perfecto, ahora lo entiendo!!!!!!!!!!!!!1 genial artículo..............
Publicar un comentario