Dossier de prácticas Administración de Web Sites Màster d Enginyeria del Software Desenvolupament d aplicacions sobre Internet Fundació Politècnica de Catalunya Jaume Moral Ros Albert Obiols Vives
1
2 Dossier de prácticas Para nuestras prácticas, supondremos que recientemente hemos llegado a una consultoría llamada SC-Consulting" y que nuestro trabajo consistirá en configurar y administrar el Web Site de esta empresa. El diseño de las páginas Web ha sido encargado a una empresa externa, que ya nos ha enviado algunas páginas Web para que hagamos públicas. En la empresa disponemos de un PC con Windows como nuestra estación de trabajo y un servidor corporativo donde tenemos instalado el Sistema Operativo Linux. A lo largo de estas prácticas instalaremos el servidor web Apache en el servidor corporativo y lo configuraremos para poder administrar el contenido y crear aplicaciones tanto para la intranet de la empresa como para el web externo. Este servidor será visible externamente con dos nombres: www.sc-consulting.com intranet.sc-consulting.com Configuracion básica 1.- Instalación y primeras configuraciones Instalar el servidor Apache en nuestro directorio de usuario siguiendo los pasos explicados en la guía de instalación Para evitar conflictos con el resto de usuarios, tendremos que cambiar el puerto por el que estamos escuchando. El puerto a utilizar será 8000 + numero de grupo. Por ejemplo, todas las pruebas que queramos hacer con el grupo 1 serán a la siguiente URL: http://www.sc-consulting.com:8001/ No debemos olvidar este número, ya que deberemos ponerlo en todas las peticiones que hagamos a nuestro servidor. Con la instalación por defecto tendremos la documentación del servidor, que deberemos utilizar frecuentemente en pasos posteriores. Lo primero que cambiaremos en nuestra configuración será el directorio document root. Para ello, crearemos un subdirectorio llamado web dentro de htdocs donde colocaremos los ficheros que componen nuestro web. Para poder acceder a los manuales, cosa que deberemos hacer habitualmente, crearemos un Alias que apunte al directorio donde los hemos dejado, que en estos
momentos esta descolgado del árbol web. A este directorio sólo podremos acceder nosotros desde nuestro PC. Para acabar esta configuración inicial, cambiaremos los mensajes de error para que no den una información tan críptica. Crearemos un directorio errores donde colocaremos nuestras propias pantallas de error. Así pues, deberemos: 3 Instalar Apache. Cambiar el document root. Mapear el directorio de manuales para que sea accesible únicamente desde nuestra estación de trabajo (o más concretamente, solo desde nuestra dirección IP). Cambiar los mensajes de error 2.- SSI Para nuestro web deberemos activar Server Side Include en las páginas HTML, ya que nos basaremos en tener las cabeceras y los pies de página en ficheros aparte. También nos han pedido que aparezca de forma automática la fecha de modificación de los documentos en la parte inferior. Para una mejor organización, tendremos los gráficos y los ficheros a incluir en unos directorios aparte. Así pues, deberemos Copiar los ficheros que tenemos en los directorios correspondientes Activar SSI en los las paginas HTML situadas en el directorio de documentos Modificar el pie de página para que aparezca la fecha automáticamente 3.- Servidores virtuales En SC Consulting nos interesa tener dos servidores virtuales: uno de ellos será el web público (accesible como www.sc-consulting.com) y el otro nos servirá para la intranet (accesible como intranet.sc-consulting.com). A la intranet solo podremos acceder desde las direcciones IP de la empresa. Para no duplicar la información, crearemos un nuevo server root para este servidor al mismo nivel del directorio web llamado intranet y crearemos alias para los directorios del otro servidor web que nos interesa utilizar, que serán /bitmaps /includes En el servidor llamado intranet, nos interesará cambiar los mensajes de error, de manera que trasladaremos lo que hemos cambiado en las prácticas anteriores dentro del primer VirtualHost.
4 Resumiendo: Crear un virtual host para la intranet protegido para nuestro dominio de direcciones IP. Crear alias para los directorios comunes Poner los cambios dentro del virtual host correspondiente 4.- Directorios de usuario Queremos que nuestros usuarios tengan derecho a crear sus propias paginas web para poder informar sobre sus proyectos o sus aficiones, así que deberemos configurar Apache para que lo permita. La forma estándar de crear estas páginas es ponerlas en un directorio public_html que cuelga del home directory de cada usuario. Tal y como dice en la documentación, no hay que olvidar deshabilitar el del usuario root. En estos ficheros dejaremos que los usuarios puedan definir sus propias protecciones, tanto a nivel de dirección IP (allow/deny) como con ficheros de password. El resto de directivas no podrán redefinirse y deberán permitir: - indexación de directorios - no seguir soft links Para comprobar que todo funciona, crearemos nuestra página personal, que deberá ser accesible con una URL del estilo de http://www.sc-consulting.com:numero_puerto/~username_grupo Crearemos un directorio para dejar documentación, en el cual no habrá ninguna página index.html y uno al cual solo podremos acceder desde nuestro PC y desde el de nuestros compañeros de al lado. Esto último lo configuraremos a través de ficheros.htaccess Podemos hacer pruebas para ver que no podremos desactivar la indexación de directorios Resumiendo, nuestras tareas serán: Dar soporte a directorios de usuario Permitir a los usuarios crear sus protecciones Crear una página de usuario con un directorio protegido
5 Protecciones y seguridad 5.- Secciones protegidas del web Hasta ahora hemos tenido una intranet únicamente accesible desde nuestra empresa. Los que queremos ahora es convertir la intranet en una sección protegida de nuestro web, de forma que podamos entrar desde cualquier lugar identificados con un usuario y un password. Utilizaremos el comando htpasswd para crear y mantener un fichero de usuarios en el que daremos de alta a los miembros de nuestro equipo y a nuestros compañeros más cercanos. En la página de entrada a la intranet podemos añadir código SSI para que se nos muestre el usuario con el que hemos entrado, a modo de saludo. Para ver en que variable está el usuario, utilizaremos printenv tal y como nos muestra la documentación en la parte del SSI. Tareas a hacer: Crear un fichero de passwords Proteger la intranet con este fichero Añadir SSI a la página principal de la Intranet 6.- Servidor seguro El segundo paso para proteger nuestra intranet es convertir nuestro virtual host intranet en un servidor seguro. Para ello, deberemos recompilar el Apache con soporte para SSL, siguiendo los pasos de las instrucciones de instalación. Es un proceso un poco largo, pero no especialmente complicado. Una vez añadido el soporte para SSL, se generará un fichero httpd.conf.default en el directorio de configuración con las directivas que se han añadido para la activación de SSL. Deberemos mezclar los dos ficheros con cuidado para conservar todas las características que habíamos introducido hasta ahora. Tareas a hacer: Añadir SSL a la intranet conservando la configuración actual
6 Soporte para aplicaciones 7.- Soporte para CGI Se nos ha pedido una página en nuestro web externo que permita enviar información a los visitantes de nuestro web. Para no complicarlo demasiado, hemos pensado que la forma más sencilla es utilizar un CGI que trate la información del formulario y nos envie un mail. Existen muchos CGI de este tipo ya hechos. El que utilizaremos se llama formmail.pl Deberemos crear un directorio para ejecutar CGI, colocar este y hacerlo funcionar correctamente con el formulario de petición de información que tenemos en nuestro web. Instalar el formmail.pl y ejecutarlo con nuestro formulario 8.- Instalación de soporte para PHP No contentos con el soporte de CGI, nuestro web también necesitará utilizar el lenguaje de script PHP para algunas de sus funcionalidades. Deberemos instalarlo y asociarlo a la extensión php3 Instalar el soporte para PHP3 9.- Instalación de soporte para servlets La intranet de SC-Consulting estará basada en servlets, así que deberemos instalar el módulo Jserv tal como se explica en la documentación de instalación. Tal y como se instala el módulo, las servlets estarán visibles en el directorio /servlets para todos los virtual hosts. En nuestro caso, esto no nos interesa, ya que únicamente las utilizaremos para la intranet y nos interesa que estén protegidas con password. Deberemos investigar el contenido del fichero jserv.conf que se incluye desde httpd.conf y adaptarlos para que únicamente se puedan ejecutar desde la intranet. Instalar el soporte para servlets únicamente para la intranet
7 Utilidades auxiliares 10.- Buscadores Instalar el indexador swish-e y crear un índice para el contenido que hay en el directorio htdocs. Nos interesará también indexar el directorio manuals. Para poder acceder a este índice, instalaremos un script en PHP3 que nos servirá para buscar. Deberemos personalizar este script para que se adapte a la imagen corporativa. 11.- Análisis de logs Analizaremos los logs de la FIB de la ultima semana, intentando responder a las siguientes preguntas: Horas punta del servicio de Web Páginas y secciones del Web más visitadas Desde donde se conectan nuestros clientes (alumnos en este caso) Qué páginas no tenemos en el servidor