Autentificacion sql antonio_hermoso

6

Click here to load reader

Transcript of Autentificacion sql antonio_hermoso

Page 1: Autentificacion sql antonio_hermoso

AUTENTIFICACION CON

SQL Y APACHE

Page 2: Autentificacion sql antonio_hermoso

ANTONIO HERMOSO GONZÁLEZ

PRÁCTICA

2

Autentificación de usuarios en apache con mysql

Para realizar esta práctica utilizaremos el módulo libapache2-mod-auth-mysql

Lo instalamos :

aptitude install libapache2-mod-auth-mysql

Y lo activamos con el comando: a2enmod auth_mysql y posteriormente

reiniciamos apache

En mi caso ya lo tenía activado

Antes de crear la base de datos utilizamos el programa htpasswd. Este

programa se instala al instalar uno de los modulos de apache2. Seria de la

siguiente manera.

aptitude install libapache2-mod-auth-pam

Page 3: Autentificacion sql antonio_hermoso

ANTONIO HERMOSO GONZÁLEZ

PRÁCTICA

3

Ya tendriamos instalado el programa. Para usarlo simplemente:

htpasswd -c claves.txt hermoso

*claves.txt, seria el fichero donde se guardan usuario y contraseña. hermoso

seria el usuario y la contraseña te la pediría. Después simplemente a el insertar

los datos, hacemos un insert normal, y ponemos la contraseña del fichero.

Para este modulo, necesitaremos crear una base de datos y unas tablas.

Por ejemplo:

mysql> create database seguridad

mysql> grant all on seguridad.* to hermoso@'localhost'

identified by 'hermoso';

mysql> use seguridad;

mysql> create table clientes(

nombre varchar(25) not null,

pass varchar(44) not null,

primary key (nombre));

Page 4: Autentificacion sql antonio_hermoso

ANTONIO HERMOSO GONZÁLEZ

PRÁCTICA

4

Para encriptar las contraseñas utilizaremos el cifrado Crypt. Para ello

podemos hacer dos cosas.

Al crear la base de datos, en el insert, ponemos un parámetro para que la

encripte. Los insert serian así:

INSERT INTO `seguridad`.`clientes`

VALUES (

'hermoso', ENCRYPT( 'hermoso' )

);

Page 5: Autentificacion sql antonio_hermoso

ANTONIO HERMOSO GONZÁLEZ

PRÁCTICA

5

Tras estos pasos, ya tenemos configurada nuestra base de datos con los

usuarios y sus contraseñas. Ahora tenemos que configurar el VirtualHost. Para

ello creamos el arhcivo /etc/apache2/sites-available/seguridad. Lo editamos, y

tiene que quedar de este modo:

<VirtualHost *:80>

ServerAdmin webmaster@localhost

ServerName seguridad.mysql

DocumentRoot /var/www/seguridad

<Directory /var/www/seguridadl/>

Options Indexes FollowSymLinks MultiViews

AllowOverride None

Order allow,deny

allow from all

AuthType Basic

AuthName "Usuario y contraseña" # Texto que te aparecerá

AuthBasicAuthoritative Off

AuthUserFile /dev/null

AuthMYSQL on

AuthMySQL_Authoritative on

AuthMySQL_DB seguridad # Nombre de la base de datos

AuthMySQL_Host localhost

AuthMySQL_User hermoso # Usuario de la base de datos

AuthMySQL_Passwordhermoso # Contraseña del usuario

AuthMySQL_Password_Table clientes # Nombre de la tabla

AuthMySQL_Username_Field nombre # Fila de los nombres

AuthMySQL_Password_Field pass # Fila de las contraseñas

AuthMySQL_Empty_Passwords off

AuthMySQL_Encryption_Types Crypt # Tipo de cifrado

Require valid-user

</Directory>

</VirtualHost>

las directivas que tienen comentarios, son las mas importantes, pueden

cambiar dependiendo de como sea nuestra base de datos o de la encriptación

en el caso de Crypt. Se podría encriptar también con otro tipo de encriptación

como sha1 o md5.

Page 6: Autentificacion sql antonio_hermoso

ANTONIO HERMOSO GONZÁLEZ

PRÁCTICA

6

Y activamos el modulo con a2ensite seguridad y reiniciamos apache

Yo también lo tenía ya activado