Manuel rodriguez práctica 2 apache

11
Práctica 2 Apache Autentificación LDAP y https Manuel Rodríguez Pozuelo

description

Configuración de Acceso a una carpeta privada con autenticación a través de LDAP e instalación de CMS en sitio web seguro

Transcript of Manuel rodriguez práctica 2 apache

Page 1: Manuel rodriguez   práctica 2 apache

Práctica 2 Apache Autentificación LDAP y https

Manuel Rodríguez Pozuelo

Page 2: Manuel rodriguez   práctica 2 apache

2 Práctica 2 Apache - Introducción

Manuel Rodríguez Pozuelo 2

Índice

Introducción ............................................................................................................................. 3

Acceso a carpetas privadas ................................................................................................. 3 Prueba de funcionamiento ........................................................................................................... 4

Acceso seguro .......................................................................................................................... 6

Instalación de Drupal ............................................................................................................ 8

Page 3: Manuel rodriguez   práctica 2 apache

3 Práctica 2 Apache - Introducción

Manuel Rodríguez Pozuelo 3

Introducción En este documento vamos a explicar como acceder a carpetas seguras identificándonos a través de un servidor LDAP previamente configurado. También configuraremos el acceso a un CMS a través del protocolo HTTPS.

Acceso a carpetas privadas Lo primero que necesitamos en nuestro servidor es activar lo necesario para permitir la autentificación en apache a través de un servidor LDAP. Para ello habilitamos los módulos de apache necesarios:

sudo a2enmod ldap

sudo a2nmod authnz_ldap

Vamos a crear una carpeta en /www/privada/ que será la que usaremos para el acceso privado, y dentro crearemos un index.html para la comprobación posterior.

Ahora vamos a definir un nuevo VirtualHost para el acceso a la carpeta privada, pero antes vamos a insertar en nuestro DNS una nueva entrada para el acceso a la carpeta privada, para acceder a través de http://privada.midominio.com:

Ahora creemos el VirtualHost en el fichero /etc/apache/sites-

availables/privada:

Page 4: Manuel rodriguez   práctica 2 apache

4 Práctica 2 Apache - Acceso a carpetas privadas

Manuel Rodríguez Pozuelo 4

Como podemos ver en la directiva <Directory>, hemos incluido las configuraciones de autentificación para que, cuando intentemos acceder a esa dirección para ver el contenido de esa carpeta, nos solicite el nombre de usuario y contraseña registrados en el servidor LDAP. Activamos el VirtualHost y reiniciamos apache:

Prueba de funcionamiento Ahora desde un cliente probemos a entrar en http://privada.midominio.com:

Page 5: Manuel rodriguez   práctica 2 apache

5 Práctica 2 Apache - Acceso a carpetas privadas

Manuel Rodríguez Pozuelo 5

Como vemos el navegador nos solicita autentificarnos para poder visualizar la página. Si introducimos usuarios y contraseñas que no estén en nuestro servidor LDAP veremos lo siguiente:

Introduzcamos un usuario registrado en LDAP:

Tenemos configurado correctamente nuestro acceso a una carpeta privada, autentificándonos a través de un servidor LDAP.

Page 6: Manuel rodriguez   práctica 2 apache

6 Práctica 2 Apache - Acceso seguro

Manuel Rodríguez Pozuelo 6

Acceso seguro Ahora vamos a configurar un VirtualHost nuevo para acceder a través de https. Apache instala un componente necesario para poder acceder a través de un protocolo seguro, que es el paquete OpenSSL. Además necesitaremos un certificado digital que podemos generar nosotros mismos. Este certificado no tendrá validez fuera de nuestra red, ya que no lo valida ninguna entidad certificadora. Aun así, vamos a generar nuestro propio certificado ejecutando lo siguiente:

sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf

/etc/ssl/certs/apache2.pem

La orden anterior forma parte de la misma sentencia, y genera un certificado a partir de un esquema básico (/usr/share/ssl-cert/ssleay.cnf). En este caso, vamos a habilitar una web segura para acceder a otro CMS, en este caso Drupal. Como hemos hecho antes, vamos a introducir su entrada correspondiente en el dns para su acceso a https://drupal.midominio.com y crear la carpeta /www/drupal/, con su index.html de prueba:

Ahora tenemos que habilitar el módulo SSL de apache y reiniciar:

sudo a2enmod ssl

sudo /etc/init.d/apache2 restart

Ahora añadamos un virtual host nuevo para el acceso seguro, en el fichero /etc/apache2/sites-availables/drupal :

Page 7: Manuel rodriguez   práctica 2 apache

7 Práctica 2 Apache - Acceso seguro

Manuel Rodríguez Pozuelo 7

Si observamos bien, hemos indicado en el VirtualHost que vamos a conectar por el puerto 443, que es el que usa el protocolo HTTPS. También indicamos la ruta del certificado que vamos a usar y en la directiva Directory indicamos que requiere esa autentificación a través del certificado generado. Ahora activemos el sitio, reiniciemos apache y comprobemos que funciona a través de https:

sudo a2ensite drupal

sudo /etc/init.d/apache2 restart

Al acceder nos da esta advertencia:

Como hemos comentado antes cuando generamos el certificado, al no poder validarse por una entidad certificadora, Firefox no reconoce el certificado y nos advierte de que puede no ser de confianza. Añadimos la excepción en el navegador:

Ya tenemos el acceso seguro configurado.

Page 8: Manuel rodriguez   práctica 2 apache

8 Práctica 2 Apache - Instalación de Drupal

Manuel Rodríguez Pozuelo 8

Instalación de Drupal Primero nos descargaremos la última versión desde http://drupal.org.es en nuestro servidor y lo descomprimimos:

Opcionalmente podemos bajarnos la traducción en español de http://localize.drupal.org/translate/languages/es y descargarnos la correspondiente a nuestra versión, en este caso. la 7.9. Nos descargamos un archivo .po que moveremos a /www/drupal/profiles/standard/translations/. Ahora necesitaremos modificar los permisos de la carpeta /www/drupal/ para que apache tenga acceso y crearemos la base de datos que usará drupal:

sudo chown –R root.www-data /www/drupal/

sudo chmod –R 2775 /www/drupal/

mysqladmin -u usuario --password="clave" create drupal

Ahora vayamos al directorio /www/drupal/sites/default/ y copiamos el archivo default.settings.php y lo pegamos con el nombre settings.php y lanzamos la página https://drupal.midominio.com :

Page 9: Manuel rodriguez   práctica 2 apache

9 Práctica 2 Apache - Instalación de Drupal

Manuel Rodríguez Pozuelo 9

Elegimos la instalación Standard y continuamos. Al haber descargado anteriormente el archivo de traducción, nos permitirá ahora elegir el idioma de drupal:

Page 10: Manuel rodriguez   práctica 2 apache

10 Práctica 2 Apache - Instalación de Drupal

Manuel Rodríguez Pozuelo 10

En el siguiente paso nos pedirá los datos de la base de datos que vamos a usar con drupal, así como el usuario de mysql que puede administrarla:

Tras unos minutos de instalación de Drupal, se nos solicitarán los datos del Sitio, como el nombre, el usuario que va administrar Drupal y configurarle una contraseña…:

Page 11: Manuel rodriguez   práctica 2 apache

11 Práctica 2 Apache - Instalación de Drupal

Manuel Rodríguez Pozuelo 11

Y tras este paso, ya tenemos Drupal instalado y listo para su administración: