Introducción a Apache 2 Francisco Blas Izquierdo Riera (klondike) Administrador de Sistemas de la Asociación de Cración Universitaria de Videojuegos y.

Slides:



Advertisements
Presentaciones similares
Jesús Río Barrilero Antonio Jesús Muñoz Del Río
Advertisements

Caracteristicas Apache
AppServ Implantación de Aplicaciones Web. Conceptos previos LAMP = Linux (SO) + Apache (Servidor Web) + MySQL (BBDD) + PHP (Web dinámicas). WAMP = Windows.
PHP Implantación de aplicaciones Web. Arquitectura web en PHP.
Configuración de DNS, DHCP e IIS Conferencia 12. Sumario: Instalación del servicio DNS. Agregar y autorizar un servicio Servidor DHCP Internet Information.
¡LOS SERVIDORES DE FTP Y NUBE!
CardSpace. Índice Comprendiendo la identidad digital Comprendiendo la identidad digital Describiendo la identidad digital Describiendo la identidad digital.
COMUNICACIÓN Y TIC Ángela Espinosa Hayler Peñaranda.
¿Que es PHP? PHP Hypertext Preprocessor Y solo porque me quiero hacer el profesor cool y meter un chiste: PHP también significa: Para Hacer Páginas.
ASPECTOS GENERALES. Introducción. ¿Qué es Moodle? Arquitectura. Especificaciones técnicas. Características generales. ¿Cómo puede ayudar Moodle en clase?
PROGRAMACIÓN ORIENTADA A OBJETOS SEGUNDA UNIDAD: “CLASES, OBJETOS Y MÉTODOS” IRVING YAIR SALAS CHÁVEZ ING. EN SISTEMAS COMPUTACIONALES - ITSLP.
BASE DE DATOS EN LA WEB POR- OSIRYS MARCIAGA JESUS NIETO.
V 14: Nuevos Procedimientos
Servidor de aplicaciones
MERCADEO ELECTRONICO ALOJAMIENTO WEB.
UF0854: Instalación y configuración de los nodos de una red local.
SERVIDOR ESCUELA LINUX
Convenciones de nomenclatura y diseño
Aplicación de parámetros para envío vía en el módulo de TRANSDOC
Introducción al Proyecto
File Transfer Protocol (FTP)
Páginas para crear un personaje animado
PHP Hypertext Preprocessor
LOS DIFERENTES LENGUAJES DE PROGRAMACION PARA LA WEB
MetaLib Activar Primo Central como recurso
MERCADEO ELECTRONICO ALOJAMIENTO WEB.
Windows server 2008.
Tópicos de bases de datos
Aplicaciones Web 1 CAPITULO 1 Introducción a las aplicaciones Web Ing. Jeffery Naranjo Msc
SERVIDORES WEB Integrantes: Hernández Zapata Alexis Gilberto
Google docs.
MANTIS BUG TRACKER.
Actividad 3 Herramienta tarea
Conalep plantel Zitácuaro 240
QUE ES UN NAVEGADOR ? Es una aplicación que opera a través de Internet, interpretando la información de archivos y sitios web para que éstos puedan ser.
2.5 Seguridad e integridad.
Proceso de resolución de un nombre de dominio
ACTIVIDAD 3 HERRAMIENTA TAREAS.
ADMINISTRACIÓN DE USUARIOS
INTERNET Actividad 3 Herramientas Tareas Ruben Dario Acosta V.
COMO CREAR UN BLOG EN BLOGGER
Instalaciones Desatendidas
Introducción (Principales diferencias entre Wordpress .com y .org)
Modelo de interacción de usuario.  El Desarrollo basado en modelos de la interfaz de usuario, en inglés Model-based User Interface Development (MB-UID),
FUNDAMENTOS DE PROGRAMACION EN ENTORNO WEB. Rodrigo Cabello Ing. Informático Director de proyectos Think – Ideas in Motion FUNDAMENTOS.
DISEÑO WEB Sesion 1.
Migrando WordPress a HTTPS
A RQUITECTURA C LIENTE - SERVIDOR La arquitectura del cliente servidor se divide en dos partes Los promovedores de recursos o servicios llamados servidores.
¿Qué es un sistema operativo y para qué sirve? Un sistema operativo (SO) es un programa informático cuyo principal objetivo es permitir.
Esquema de Respaldos Locales Esquema de Respaldos Locales APLICACIONES UTILIZADAS ABRIL-2018 Cobian Backup es un programa multitarea que podemos usar para.
Servidores web. ¿Cómo funciona la web? Internet Cliente Web ( Netscape, Internet Explorer, Firefox, etc.) Servidor Web Servidor de nombres (DNS) 2.
Sistema de referencia de documentos
Javascript.
Entendiendo PHP En diseño de software en el Front-end es la parte del software que interactúa con los usuarios. Es la persona que se encarga del diseño.
¿ Qué es Wamp Server? Es un entorno de desarrollo web que nos va a permitir tener nuestro propio servidor o host local (instalado en nuestro ordenador).
Bases para una Tienda Online  En internet hay muchas posibilidades de negocios, desde ofrecer servicios hasta la venta de productos.  Usando el sistema.
Autenticación Unidad 3. La autenticación es un aspecto fundamental de la seguridad de un sistema. Confirmar la identidad de cualquier usuario que intenta.
Planificación Curso UNIDAD 1. INTRODUCCIÓN A LOS SERVICIOS EN RED
DHCP - Principios básicos de routing y switching.
Lenguajes del lado del cliente
Instalación y configuración de un servidor ftp Accede a tu archivos desde cualquier parte del mundo.
Docente: Valerio Herrera, Luis E. Experiencia Formativa III Semana 4: Servidores Web.
DESARROLLO DE APLICACIONES WEB INSTRUCTOR: HEMERSON VILLACORTA MANIHUARI.
Tecnología Web Rodrigo Durán y Juan Díaz. ¿Que es?
SERVICIOS DE ALMACENAMIENTO EN LA NUBE DE QUE SE TRATA El Almacenamiento en la Nube consiste en guardar archivos en un lugar de Internet. Esos lugares.
CRUD.
Intr. a la creación y gestión de páginas web
INTERNET Todos lo usamos… Alguien sabe como funciona?
¿Que es un Blog? Curso Uso didáctico dos novos medios 2009 A Coruña.
Transcripción de la presentación:

Introducción a Apache 2 Francisco Blas Izquierdo Riera (klondike) Administrador de Sistemas de la Asociación de Cración Universitaria de Videojuegos y de Xiscosoft.

¿Qué explicaremos aquí? ● Qué es un servidor web y para que sirve ● Diferencias entre servidores web. ● Instalación de Apache 2 ● Configuración básica de Apache 2. ● Configuración de SSL en Apache 2: CAcert. ● Algunos trucos para realizar configuraciones más avanzadas.

¿Qué es un servidor web? Un servidor web es un aplicación encargada de generar y enviar hiperdocumentos a un cliente, generalmente un navegador. Dichos hiperdocumentos pueden estar ya generados, ser estáticos, o generarse en ese momento, ser dinámicos.

¿Qué puedes hacer con un servidor web? Con un servidor web puedes tener una interfaz a otros servicios, así como ofrecer los tuyos propios. Por ejemplo puedes mantener un Podcast y un blog y acceder a tu correo y a un servicio de mensajería instantánea sin configurar ningún cliente (pues todo S.O. decente en la actualidad lleva un navegador).

¿Qué necesito para hacerme uno? ● Una máquina que esté encendida mientras quieras ofrecer el servicio. ● Una conexión a la red de la máquina ● Acceso al puerto donde corra el servidor ● Muchas ganas y algo de paciencia.

Diferencias entre servidores web Existen bastantes diferencias, desde los lenguajes soportados para generar los hiperdocumentos, y las características de estos habilitadas, a las opciones de configuración, pasando por su estructura interna para satisfacer las peticiones.

Ejemplo: Apache 2 y Cherokee ● Apache 2 – Muy extensible – Amplía gama de módulos – Filosofía variada, inicialmente orientada a proceso – Soporte para PHP5 vía módulo y CGI – Pesado ● Cherokee – Menos extensibilidad – Módulos integrados en el núcleo. – Filosofía orientada a hilo. – Soporte para PHP5 vía CGI – Ligero

Ejemplo: Apache 2 y Cherokee ● Apache 2 – Muy extendido y soportado – Configuración mediante ficheros XML – Configuración distribuible en varios ficheros. ● Cherokee – Poco extendido, la mayoría de aplicaciones web requieren configuración específica. – Configuración gráfica – No es posible distribuir la configuración

Instalación de Apache 2 Generalmente basta con obtenerlo de los repositorios (o en windows descargarse el instalador), pero puede compilarse. ¿Algún voluntario para la demo?

¿Alguna pregunta?

Configuración básica En Apache 2 todos los ficheros de configuración suelen ser ficheros XML (los de arranque del servidor pueden no serlo). Las directivas siguen el formato: Datos donde datos puede ser otras directivas u opciones de configuración.

Ejemplo de directivas Alias /vhcp /home/klondike/vhcp AllowOverride AuthConfig Limit Options FileInfo

¿Qué son las directivas? Cómo se puede ver, las directivas permiten indicar el alcance y la inclusión de los parámetros de configuración. Y cuales son esos parámetros.

La directiva AllowOverride La directiva AllowOverride permite habilitar (o deshabilitar el uso) de ficheros del tipo.htaccess y indicar que parametros se pueden modificar en los mismos. En los ejemplos antes mentados se ve en acción.

La directiva Options La dirtectiva Options permite indicar que opciones son de aplicación a un directorio, por ejemplo la generación de índices. También hay varios ejemplos.

Demo Explicaciónes varias sobre una configuración por defecto de Apache.

¿Alguna pregunta?

SSL, generación del certificado Para generar la petición del certificado es recomendable el uso de algún script helper como el proporcionado por Cacert. Para aquellos que prefieran generar su propio certificado recomiendo buscar por “generating selfsigned certificates” Nosotros usaremos csr.sh o Certificate Signing Request Generator descargable en ript

Traza de ejecución del csr.sh $ bash csr.sh Private Key and Certificate Signing Request Generator This script was designed to suit the request format needed by the CAcert Certificate Authority. Short Hostname (ie. imap big_srv www2): apachessl FQDN/CommonName (ie. : Type SubjectAltNames for the certificate, one per line. Enter a blank line to finish SubjectAltName: DNS:*.apachessl.com SubjectAltName: DNS:*.apachessl.es SubjectAltName: DNS:apachessl.es SubjectAltName: DNS:apachessl.com SubjectAltName: DNS: Running OpenSSL... Generating a 2048 bit RSA private key

Traza de ejecución del csr.sh writing new private key to '/root/apachessl_privatekey.pem' Copy the following Certificate Request and paste into CAcert website to obtain a Certificate. When you receive your certificate, you 'should' name it something like apachessl_server.pem -----BEGIN CERTIFICATE REQUEST END CERTIFICATE REQUEST----- The Certificate request is also available in /root/apachessl_csr.pem The Private Key is stored in /root/apachessl_privatekey.pem $

Obteniendo el certificado firmado Para que Cacert firme el certificado es necesario acreditar la posesión de un dominio y subir el request usando el formulario apropiado. Puedes obtener más información al respecto en:

Configurando apache2 para usar SSL Generalmente basta con copiar los ficheros.cert y.key generados a la carpeta apropiada y activar la opción (o el módulo) con el método adecuado a tu distro; de todas formas es recomendable revisar la configuración. En samples/includes/ssl.include hay un pequeño ejemplo con los parámetros más relevantes.

¿Alguna pregunta?

Algunas configuraciones avanzadas La posibilidad de incluir ficheros y de definir parámetros de configuración de forma condicional unida a la posibilidad de definir parámetros en el arranque, permite realizar configuraciones muy portables y originales que facilitan la resolución de problemas. A continuación algunos ejemplos.

Ejemplo 1: corriendo dos instancias con algunos aspectos compartidos. En este ejemplo se asume que se arranca una instancia con “ -D server1 ” y la otra con “ -D server2 ” NameVirtualHost *:80 Include includes/example.com.include NameVirtualHost *:8080 Include includes/example.com.include

Soporte de expresiones regulares Apache 2 soporta expresiones regulares muy semejantes a las existentes en perl. A modo de referencia aquí hay algunos ejemplos. En ellos se lee por ejemplo “ (?i)\.txt$ ” que significa ignorando mayúsculas y minúsculas “ (?i) ” aquellos que acaben “ $ ” en.txt (el punto se escapa con “ \ ” porque sino significa cualquier carácter). También se puede usar el carácter “ | ” para expresar alternatividad entre opciones.

Ejemplo 2: evitando el acceso a ciertos ficheros peligrosos Order Allow,Deny Deny from all Order Allow,Deny Deny from all

Creación de plantillas para facilitar las tareas repetitivas Muchas veces nos encontramos con que usamos el mismo código para ciertos aspectos. Separar este código en ficheros aparte y utilizar plantillas suele facilitar mucho el mantenimiento y la reutlización del mismo

Ejemplo 3: una plantilla para dominios con y sin SSL donde se fuerza el empleo de SSL Comprobar el fichero adjunto samples/ssl_forced_host.conf.info

Ejemplo 4: Distribuyendo configuraciones repetitivas (SSL) Ver los ficheros samples/includes/ssl_force.include y samples/includes/ssl.include

Ejemplo 5: Combinándolo todo: hosts con SSL Ver el fichero samples/hostname.include.info

Restringiendo el acceso Existen dos formas de autentificación (directa) de usuarios en HTTP, BASIC y DIGEST. El uso de DIGEST es algo más seguro (los datos van hasheados), pero lo mejor es combinarlas con SSL para datos sensibles. Además, también se puede restringir el acceso basándose en la IP (y en otros aspectos como el cliente reportado). Para generar las bases de datos se usan htpasswd (hashes usables con basic) y htdigest (hashes usados con basic y digest).

Ejemplo 6: htdigest y htpasswd $ htdigest -c.htpasswd "Hola Mundo" "klondike" Adding password for klondike in realm Hola Mundo. New password: Re-type new password: $ $ htpasswd -c.htpasswd "klondike" New password: Re-type new password: Adding password for user klondike $

Un par de consideraciones de seguridad Los métodos de identificación mediante contraseña sólo es recomendable usarlos junto con SSL. Por otro lado, los métodos de restricción basados en la IP y en algunos otros factores pueden ser evitados con conocimientos suficientes. Además, es MUY recomendable dejar el fichero con la base de datos de claves fuera del alcance de apache, aunque generalmente se intenta protegerlo.

Ejemplo 7: Directorio de acceso restringido. Options Indexes AllowOverride None AuthType Digest AuthName "Acceso restringido a miembros externos a la UPV" AuthUserFile /etc/.htpasswd Require user klondike Order Deny,Allow Deny from all Allow from /16 Allow from /32

Directiva ServerName Aunque no es obligatoria permite evitar algunas quejas del servidor al arrancar, su uso es: “ ServerName "example.com" ”

¿Alguna pregunta?

Gracias por vuestro tiempo ● Recursos interesantes: – Documentación de Apache: – Expresiones regulares en Perl: – Diapositivas de la charla: