UT3 - WordPress.com

Anuncio
UT3 – Servidores web
Carlos Redondo
SERVICIOS EN RED
Caso Práctico 4 – Instalación de Apache en Ubuntu
Abrimos el gestor de paquetes synaptic (en caso de que no esté instalado
introducimos “sudo apt-get install synaptic” en la terminal)
Buscamos apache2, lo marcamos para instalar y hacemos clic en Aplicar.
Si todo va bien, abrimos un navegador e introducimos http://localhost en el
navegador, deberá aparecer una página por defecto diciendo que el apache funciona.
Si abrimos la terminal y ejecutamos la orden “apache -v” nos deberá salir la versión
de apache que tenemos instalada.
Para editar la página de bienvenida, abrimos nautilus y nos vamos a
“/var/www/apache2-default” (en mi caso “/var/www/”) y abrimos un archivo
index.html con un editor de textos para modificar la página de bienvenida.
4.1 – Webmin apache server
Si nos dirigimos a http://www.webmin.com/standard.html, deberíamos poder ver el
módulo de apache para Webmin
Desde la interfaz de Webmin, nos vamos a Webmin → Configuración de Webmin →
módulos de Webmin y en instalar módulos desde directorio local, buscamos e
instalamos el módulo que nos habíamos descargado
anteriormente.
Ahora comprobamos que en la pestaña servidores aparece
una entrada de apache.
4.2 – Enlace de Apache a alumno1.ser2.com
Una vez instalado, queremos que cuando en el navegador queramos acceder a
apache.aulaSER.com, que nos redirija a servidor apache.
En el navegador de Webmin, nos dirigimos al servidor apache, y a “existing virtual
hosts” aquí, entraremos en el servidor default y a la opción “Redes y
Direccionamiento” desde aquí, podemos establecer el nombre del host.
Guardamos y aplicamos los cambios, y cuando accedamos desde el navegador a
dicha dirección, nos debería redirigir al servidor apache (eso si tenemos añadida en el
archivo hosts, la dirección introducida y para que redirija a localhost).
Caso Práctico 5 – Módulos en Apache
Vamos a usar el módulo Userdir como ejemplo en la activación y desactivación de
módulos apache. Para esto, desde Webmin, nos vamos a la configuración global de el
servidor apache y a configuración de módulos, seleccionamos el módulo Userdir y a
“enable selected modules” para activarlo .
Volvemos a la configuración global de apache y abrimos “Editar archivos de
configuración” y desde aquí buscamos userdir.conf en el menú desplegable.
Aquí podemos ver la configuración del módulo userdir. También podemos
configurarlo gráficamente siguiendo la ruta “Servidor Web Apache → Existing
virtual hosts → Servidor por defecto → Opciones del documento (Document
Options)”
Desde aquí, con este módulo, cada usuario puede crear su propia página web, y que
por defecto, tienen que colgarla en la carpeta “public_html” en su carpeta Home y
tienen acceso todos los usuarios excepto “root”.
Si el usuario “Alumno1” intentase crear su propia página web y colgarla del servidor
que hemos creado, para eso, tendría que tener acceso a userdir, al no ser el usuario
root, lo tiene. Solamente tendría que crear una carpeta “public_html” en su directorio
y colgar un archivo “index.html”
En el navegador, si escribimos http://apache.aulaSER.com/~Alumno1/ Nos debería
llevar a la página creada por el Alumno1 y colgada en su home
si quisieramos llegar sin necesidad de usar el carácter “~” habría que definir un alias.
Desde el entorno gráfico de Webmin, volvemos a las opciones del servidor por
defecto y elegimos la opción “Alias y redireccionamientos” y añadimos la dirección.
Ahora deberíamos poder acceder a la página sin tener que poner el símbolo “~”.
Caso Práctico 6 – Hosts virtuales en Apache
A continuación vamos a crear un Host virtual en Apache2 con Webmin.
Desde Webmin, en el menú de la izquierda ir a Servidor web Apache, y a
continuación ir a “crear host virtual”
especificar que atienda peticiones desde cualquier dirección, que use el puerto 80 y
que el nombre sea virtualA.aulaSER.com, a continuación darle a crear ahora y aplicar
cambios. También habría que asignar un fichero raíz para que cargue la página desde
ahí, y no la que teníamos antes del host virtual por defecto.
En hosts virtuales existentes, debería haber una nueva entrada.
A continuación, si nos vamos a editar el archivo /etc/hosts (o en caso de que
tengamos preparado un servidor DNS de BIND nos vamos a BIND) Y añadimos el
registro que incluya la dirección del host que acabamos de crear y la IP del equipo en
el cual guardamos la información.
Una vez hecho esto, desde el navegador, deberíamos poder llegar a la nueva página
introduciendo la dirección del nuevo host que hemos creado.
Caso Práctico 7 – Autenticación en Apache
A continuación configuraremos la autenticación en apache mediante autenticado
básico y digest.
Desde el servidor web Apache, ir a configuración global → Configurar módulos
apache.
Aqui, entre las primeras opciones de la
izquierda, veras auth_basic y justo debajo
auth_digest, asegúrate de que el basic esté
activado, luego volveremos para activar el
digest y ver como funciona.
Para configurar el módulo auth_basic, en el menú de la izquierda, ir a Otros →
Directorios Web Protegidos → Agregar protección para un nuevo directorio.
Aseguraros que la ruta del directorio que introduzcáis esté en el host virtual por
defecto y que os permita la utilización de archivos .htaccess, se puede comprobar y
editar, si consideras oportuno, entrando en Editar directivas del host virtual.
Al darle a crear, os redirigirá a una página que os pedirá que especifiquéis los
usuarios que tengan permisos para
acceder al dominio protegido.
Nosotros hemos dado de alta al
usuario alumno, con la contraseña
alumno.
Dentro del directorio que hemos
especificado antes, encontraremos
un archivo .htpasswd que contiene
el nombre de usuario y la contraseña encriptada.
Ahora, si volvemos al navegador e intentamos volver a la página, nos debería pedir
que introduzcamos usuario y contraseña.
Lo malo de el auth_basic, es que si entráramos con un programa como wireshark y
mirásemos las conexiones, podríamos ver los credenciales sin cifrado ninguno.
QUE ALGUIEN ME SALVE DE ESTE INFIERNO
Ahora mostraré el mismo proceso pero con auth_digest.
Nos aseguramos de crear un directorio llamado directorio_digest en la carpeta
/var/www/
Activamos el módulo y nos vamos a Directorios Web Protegidos, como antes, y
añadimos un nuevo directorio protegido, especificamos la ruta, elegimos cifrado
digest y en Dominio de autenticación, escribimos el nombre del directorio.
Añadimos el usuario Alumno2 a los usuarios asociados al directorio.
Nos vamos a configuración global de apache, entramos en editar archivos de
configuración y cargamos /etc/apache2/sites-available/default.
Vamos al final de archivo y añadimos las siguientes 3 lineas
<Directory "var/www/directorio_digest">
AllowOverride AuthConfig
</Directory>
A continuación abrimos la terminal y escribimos el comando “sudo htdigest -c
/var/www/directorio_digest/.usudigest directorio_digest alumno2” y con esto ya nos
debería pedir autorización al intentar entrar en localhost/directorio_digest.
Y si comprobamos la conexión en wireshark, veremos que aparece el nombre de
usuario aunque la contraseña aparece cifrada.
4.7 – Control de acceso en apache
Cuando se realiza una petición HTTP a un servidor, este puede responder o no,
dependiendo de a máquina o la IP desde la que se ha hecho la solicitud.
En la configuración del servidor, se utilizan las directivas Allow (permitir) y Deny
(denegar). También está la directiva Order, que indica el orden en el cual se deben
aplicar las directivas anteriores.
La sintáxis de las directivas es “Deny from *” donde * puede ser una IP o el nombre
de una máquina y dominio.
ACTIVIDADES
1. ¿Como podrías saber que servicio está escuchando en el puerto 80?
Con un programa como el Nmap, que te permita rastrear los puertos etc.
2. ¿Recuerdas dónde se coloca el puerto que quieres utilizar en el navegador
cuando introduces una URL?
Al fina de la url, ejemplo: www.periquito.com:20000
3. ¿Sabrías diferenciar un texto convencional de un hipertexto?
Un texto convencional viene a ser eso, texto, mientras que hipertexto
puede incluir vídeos, imágenes, enlaces y hasta funciones.
4. Haz una comparativa entre los protocolos HTTP 1.0 y 1.1 comentando las
diferencias más importantes.
HTTP 1.1 es más extenso que 1.0, con un mayor número de funciones.
1.1 incluye el método “OPTIONS” lo que permite a un cliente descubrir las
capacidades de un servidor. Tiene un sistema de caché más avanzado. Menos
malgasto de banda ancha. Finalmente, 1.1 también incluye una lista mayor de
notificación de errores, además de arreglos en vulnerabilidades de seguridad.
5. Averigua cuál es el RFC correspondiente al protocolo HTTP 1.0
RFC 1945
6. Averigua cuáles son los subtipos multipart más importantes
avi, bmp, html, java, css, jpeg, mpeg y plain
7. Observa el contenido completo del archivo /etc/mime.types ¿Que tipos
conoces? Haz una relación de los que desconoces y averigua para qué
aplicaciones sirven.
8. Abre el archivo de MIME en Windows para comprobar que son los mismos
tipos estándar. ¿Encuentras diferencias con el mismo archivo de GNU/Linux?
¿Cuales? ¿Por qué crees que sucede esto?
9. Obtén un listado de los tipos MIME. Acude a alguna web de confianza como,
por ejemplo, http://www.iana.org.
http://www.iana.org/assignments/media-types/media-types.xhtml
10.Desde Webmin comprueba todos los tipos MIME que hay activados en el
servidor de aula aulaSER.
Hay tres de tipo application y uno de tipo text. Los de aplicación son xcompress, x-bzip2 y x-gzip, mientras que el de tipo texto es para html.
11.Averigua los RFC implicados en la definición de los tipos MIME.
2045, 2046, 2047, 4288, 4289 y 2049
12.¿Que diferencia hay entre las páginas estáticas y las páginas dinámicas?
Una página estática está hecha solamente con HTML e incluye enlaces
simples, unas cuantas imágenes y texto puro, mientras que una página dinámica
puede contener animaciones hechas con java, audio, videos, menús desplegables, etc,
aunque para esto hace falta el uso de otros lenguajes de programación.
13.Haz una comparativa entre los dos servidores web más conocidos y
extendidos: Apache e IIS. Localiza alguna web con información al respecto
http://www.scriptrock.com/articles/iis-apache
IIS
Apache
S.O. Soportado
Windows
Linux, Unix, Windows, Mac
Att Usuario y fixes
Corporación
Comunidad
Coste
Gratis con Windows
Completamente gratis
Desarrollo
Cerrado, propietario
Código abierto
Seguridad
Excellente
Buena
Rendimiento
Buena
Buena
Uso
32%
42%
14.¿Como comprobarías que el servidor web Apache está ejecutandose?
Con el comando ps en Ubuntu para ver procesos activos o el
administrador de tareas en Windows
15.¿Como comprobarías en qué puerto está escuchando Apache2?
Lanzando el comando “Sudo Gedit /etc/apache2/ports.conf” y
comprobando que hay una linea que normalmente pone “Listen 80” aunque puede
tener otro número.
16.¿Cómo comprobarías el PID del proceso correspondiente a Apache2?
Con el comando “ps -ef | grep apache2” se puede comprobar que tiene su PID es
15344.
17.¿Cuanto
conoces
de
Apache?
http://www.htmlpoint.com/test/apache.htm
escogiendo solo una de las cinco opciones.
Visita
la
página
web
y responde a las preguntas
18.¿Cómo podrías saber si el puerto 80 está abierto en tu sistema?
Una manera fácil de saberlo es haciendo un telner seguido de tu ip y el puerto,
ejemplo “telnet localhost 80”
19.Haz una tabla comparativa de diferentes clientes web en la que queden
reflejadas sus principales características. Usa como referencia la tabla
disponible de la Wikipedia.
20.¿Cual es tu navegador favorito? ¿Por qué? Razona la respuesta.
Mozilla Firefox, por su facilidad de uso, sus ajustes para usuarios
avanzados y sus constantes actualizaciones y protocolos de seguridad.
21.Averigua ¿qué son y para qué sirven las cookies?
Es un archivo que se intercambia entre el cliente y el servidor y se usa
para guardar una variedad de cosas: Guardar contraseñas, configuración, cuentas de
usuario, etc.
22.¿Cuál crees tú que es el objetivo de la utilización de los módulos?
Un Módulo en apache es una forma de agrupar varios funcionamientos y servicios en
el servidor.
23.¿Cuál es el significado de las directivas FileInfo Auth Config Limit Indexes?
FileInfo: permite uso de directivas que controlen tipos de documento.
AuthConfig: Permite el uso de directivas de autorización.
Limit: Permite el uso de directivas que controlen el acceso del host.
Indexes: Permite el uso de directivas que controlen el directorio de indexación.
24.¿Crees que es útil definir archivos .htaccess?
Si, ya que ayudan con el manejo de usuarios y configuración del servidor.
25.¿Crees que es segura la utilización de archivos .htaccess? ¿Por qué?
Si y no, mientras que el acceso al servidor esté restringido y nadie pueda acceder a
estos archivos.
26.¿Que ventajas e inconvenientes tiene la utilización de hosts virtuales?
Permite alojar varios dominios en una sola máquina.
27.Haz una tabla resumen de las directivas implicadas en la creación de hosts
virtuales.
<VirtualHost>, NameVirtualHost, ServerName, ServerAlias y ServerPath
28.¿Cómo bloquearías el acceso al dominio completo aulaSER.com?
Deny from aulaSER.com
Descargar