viernes, 21 de noviembre de 2008

Autenticación en Apache

Se utiliza para restringir el acceso, ya que el cliente (usuario) debe de autenticarse ante el Servidor, para acceder a unos determinados recursos.

El mecanismo es sencillo.

1 el cliente manda su nombre y contraseña.
2 el servidor la comprueba, en un archivo de nombres y contraseñas. Si el cliente puede acceder o no.

Para ello seguiremos los siguientes pasos:

1.Paso se crea nuestro directorio, que contendrá nuestra página web dentro de la ruta, /var/www que es la que se usa por defecto:

En nuestro caso utilizaremos:

/var/www/apache.com/index.html



2. Paso se crea una carpeta "passwd" donde se almacenan las contraseñas.

Se recomienda ponerlo en otro sitio distinto a la carpeta contiene nuestra web así que la colocaremos un nivel por encima de donde se encuentra nuestra carpeta, aunque podéis ponerla donde queráis.

En nuestro caso un nivel jerárquico por encima donde se encuentra nuestro directorio contiene la web.

/var/passwd

A continuación ahora crearemos el archivo contendrá los usuarios y contraseña, para ello aplicaremos el comando:

sudo htpasswd -c /var/passwd/ .htpasswd alumno





donde el argumento "-c" solo se utiliza al crear el primer usuario, si lo aplicaremos con sucesivos usuarios sobrescribimos el anterior perdiendo esa información.

Me pedira una contraseña, y que la vuelva a confirmar.
Para añadir posteriormente usuarios, no hará falta poner el argumento
"-c".


3. Paso se crea un archivo oculto ".htaccess" dentro del directorio queremos ocultar, en nuestro caso dentro de:

/var/www/apache.com/



Este fichero debe de quedar configurado tal como muestra:

AuthType Basic
AuthName "Pagina restringida de alumno"
AuthUserFile /var/passwd/.htpasswd
Require user alumno


Como podemos observar, se configurar con unas directivas en las cuales

AuthType Basic especificamos que tipo de identificación se va a llevar a cabo, en este caso basica.

AuthName especificamos un texto descriptivo.

AuthUserFile especificamos la ruta donde se encuentra el archivos donde cortejar la contraseña introducida.

Require user
especifica que entra un solo usuario, o usuarios aislado.



4. Paso una vez tenemos hecho el directorio contiene nuestra página web y el fichero oculto ".htaccess" . También tenemos creada la carpeta (passwd) contiene el fichero con las contreseñas (.htpasswd).

Debemos debemos de habilitar nuestra pagina web, para ello hay que dar de alta un hosts virtual, para ello nos vamos a la ruta:

/etc/apache2/sites-availables

Aqui dentro crearemos nuestro hosts virtual, con la novedad, de que hay que añadirle una directivas, las cuales nos permiten hacer que nuestro sitio web, haga uso del fichero ".htaccess" y quede así protegido.



Estas directivas son:

<Directory /var/www/apache.com/>
Order allow,deny
Allow from all
Directory
<Directory>


5. Paso y último, seria habilitar nuestro hosts virtual,

sudo a2ensite apache.com

Y reiniciar nuestro Servidor Apache surtan efecto los cambios.

sudo apache2ctl restart.



Hay una segunda forma que es en vez de con la directiva "Requiere user", pues sea "Requiere group", de tal forma con ello conseguimos añadir una nueva capa de seguridad, es decir si el usuario que introducimos en nuestros sitio web, no pertenece al grupo, o uno de los grupos, no podremos acceder a dicho recurso.

AuthType Basic
AuthName "Pagina restringida de alumno"
AuthUserFile /var/passwd/.htpasswd
AuthGroupFile /var/passwd/grupos
Require group team

Para ello debemos de crear, ademas una carpeta, con un fichero contendrá el
nombre del grupo, y sus usuarios





No hay comentarios: