61
1 NONBRE DEL PROYECTO: Unidad 5 NOMBRE DEL ALUMNO: Acuña Cruz Germán NOMBRE DE LA MATERIA: Sistemas Web NOMBRE DE LA PROFESORA: Gallardo Godinez José Antonio FECHA DE ENTREGA 29-MAYO-2013

unidad 5

Embed Size (px)

DESCRIPTION

servidores y aplicacion del servidor apache

Citation preview

1

NONBRE DEL PROYECTO:

Unidad 5

NOMBRE DEL ALUMNO: Acuña Cruz Germán

NOMBRE DE LA MATERIA:

Sistemas Web

NOMBRE DE LA PROFESORA: Gallardo Godinez José Antonio

FECHA DE ENTREGA

29-MAYO-2013

2

INDICE

SERVIDORES Definición……………………………………………………..6

Características………………………………………………….13 Especificaciones……………………………………………….14 Tendencias……………………………………………………..15 Compatibilidad con S.O……………………………………….16 Clasificaciones…………………………………………………17

APACHE

Historia…………………………………………………………18 Definición………………………………………………………18 Características…………………………………………………..21 Tendencias………………………………………………………21 Versiones……………………………………………………….22 Compatibilidad con S.O………………………………………..23 Configuración………………………………………………….24 Instalación………………………………………………………29 Administración…………………………………………………29 Ventajas………………………………………………………..42 Desventajas…………………………………………………….43 Seguridad………………………………………………………45 Cuadro comparativo de apache y I.I.S………………………...47

Conclucion y bibliografia……………………………………..61

INDICE DE FIGURA Imagen 1………………………………………………………………6 Imagen 2………………………………………………………………6 Imagen 3………………………………………………………………13 Imagen 4………………………………………………………………14 Imagen 5………………………………………………………………14 Imagen 6………………………………………………………………14 Imagen 7………………………………………………………………29 Imagen 8………………………………………………………………29 Imagen 9………………………………………………………………30 Imagen 10……………………………………………………………..30 Imagen 11……………………………………………………………..31 Imagen 12……………………………………………………………..31 Imagen 13……………………………………………………………..32 Imagen 14……………………………………………………………..32 Imagen 15……………………………………………………………..33 Imagen 16……………………………………………………………..33 Imagen 17……………………………………………………………..35 Imagen 18……………………………………………………………..35 Imagen 19……………………………………………………………..35 Imagen 20……………………………………………………………..35

3

Imagen 21……………………………………………………………..36 Imagen 22……………………………………………………………36 Imagen 23……………………………………………………………37 Imagen 24……………………………………………………………37 Imagen 25……………………………………………………………38 Imagen 26……………………………………………………………38 Imagen 27……………………………………………………………39 Imagen 28……………………………………………………………39 Imagen 29……………………………………………………………39 Imagen 30……………………………………………………………40 Imagen 31……………………………………………………………40 Imagen 32……………………………………………………………40 Imagen 33……………………………………………………………40 Imagen 34……………………………………………………………40 Imagen 35……………………………………………………………41 Imagen 36……………………………………………………………41 Imagen 37……………………………………………………………41 Imagen 38……………………………………………………………42 Imagen 39……………………………………………………………42 Imagen 40……………………………………………………………43 Imagen 41……………………………………………………………53 Imagen 42……………………………………………………………53 Imagen 43……………………………………………………………54 Imagen 44……………………………………………………………55 Imagen 45……………………………………………………………56 Imagen 46……………………………………………………………57 Imagen 47……………………………………………………………58 Imagen 48……………………………………………………………58 Imagen 49……………………………………………………………58 Imagen 50……………………………………………………………59 Imagen 51……………………………………………………………59 Imagen 52……………………………………………………………59 Imagen 53……………………………………………………………60

4

Introducción En este trabajo se tocan muchos puntos de interés para personas que les llame la atención lo que es sistemas y todo lo que contrae esto, en este trabajo se dan definiciones de que es un servidor , características, compatibilidad, clasificación , etc. Por otro lado cuando se toca el punto de apache se trata de que el que lea este trabajo entienda los fundamentos de un servidor Web en este caso seria apache . De apache puedo decir que se toca toda la historia como se formo un definición, y todo lo que contrae el servidor Web para que puedas tener una buena elección cuando requieras uno, en esto se trata de dar o ampliar los conocimientos acerca de de que es un servidor y para que nos puede servir ya que teniendo un poco de información relacionada con esto podemos decir que será de gran ayuda. Ya que los servidores en la actualidad es una herramienta básica para cualquier empresa o institución ya que ahí se almacena información confidencial la cual tiene que estar salvaguardada por lo cual es importante saber todo lo que se requiere y el rendimiento para asi poder tomar una buena decisión y escoger un buen servidor. Este trabajo va dirigido a todo aquel que le interese lo que son los temas de apache, linux y servidores or que abarca fundamentos basicos para saverq que es un servirdor y todo lo que contrae este.

5

Objetivo General Dar a conoser los fundamentos principales de lo que es un servidor web y todo lo que lleva consigo mismo, por ejemplo el servidor Apache para que los que no estaban enterados de estos temas seles haga un tema importante. Objetivo Especifico Ver la manera de poder ofreser la información desde sus inicion como definicones de un servidor

6

¿Qué es un servidor? Un servidor, como la misma palabra indica, es un ordenador o máquina informática que está al “servicio” de otras máquinas, ordenadores o personas llamadas clientes y que le suministran a estos, todo tipo de información. A modo de ejemplo, imaginemos que estamos en nuestra casa, y tenemos una despensa. Pues bien a la hora de comer necesitamos unos ingredientes por lo cual vamos a la despensa, los cogemos y nos lo llevamos a la cocina para cocinarlos.

Imagen n°1 Así en nuestro ejemplo, nuestra máquina servidor sería la despensa, y los clientes somos nosotros como personas que necesitamos unos ingredientes del servidor o despensa. Pues bien con este ejemplo podemos entender ahora un poco mejor qué es un servidor. Por tanto un servidor en informática será un ordenador u otro tipo de dispositivo que suministra una información requerida por unos clientes (que pueden ser personas, o también pueden ser otros dispositivos como ordenadores, móviles, impresoras, etc.). Por tanto básicamente tendremos el siguiente esquema general, en el denominado esquema “cliente-servidor” que es uno de los más usados ya que en él se basa gran parte de internet.

7

Imagen n°2 Como vemos, tenemos una máquina servidora que se comunica con variados clientes, todos demandando algún tipo de información. Esta información puede ser desde archivos de texto, video, audio, imágenes, emails, aplicaciones, programas, consultas a base de datos, etc. Por regla general, las máquinas servidoras suelen ser algo más potentes que un ordenador normal. Sobre todo suelen tener más capacidad tanto de almacenamiento de información como de memoria principal, ya que tienen que dar servicio a muchos clientes. Pero como todo, también depende de las necesidades, ya que podemos tener un servidor de menores prestaciones si vamos a tener pocos clientes conectados, o si los servicios que queramos en el servidor no requieren una gran capacidad servidora. A modo de ejemplo, podríamos hacer funcionar un ordenador en nuestra casa como si fuera un servidor, aunque esto no es lo más habitual. Por general, los servidores suelen estar situados en centros de datos de empresas (edificios con grandes salas dedicadas a alojar a los servidores). Un servidor web es un programa que sirve para atender y responder a las diferentes peticiones de los navegadores, proporcionándo los recursos que soliciten usando el protocolo HTTP o el protocolo HTTPS (la versióncifrada y autenticada). Un servidor web básico cuenta con un esquema de funcionamiento muy simple, basado en ejecutar infinitamente el siguiente bucle: Espera peticiones en el puerto TCP indicado (el estándar por defecto para HTTP es el 80). Recibe una petición. Busca el recurso. Envía el recurso utilizando la misma conexión por la que recibió petición. Vuelve al segundo punto. Un servidor web que siga el esquema anterior cumplirá todos los requisitos básicos de los servidores HTTP, aunque sólo podrá servir ficheros estáticos. A partir del anterior esquema se han diseñado y desarrollado todos los servidores de HTTP que existen, variando sólo el tipo de peticiones (páginas estáticas, CGIs, Servlets, etc.) que pueden atender, en función de que sean o no sean multi-proceso o multi-hilados, etc. A continuación se detallan algunas de las características básicas de los servidores web, que amplían, obviamente el esquema anterior. Servicio de ficheros estáticos Todos los servidores web deben incluir, al menos, la capacidad para servir los ficheros estáticos que se hallen en alguna parte del disco. Un requisito básico es la capacidad de especificar qué parte del disco se servirá. No resulta recomendable que el programa servidor obligue a usar un directorio concreto, aunque sí puede tener uno por defecto. La mayoría de servidores web permiten añadir otros directorios o subdirectorios para servir, especificando en qué punto del "sistema de ficheros" virtual del servidor se localizarán los recursos. Algunos servidores web permiten también especificar directivas de seguridad (quién puede acceder a los recursos), mientras que otros hacen posible la especificación de los ficheros que se deben considerar como índice del directorio. Seguridad y autenticación

8

La mayoría de los servidores web actuales permiten controlar desde el programa servidor los aspectos relacionados con la seguridad y la autenticación de los usuarios. Podemos, por ejemplo, tener la siguiente situación:

Directorio del disco Directorio web

/home/apache/HTML /

/home/empresa/docs /docs

/home/jose/informe /informe-2003

En este caso, el servidor debería traducir las direcciones web de esta manera:

URL Fichero de disco

/index.html /home/apache/html/index.html

/docs/manuales/producto.pdf /home/empresa/docs/manuales/producto.pdf

/empresa/quienes.html /home/apache/html/empresa/quienes.html

/informe-2003/index.html /home/jose/informe/index.html

El modo más sencillo de control es el facilitado por el uso de ficheros .htaccess. Se trata de un sistema de seguridad que deriva de uno de los primeros servidores web ("NCSA httpd"), que consiste en incluir un fichero de nombre .htaccess en cualquier directorio del contenido web que se deba a servir, indicando en este fichero qué usuarios o máquinas, etc. tienen acceso a los ficheros y a los diferentes subdirectorios del directorio donde está instalado el .htaccess. Como el "NCSA httpd" fue el servidor más utilizado durante mucho tiempo, la mayoría de servidores actuales permiten utilizar un fichero .htaccess respetando la sintaxis original del servidor de NCSA. Hay otros servidores que permiten especificar reglas de servicio de directorios, subdirectorios y ficheros en la configuración del programa servidor web, indicando qué usuarios, máquinas, etc. tienen acceso al recurso indicado. En cuanto a la autenticación (validación del nombre de usuario y la contraseña o clave indicados por el cliente), las prestaciones ofrecidas por los difernetes servidores web son variopintas. La mayoría permite, al menos, facilitar al servidor web un fichero con nombres de usuario y contraseñas mediante el cual se pueden validar los datos enviado desde el cliente. De todas formas, es frecuente que los servidores faciliten pasarelas que permiten delegar las tareas de autenticación y validación en otro software (como RADIUS, LDAP, etc.). Si se utiliza un sistema operativo como Linux, el cual dispone de una infraestructura para autenticación como PAM ("pluggable authentication modules"), se puede usar tal funcionalidad como modo de autenticación del servidor web, permitiéndo de este modo utilizar los múltiples métodos disponibles en PAM para autenticar contra diversos sistemas de seguridad. Contenido dinámico Uno de los aspectos fundamentales del servidor web elegido es el nivel de soporte que ofrece para servir contenido dinámico. Puesto que la mayor parte del contenido web que se sirve no viene de páginas estáticas, sino que se genera de forma dinámica, y esta tendencia se mueve claramente al alza, el soporte para contenido de tipo dinámico que ofrece un servidor web es uno de los puntos críticos en la elección. La mayor parte de los servidores web ofrecen soporte para CGI (se debe recordar que los CGI son el método más antiguo y sencillo para generar contenido dinámico). Otros

9

muchos ofrecen soporte para algunos lenguajes de programación (normalemente lenguajes interpretados) como PHP, JSP, ASP, etc. Es muy recomendable que el servidor web que vayamos a utilizar proporcione soporte para algunos de estos lenguajes, especialmente PHP, sin tener en cuenta JSP, que normalmente requerirá un software externo para funcionar (como un contenedor de Servlets). La oferta es muy amplia, pero antes de elegir un lenguaje de programación de servidor se debe plantear si se desea un lenguaje muy estándar para que la aplicación no dependa de un servidor web o una arquitectura concreta o si, al contrario, la portabilidad no es prioritaria y sí lo es alguna otra prestación concreta que pueda ofrecer algún lenguaje de programación concreto. Servidores virtuales Una prestación que gana aceptación y usuarios rápidamente, muy especialmente entre los proveedores de servicios de Internet y las empresas de alojamiento de dominios, es la capacidad de algunos servidores web de facilitar múltiples dominios con una única dirección IP, discriminando entre los diferentes dominios alojados en función del nombre de dominio enviado en la cabecera HTTP. Esta prestación permite la administración racional y ahorradora de un bien escaso, las direcciones IP. Si se necesitan muchos nombres de servidor (porque proporcionamos alojamiento o por cualquier otro motivo) debemos asegurarnos de que el servidor web elegido ofrezca esta facilidad y que el soporte que ofrece para servidores virtuales permita una configuración distinta para cada servidor. Sería perfecto que cada servidor se comportara como si fuese un ordenador diferente. Prestaciones extra Son muchas las prestaciones que ofrecen los diferentes servidores web para diferenciarse de la competencia. Algunas son realmente útiles y pueden decidir la elección de servidor. Hay que ser conscientes, sin embargo, de que si utilizamos algunas de estas características, o si éstas devienen imprescindibles, ello nos puede ligar a un determinado servidor web e imposibilitar una migración posterior. Algunas características adicionales de ciertos servidores web de código libre son: Spelling (Apache). Esta prestación permite definir una página de error que se sirve cuando el servidor no ha encontrado el recurso solicitado. Proporciona una página web configurable generada por el servidor que muestra, por ejemplo, su estado de funcionamiento o su nivel de respuesta. RXML Tags (Roxen). Añade al lenguaje HTML algunos tags (etiquetas, comandos de HTML), mejorados que permiten generar contenido dinámico. SQL Tags (Roxen). Añade al HTML extendido de Roxen (RXML, antes mencionado), ciertos comandos para acceder a bases de datos SQL desde las páginas HTML. Graphics (Roxen). Añade al HTML extendido de Roxen (RXML, antes mencionado), ciertos comandos para generar gráficos, títulos, etc. Bfnsgd (AOLServer), mod_gd (Apache). Permite realizar gráficos partiendo de texto y de fuentes True Type. mod_mp3 (Apache), ICECAST, MPEG (Roxen). Permiten convertir el servidor web en un servidor eficiente de música (con streaming, etc.). Throttle (Roxen), mod_throttle (Apache). Facilitan herramientas para limitar la velocidad del servicio de HTTP, en función del usuario, del servidor virtual, etc. Nsxml (AOLServer), tDOM (AOLServer), mod_xslt (Apache). Permiten transformar ficheros XML a partir de XSL.

10

Kill Frame (Roxen). Envía con cada página web un código que evita que la web quede enmarcada (como "frame") dentro de otra página web. En cierto modo, evita que nos "roben" nuestra página web. Actuación como representantes Algunos servidores permiten su uso como servidores intermedios (proxy servers). Se pueden usar los servidores intermedios para diferentes propósitos: Servir de aceleradores de navegación (uso como proxy-caché). Servir como aceleradores de acceso frontal para un servidor web, instalando diferentes servidores web que repliquen los distintos accesos a un servidor maestro (reverse-proxy o HTTP server acceleration). Como frontales a algún servidor o algún protocolo. Ciertos servidores web permiten su uso como servidores intermedios para alguno de los usos mencionados. Sin embargo, para los 2 primeros usos existen programas específicos de código libre que son más eficientes, entre los que destaca, por ejemplo, Squid (http://www.squid-cache.org/), que se considera unánimemente como uno de los mejores productos de proxy. Hay módulos para diversos servidores web que permiten su uso como frontales para otros servidores especializados en otros servicios. Protocolos adicionales Algunos servidores, no sólo atienden y sirven peticiones HTTP (y HTTPS), sino que pueden servir también peticiones basadas en otros protocolos o en protocolos implementados sobre HTTP. Algunos de estos protocolos pueden ser requisitos fundamentales de nuestro sistema (en función de nuestras necesidades) y decantar nuestra elección de un programa servidor. TERMINOS

� Vamos ahora a introducir algunos términos que son muy usados cuando nos referimos a servidores. Estos términos suelen usarse para definir lo que hace un servidor. Por ejemplo, se suele llamar servidor web a aquél cuya actividad principal es enviar páginas web a los usuarios que las solicitan cuando se conectan a internet. Veamos los términos usados habitualmente cuando se habla de servidores:

� Proxy: Es un programa u ordenador que hace de intermediario entre dos

ordenadores. Supongamos que nosotros nos identificamos como “juanito” y queremos hacer una petición al servidor llamado “pepito”. Si la petición la hacemos directamente, “pepito” sabe que “juanito” le hizo una petición. En cambio, si usamos un proxy que sería un intermediario que por ejemplo podemos llamar “manolito”, la petición se la haríamos a manolito y éste se la haría a pepito. De esta manera, pepito no sabe que quien realmente ha hecho la petición es juanito. A su vez, el intermediario puede bloquear determinadas peticiones. Por ejemplo, si pedimos a un proxy que tiene bloqueadas las extensiones .xxx, que nos muestre la página web “amanecer.xxx”, dicha página web no se nos mostrará porque el proxy actúa bloqueándola.

11

� DNS: son las siglas de Domain Name System. Es un sistema por el que se asocia una información con un nombre de dominio. El ejemplo más claro es cuando introducimos una ruta url en nuestro navegador de internet del tipohttp://www.aprenderaprogramar.com. Una vez hemos introducido esta ruta, dicha información es enviada a un servidor DNS que lo que hace es determinar en qué lugar se encuentra esa página web alojada y nos conecta con ella.

� WEB: el término web va asociado a internet, donde los usuarios utilizan sus

navegadores web para visitar sitios web, que básicamente se componen de páginas web donde los usuarios pueden acceder a informaciones con texto, videos, imágenes, etc y navegan a través de enlaces o hipervínculos a otras webs.

� FTP: acrónimo de File Transfer Protocol o Protocolo de transferencia de

archivos. Es un protocolo utilizado para la transferencia de archivos entre un cliente y un servidor, permitiendo al cliente descargar el archivo desde el servidor o al servidor recibir un archivo enviado desde un cliente. Por defecto FTP no lleva ningún tipo de encriptación permitiendo la máxima velocidad en la transferencia de los archivos, pero puede presentar problemas de seguridad, por lo que muchas veces se utiliza SFTP que permite un servicio de seguridad encriptada.

� Dedicación: normalmente al ser los servidores equipos más potentes y por tanto

más caros, se suelen compartir entre varias personas o empresas, permitiéndoles a todos tener un servicio de gran calidad y a un mínimo precio. En este caso se dice que se trata de un servidor compartido. Pero en otros casos puede haber servidores dedicados exclusivamente a una sola persona o empresa si esta puede hacer frente al gasto económico que supone. En este caso se dice que el servidor es “dedicado”.

� POP3 y SMTP: hay servidores especializados en correos electrónicos o e-mails.

Estos utilizan los protocolos POP3 y SMTP para recibir los correos de nuestro servidor en nuestro cliente, o para enviar desde nuestro cliente un correo al servidor de otro cliente. Aunque hay diversos tipos de protocolos estos son los más utilizados. Un protocolo no es otra cosa que “una forma de hacer algo”.

� DHCP y TCP/IP: cuando un cliente se conecta a un servidor, éste tiene que

identificar a cada cliente y lo hace con una dirección IP. Es decir, cuando desde casa entramos en una página web estamos identificados por una serie de dígitos que son nuestra IP. Esta dirección ip son 4 pares de números y es única para cada cliente. Así el protocolo TCP/IP permite que cuando nos conectamos a internet se nos asigne una dirección IP que nos identifica. Cada ordenador conectado a internet tiene su dirección IP, aunque en el caso de usuarios de una empresa que da acceso a internet como “Telefónica”, varios usuarios de la empresa pueden tener la misma IP porque utilizan un mismo servidor para canalizar sus peticiones en internet. Por otro lado, DHCP es un protocolo de asignación dinámica de host que permite asignar una ip dinámicamente a cada cliente cuando este se conecta con el servidor que le da acceso a internet. Esto significa que si nos conectamos el lunes a internet, nuestra IP, que nos asigna Telefónica, puede ser 82.78.12.52. En cambio, si nos conectamos el jueves

12

nuestra IP podría ser 212.15.23.88. ¿Por qué cambia nuestra IP? Porque la empresa que nos da conexión nos asigna una de sus IPs disponibles. En cambio, los servidores al ser máquinas más potentes e importantes suelen tener una IP fija.

Una vez introducido estos conceptos, vamos a ver los tipos de servidores, que básicamente se basan en el uso de estos términos. TIPOS DE SERVIDORES En esta tabla podemos ver los tipos de servidores más habituales.

DENOMINACIÓN DEL SERVIDOR

DESCRIPCIÓN

Servidor de Correo Es el servidor que almacena, envía, recibe y realiza todas las operaciones relacionadas con el e-mail de sus clientes.

Servidor Proxy Es el servidor que actúa de intermediario de forma que el servidor que recibe una petición no conoce quién es el cliente que verdaderamente está detrás de esa petición.

Servidor Web

Almacena principalmente documentos HTML (son documentos a modo de archivos con un formato especial para la visualización de páginas web en los navegadores de los clientes), imágenes, videos, texto, presentaciones, y en general todo tipo de información. Además se encarga de enviar estas informaciones a los clientes.

Servidor de Base de Datos

Da servicios de almacenamiento y gestión de bases de datos a sus clientes. Una base de datos es un sistema que nos permite almacenar grandes cantidades de información. Por ejemplo, todos los datos de los clientes de un banco y sus movimientos en las cuentas.

Servidores Clúster

Son servidores especializados en el almacenamiento de la información teniendo grandes capacidades de almacenamiento y permitiendo evitar la pérdida de la información por problemas en otros servidores.

Servidores Dedicados Como ya expresamos anteriormente, hay servidores compartidos si hay varias personas o empresas usando un mismo servidor, o dedicados que son exclusivos para una sola persona o empresa.

Servidores de imágenes

Recientemente también se han popularizado servidores especializados en imágenes, permitiendo alojar gran cantidad de imágenes sin consumir recursos de nuestro servidor web en almacenamiento o para almacenar fotografías personales, profesionales, etc. Algunos gratuitos pueden ser: www.imageshack.us, www.theimagehosting.com,www.flickr.com de Yahoo, o picasaweb.google.com de Google.

13

A modo de resumen, un servidor es un ordenador de gran capacidad que atiende las peticiones de cientos o miles de ordenadores a los que envía información u ofrece un servicio. El mundo de los servidores es muy complejo. No te preocupes si algunos términos no te resultan del todo claros pues hay profesionales que llevan muchos años trabajando con servidores y realmente es difícil conocer la gran variedad de tipos y nomenclatura que se utiliza para referirse a todos ellos. Caracteristicas de un servidor Al iniciarse esperan a que lleguen las solicitudes de los clientes, desempeñan entonces un papel pasivo en la comunicación. Tras la recepción de una solicitud, la procesan y luego envían la respuesta al cliente. Por lo general, aceptan conexiones desde un gran número de clientes (en ciertos casos el número máximo de peticiones puede estar limitado). No es frecuente que interactúen directamente con los usuarios finales. Las características que estos tengan, variaran dependiendo del servicio que proveerá el servidor, del entorno en donde se usara y cuanta información manejara. Cuando contratamos un servidor dedicado (o cualquier otro plan de hosting, pero especialmente un servidor dedicado), es muy importante elegir uno cuyas características de hardware cumplan con todos los requisitos que necesiten nuestros proyectos web. Navegadores webUn navegador web o explorador web es una aplicación software libre que permite al usuario recuperar y visualizar documentos de hipertexto, comúnmente descritos en HTML, desde servidores web de todo el mundo a través de Internet. Esta red de documentos es denominada World Wide Web (WWW). Los navegadores actuales permiten mostrar o ejecutar: gráficos, secuencias de vídeo, sonido, animaciones y programas diversos además del texto y los hipervínculos o enlaces.

Imagen n°3 Básicamente, las principales características en las que debemos fijarnos a la hora de contratar un servidor web son las siguientes: Procesador: Seguramente nos darán a elegir entre intel , entre núcleo, doble núcleo, 4 núcleos, etc. Aquí sin ser un experto os recomendaría lo siguiente (por experiencia propia). Si vuestro servidorweb no va a ser utilizado para vender hosting, ni vais a instalar en él, puede bastar un modelo normalito, sin excesos.

14

Imagen n°4 Memoria RAM: Importante no quedarse corto. Cuando la RAM se agota, se tira de memoria virtual (disco duro) y se ralentiza todo, pudiendo incluso colapsar el servidor y provocar caída de servicios en el mismo. Opino que 1GB es lo mínimo, pero mejor 2GB para ir sueltos.

Imagen n°5 Modelo de disco duro: nos indicará su velocidad y su rendimiento. Que no nos pongan un disco pelotero, preguntad marca y modelo, creedme que a veces dan gato por liebre.

Imagen n°6

15

Sitios virtuales El servicio de servidores virtuales consiste en tener un alias para su espacio asignado dentro del servidor de Web del Campus, de tal forma que su página pueda tener un nombre propio dentro del dominio del ITESM. Tendencia de servidores IBM ha producido una nueva línea de servidores con sistema operativo y todo que se lanzan a la confrontación con el gigante del software Microsoft. IBM se ha basado en una nueva tendencia que se ha producido en el área de las Tecnologías de Información que contradice un poco las visiones de años recientes pero que se ajusta a una visión tecnológica más profunda y antigua: La tecnología fortalece la capacidad del individuo. Basados en esto se decidió centralizar en un server todo lo que en un Small Business o pequeña empresa podrían significar comunicaciones, aplicaciones y seguridad. Hasta no hace mucho la visión era que una empresa debería tener un especialista en base de datos (Database Administrator), un especialista de software y aplicaciones (Software and Applications Administrator), un especialista en comunicaciones y un especialista en seguridad de información (Security Information Specialist). Con los nuevos hardwares y sistemas que se están desarrollando y que están llegando al mercado se ha producido un balance hacía el poder tecnológico el cual da como resultado que se requiera solo de un especialista de server applications. Para IBM este nuevo ramo se llama I BM System z10 Enterprises Class. A esto se le añade el hecho de que empresas como Intel han ido fortaleciendo en el diseño de sus microchips la posibilidad de virtualizar o crear servers virtuales dentro de un servidor a esto se le ha llamado virtualización. De manera que nos paramos nuevamente en un paso gigante en la revolución informática. Y eso explica como gigantes como Microsoft han ido fortaleciendo sus nichos técnicos en miras de dar respuesta a estas nuevas tendencias. Por último, un comentario aparte para mis queridos lectores, Microsoft ya sacó al público el nuevo XBOX a un precio super competitivo de 260 USD frente al Play Station de Sony. Copatibilidad con sistemas operativos Existen básicamente dos grandes grupos bien diferenciados, los servidores basados en Windows (NT, 2000, 2003), y los basados en Unix (Linux, FreeBSD, Solaris, AIX, etc.). La elección depende de las necesidades específicas del webmaster, y condicionará el crecimiento del sitio, por sus diferentes características y funciones. Hay un temor a contratar servidores Unix por parte de los webmasters con conocimientos de Unix muy escasos o nulos, al desconocer con qué han de enfrentarse. Gracias a los paneles de control que incorporan todos los planes de alojamiento, el sistema bajo el que trabaje el servidor es prácticamente transparente en su uso para la mayoría de aplicaciones. Sólo en un uso avanzado puede necesitarse hacer uso del shell (línea de comandos) del sistema, si es que su plan de alojamiento lo permite.

16

Tampoco afecta con qué sistema operativo se trabaje localmente, perfectamente puede manejarse un servidor Unix desde un equipo local Windows, son cosas independientes. La información aquí publicada, debe considerarse orientativa, por tratarse de forma genérica. Deberá siempre verificar la disponibilidad de los elementos que necesite en el plan de hosting concreto que esté examinando. Servidor web Pese a existir otras opciones, los servidores Windows emplean típicamente IIS (Microsoft Internet Information Server) como servidor HTTP (web), y los Unix, emplean habitualmente Apache. Los IIS, tienen una mayor integración con los sistemas de desarrollo y software de Microsoft, mientras los Apache, disponen de mayores opciones de configuración de forma relativamente sencilla, como son los redireccionamientos, personalización de páginas de error, accesos protegidos con contraseñas y otros detalles, además de existir una gran información sobre ellos en Internet. Lenguajes de programación y scripts Si bien hay lenguajes más habituales en alojamientos Unix que en Windows y al revés, hay disponibilidad de los siguientes lenguajes y scripts para ambos sistemas: Perl: El lenguaje para CGI por excelencia. Bajo Unix, tiene acceso a mayores partes del sistema, en Windows se encuentra parcialmente limitado. PHP: Un buen lenguaje para webmasters principiantes, my extendido en la actualidad y que se integra en el código HTML. ASP: Para Unix, existe la versión ChiliSoft!, pero si requiere de las últimas versiones, deberá decidirse por Windows. VBscript: Si bien está soportado en Unix, las versiones más evolucionadas funcionan sobre Windows. Phyton Miva TCL C Java Jsp ColdFusion Bases de datos El sistema de bases de datos a emplear es crítico, pues cuando se requieran, limitará los servidores a emplear. La migración de aplicaciones propias de uno a otro sistema es relativamente complejo, así como la migración del contenido de las bases de datos.

17

Existen numerosas aplicaciones que pueden requerir en un momento dado, que le exigirán un sistema de bases de datos concreto. El habitualmente utilizado por aplicaciones para web, es MySQL, un potente sistema de bases de datos gratuito, que se ejecuta perfectamente en servidores Unix y Windows y que también puede emplear en su máquina local independientemente de que coincida con el sistema del servidor o no. Base de datos

Windows Unix

Comentarios

MySQL Poco habitual en planes de alojamiento Windows. Sin coste de licencia.

MS Access Sistema de base de datos empleado por el paquete Microsoft Office.

MS SQL Sistema propietario de Microsoft.

mSQL Gratuito para uso no comercial

PostgreSQL Licencia BSD (gratuita)

Tanto en servidores Windows como Unix, existen posibilidades de conexiones ODBC con las bases de datos. De este modo puede, por ejemplo, utilizar el entorno de Access para mantener una base de datos MySQL. Clasificación de servidores

� Servidor de archivos: es aquel que almacena y sirve ficheros a equipos de una red.

� Servidor de Directorio Activo/Dominio: es el que mantiene la información sobre los usuarios, equipos y grupos de una red.

� Servidor de Impresión: se encarga de servir impresoras a los equipos cliente y poner en la cola los trabajos de impresión que estos generan.

� Servidor de Correo: se encarga de gestionar el flujo de correo electrónico de los usuarios, envía, recibe y almacena los correos de una organización.

� Servidor de Fax: gestiona el envío, recepción y almacenamiento de los faxes. � Servidor Proxy: su principal función es guardar en memoria caché las paginas

web a las que acceden los usuarios de la red durante un cierto tiempo, de esta forma las siguientes veces que estos acceden al mismo contenido, la respuesta es más rápida.

� Servidor Web: Almacena contenido web y lo pone al servicio de aquellos usuarios que lo solicitan.

� Servidor de Base de Datos: es aquel que provee servicios de base de datos a otros programas o equipos cliente.

� Servidor DNS: permite establecer la relación entre los nombres de dominio y las direcciones IP de los equipos de una red.

� Servidor DHCP: este dispone de una rango de direcciones con el cual, asigna automáticamente los parámetros de configuración de red IP a las maquinas cliente cuando estas realizan una solicitud.

� Servidor FTP: su función es permitir el intercambio de ficheros entre equipos, normalmente su aplicación va muy ligada a los servidores Web.

18

Apache El servidor HTTP Apache es una de las aplicaciones estrella del mundo del software libre, ya que es el servidor web de mayor implantación según la encuesta que realiza en tiempo real Netcraft:server-survey-august:03. Así, en mayo de 1999 el 57% de los servidores web corrían bajo apache, mientras que en mayo de 2003 el porcentaje ha aumentado hasta el 68%. Apache está disponible para todos los sabores de UNIX (BSD, GNU/Linux, Solaris, ...), Microsoft Windows y otras plataformas minoritarias. Historia de Apache En marzo de 1989 Tim Berners Lee, un científico inglés que trabaja en el CERN (Suiza) propone un nueva forma de gestionar la ingente cantidad de información de los proyectos del CERN. Se trata de una red de documentos hiperenlazados (hipertexto tal y como Ted Nelson lo denominó ya en 1965); estaba naciendo el WWW. Hubo que esperar hasta noviembre de 1990 hasta que el primer software WWW vio la luz: en un paquete llamado WorldWideWeb se incluía un navegador web de interfaz gráfica y un editor WYSIWYG (What You See Is What You Get - lo que ve en la pantalla es lo que obtiene como resultado). Dos años después, la lista de servidores WWW contaba con una treintena de entradas, entre los cuales ya se encontraba el NCSA HTTPd. La verdadera historia de Apache comienza cuando en marzo de 1995, Rob McCool abandona el NCSA. Apache 0.2 vería la luz el 18 de marzo de 1995 basado en el servidor NCSA httpd 1.3 realizado por el propio Rob McCool durante su estancia en NCSA. Durante esos primeros meses, Apache era una colección de parches aplicados al servidor NCSA, hasta que Robert Thau lanzara Shambhala 0.1, una reimplementación casi completa que ya incluía la API para los módulos que ha resultado ser tan exitosa. Nota: El nombre del proyecto Apache se debe a la filosofía de desarrollo y de organización. Al igual que la tribu de los apaches, los desarrolladores de Apache decidieron que su forma organizativa debía fundamentarse en los méritos personales de los desarrolladores para con el resto de la comunidad Apache. Se ha extendido, sin embargo, la leyenda de que el nombre Apache en realidad se debe a que en los primeros tiempos no dejaba de ser un servidor NCSA parcheado, en inglés a patchy server. Habría que esperar a enero de 1996 para poder disfrutar de la primera versión estable de Apache, la Apache 1.0, que incluía la carga de módulos en tiempo de ejecución a modo de pruebas además de otras funcionalidades interesantes. Los primeros meses de ese año fueron especialmente fructíferos para el proyecto, ya que la versión 1.1 se publicó apenas dos meses después contando con módulos de autentificación contra bases de datos (como MySQL). Desde entonces hasta la actualidad, los hitos más grandes del proyecto han sido la total conformidad con el estándar HTTP 1.1 (incluido en abril de 1997 en Apache 1.2), la inclusión de la plataforma Windows NT (que comenzó ya en julio de 1997 con las versiones en pruebas de Apache 1.3), la unificación de los archivos de configuración en uno solo (habría que esperar a octubre de 1998 ya Apache 1.3.3 para ello) y el lanzamiento, todavía en pruebas, de la siguiente generación de Apache, Apache 2. Entremedias, en junio de 1998, IBM decidió que el motor tras su producto WebSphere fuera Apache en lugar de desarrollar un servidor HTTP propio. Esto se vio como un gran espaldarazo por parte del gigante azul al proyecto Apache y al software libre en general, aunque para facilitar este hecho hubiera que cambiar ligeramente la licencia Apache original.

19

Desarrollo de Apache � El servidor HTTP Apache es el proyecto central dentro de los muchos que

gestiona la Apache Software Foundation. El diseño modular de Apache ha permitido que exista una serie de proyectos satélite -algunos incluso más grandes en tamaño que el propio Apache- alrededor de Apache. De esta forma, el servidor HTTP Apache contiene el núcleo del sistema con las funcionalidades básicas, mientras las funcionalidades adicionales las aportan los diferentes módulos. Los módulos más conocidos son mod_perl (un intérprete del lenguaje de guión Perl empotrado en el servidor web) y Jakarta (un potente servidor de aplicaciones). En los siguientes párrafos, se va a describir solamente el proceso de desarrollo seguido para el servidor HTTP, sin tener en cuenta los demás módulos, que pueden tener modelos parecidos o no.

� El desarrollo del servidor HTTP Apache se fundamenta en el trabajo de un reducido grupo de desarrolladores denominado Apache Group. El Apache Group lo constituyen aquellos desarrolladores que han colaborado durante un periodo prolongado de tiempo, generalmente más de seis meses. Después de ser nominado de un miembro del Apache Group para formar parte del mismo, se vota entre todos los miembros del Apache Group. En sus comienzos, el Apache Group constaba de ocho desarrolladores, luego de doce y en la actualidad cuenta con 25 personas.

� Sobre el Apache Group recae la responsabilidad de la evolución del servidor web y, por tanto, las decisiones puntuales de desarrollo en cada momento. Hay que diferenciar al Apache Group del núcleo de desarrolladores (core group) activo en cada momento. El carácter voluntario de la mayoría de los desarrolladores hace que sea improbable que todos los que componen el Apache Group puedan estar activos todo el tiempo, por lo que el core se define como aquéllos que en un espacio de tiempo pueden ocuparse de las tareas en Apache. En líneas generales, las decisiones que han de tomar los desarrolladores pertenecientes al núcleo se limitan a votar la inclusión de código -aunque esto se reserve en realidad sólo para grandes cambios- y para cuestiones de diseño. Por otra parte, en general suelen tener derecho de escritura en el repositorio CVS, por lo que sirven como puerta de entrada del código asegurando que sea correcto y su calidad.

Radiografía de Apache Las cifras que se exponen a continuación corresponden a la versión del servidor HTTP Apache tal y como se podía descargar del servidor CVS del proyecto Apache el 18 de abril de 2003. No se han tenido en cuenta ninguno de los numerosos módulos con los que cuenta el proyecto Apache. Como se puede observar, Apache es un proyecto relativamente pequeño en comparación con los demás casos de estudios considerados en este capítulo. Aunque se ha comentado con anterioridad en este capítulo, es importante hacer hincapié en la modularidad de Apache que permite precisamente esto: que el núcleo sea pequeño y manejable. El repositorio CVS del proyecto Apache que contiene el núcleo del servidor web y muchos módulos adicionales alberga en total más de cuatro millones de líneas de código fuente, una cifra ligeramente inferior a proyectos como KDE y GNOME. La versión 1.3 de Apache contaba con poco más de 85.000 líneas de código fuente, una cifra que según el modelo COCOMO requeriría un esfuerzo de desarrollo de 20 desarrolladores a tiempo completo en media durante un año y medio. El coste total del proyecto rondaría entonces los cuatro millones de dólares. En la elaboración del

20

servidor web de Apache se cuentan hasta 60 commiters diferentes, mientras que el número de desarrolladores que han aportado se calcula que ronda los 400. Análisis de Apache

Página Web http://www.apache.org

Inicio del proyecto 1995

Licencia Apache Free Software License

Versión analizada 2.2.4

Líneas de código fuente 225.065

Número de ficheros 2.807

Estimación de coste 7.971.958 $

Estimación de tiempo de ejecución 2,52 años (30,27 meses)

Estimación de número medio de desarrolladores

23,4

Número aproximado de desarrolladores 60 commiters (400 desarrolladores)

Herramientas de ayuda al desarrollo CVS, listas de correo, sistema de notificación de errores

Lenguajes de programación utilizados en Apache

Lenguaje de programación Líneas de código Porcentaje

C 208866 92,8%

Shell 12796 5,69%

Perl 1649 0,73%

Awk 874 0,39%

Apache es una muestra, al igual que el sistema operativo Linux (un Unix desarrollado inicialmente para PC), de que el trabajo voluntario y cooperativo dentro de Internet es capaz de producir aplicaciones de calidad profesional difíciles de igualar. La licencia Apache es una descendiente de la licencias BSD, no es GPL. Esta licencia te permiten hacer lo que quieras con el código fuente (incluso forks y productos propietarios) siempre que les reconozcas su trabajo. Ahora te preguntarás porqué esa popularidad de este software libre grandemente reconocido en muchos ámbitos empresariales y tecnológicos, pues aquí algunas razones : Corre en una multitud de Sistemas Operativos, lo que lo hace prácticamente universal. Apache es una tecnología gratuita de código fuente abierto. El hecho de ser gratuita es importante pero no tanto como que se trate de código fuente abierto. Esto le da una transparencia a este software de manera que si queremos ver que es lo que estamos instalando como servidor , lo podemos saber, sin ningún secreto, sin ninguna puerta trasera ;). Apache es un servidor altamente configurable de diseño modular. Es muy sencillo ampliar las capacidades del servidor Web Apache. Actualmente existen muchos módulos para Apache que son adaptables a este, y están ahí para que los instalemos cuando los necesitemos. Otra cosa importante es que cualquiera que posea una experiencia decente en la programación de C o Perl puede escribir un modulo para realizar una función determinada.

21

Apache trabaja con gran cantidad de Perl, PHP y otros lenguajes de script. Perl destaca en el mundo del script y Apache utiliza su parte del pastel de Perl tanto con soporte CGI como con soporte mod perl. También trabaja con Java y páginas jsp. Teniendo todo el soporte que se necesita para tener páginas dinámicas. Apache te permite personalizar la respuesta ante los posibles errores que se puedan dar en el servidor. Es posible configurar Apache para que ejecute un determinado script cuando ocurra un error en concreto. Tiene una alta configurabilidad en la creación y gestión de logs. Apache permite la creación de ficheros de log a medida del administrador, de este modo puedes tener un mayor control sobre lo que sucede en tu servidor . Caracteristicas Apache es un servidor web flexible, rápido y eficiente, continuamente actualizado y adaptado a los nuevos protocolos (HTTP 1.1). Entre sus características destacan: Multiplataforma Es un servidor de web conforme al protocolo HTTP/1.1 Modular: Puede ser adaptado a diferentes entornos y necesidades, con los diferentes módulos de apoyo que proporciona, y con la API de programación de módulos, para el desarrollo de módulos específicos. Basado en hebras en la versión 2.0 Incentiva la realimentación de los usuarios, obteniendo nuevas ideas, informes de fallos y parches para la solución de los mismos. Se desarrolla de forma abierta Extensible: gracias a ser modular se han desarrollado diversas extensiones entre las que destaca PHP, un lenguaje de programación del lado del servidor. Tendencias

� Con el Knoppix ya viene el servidor web Apache instalado. Para encenderlo manualmente se ejecuta el script /etc/init.d/apache con la opción start, para pararlo stop y para reencenderlo si cambiaste la configuración restart. Si lo encendemos podemos comprobar su funcionalidad abriendo un navegador y ponioendo la dirección localhost o la IP local. Si aparece una página web con manuales sobre del servidor tienes el Apache en marcha.

� Para poner el Apache en marcha en encender la maquina hace falta añadir la siguente linea al archivo /etc/inetd.conf: http stream tcp nowait root /usr/sbin/tcpd /usr/sbin/apache

� Unas cosas importantes de saber: � Los documentos ofrecidos por el Apache se encuentran en el

directorio /var/www � Por definición el Apache esta buscando los scripts de CGI en la

carpeta /usr/lib/cgi-bin � Los archivos de registro estan locados en la carpeta /var/log/apache � La mejor forma de dar los diferentes usuarios la posibilidad de ofrecer su web es

crear una carpeta en el directorio de cada usuario. Asi los archivos que el usuario pone en su carpeta public_html automaticamente son accesibles desde la web. Una vez creado la carpeta p.ej. del usurio knoppix se puede acceder a su web con http://127.0.0.1/~knoppix/

� La configuración básica del Apache se hace en el archivo /etc/apache/httpd.conf. El Apache viene ya bien configurado y listo para ser ejecutado pero para

22

preparalo mejor son interesante las parametros del archivo httpd.conf. Este archivo contiene p.ej. en que puerto esta escuchando el Apache (por definición 80), cuantos usuarios paralelas que acepta y que modulos esta ejecutando. Una buena descripción de las diferentes opciones hay en este documento o en las 3 secciones de este documento.

Verciones Apache es el software más utilizado en Internet para actuar como servidor de contenido para la web. Las últimas estadísticas publicadas por Netcraft, hace escasamente unas semanas, lo dejan bien claro: el 67,05% de los servidores web visibles en Internet utilizan alguna versión de Apache. Haciendo números de forma rápida esto significa que a principios de este mes había casi 34 millones de servidores en Internet utilizando Apache. De hecho, son varios los analistas que ya califican abiertamente a Apache como la "killer application" del mundo del software libre. Actualmente Apache se distribuye en dos "ramas" separadas de código, que corresponden a la versión 2.0.xx y la versión 1.3.xx. La versión 1.3 corresponde a la edición clásica de Apache, especialmente optimizada para las plataformas Unix. En la versión 2.0 se introducen cambios en el funcionamiento interno que permiten su utilización en otros sistemas operativos no derivados de Unix. Si el servidor web es una plataforma basada en Unix, el rendimiento de ambas versiones de Apache es prácticamente equivalente. En cambio, en otras plataformas como Windows y OS/2, la versión 2.0 ofrece un rendimiento notablemente superior. Apache 2.0.49 Esta nueva versión soluciona tres problemas de seguridad detectados en las versiones anteriores de Apache 2.0.*. La primera de las vulnerabilidades corresponde una condición de carrera en el proceso de conexiones con un corto periodo de vida y que puede ser utilizada para provocar un ataque de denegación de servicio. Esta vulnerabilidad afecta los servidores Apache ejecutándose en determinadas versiones de Solaris, AIX y Tru64. La segunda vulnerabilidad radica en la posibilidad de que un usuario remoto pueda añadir caracteres arbitrarios en los mensajes de error escritos en el archivo de registro de errores del servidor. Esta vulnerabilidad puede ser utilizada para atacar algunos emuladores de Terminal en el momento que se visualiza el contenido de este archivo de registro de errores. La tercera y última vulnerabilidad es una pérdida de memoria, explotable de forma remota, en el módulo mod_ssl. Esto puede ser utilizado para consumir toda la memoria del servidor, provocando un ataque de denegación de servicio.

23

Apache 1.3.31 En lo que se refiere a la versión "clásica" de Apache, las vulnerabilidades de seguridad solucionadas son cuatro. La primera se encuentra en el módulo mod_digest y consiste en que no se verifica correctamente las respuestas enviadas por el cliente remoto cuando se utiliza AuthNonce. La segunda vulnerabilidad radica en la posibilidad de que un usuario remoto pueda añadir caracteres arbitrarios en los mensajes de error escritos en el archivo de registro de errores del servidor. Esta vulnerabilidad puede ser utilizada para atacar algunos emuladores de Terminal en el momento que se visualiza el contenido de este archivo de registro de errores. La tercera vulnerabilidad radica en la posibilidad de que el servidor web deje de procesar nuevas conexiones hasta que se liberen los sockets bloqueados por un atacante remoto bajo circunstancias muy especiales. La cuarta y última vulnerabilidad se encuentra en las reglas de filtro de direcciones IP cuando se indican sin especificar su máscara de red. Mod_ssl Simultáneamente a la publicación de Apache 1.3.31, también se ha publicado una nueva versión de mod_ssl. Este es un modulo para la versión 1.3.xx de Apache que incorpora la capacidad criptográfica necesaria para que el servidor web pueda utilizar los protocolos SSL (SSL v2/v3) y TLS (TLS v1) para el cifrado del tráfico. Mod_ssl se utiliza para la configuración de servidores HTTPS. Otro tipo de versiones

� Modular � Código abierto � Multi-plataforma � Extensible � Popular (fácil conseguir ayuda/soporte)

Compatibilidad de S.O Apache Web Server es muy portable. Esto significa que se puede instalar en una amplia variedad de servidores y sistemas operativos. Apache es capaz de ejecutarse en todas las versiones del sistema operativo UNIX. Linux es compatible, así como los sistemas operativos Windows NT y MacOS. En comparación, el propio servidor de Microsoft Windows normalmente sólo se puede instalar en sistemas operativos Windows. Desde un punto de vista de hardware, Apache puede ser utilizado en cualquier servidor con procesador de la serie Intel 80x86 cuando se combina con Windows. Si Apache está siendo utilizado en un sistema operativo Unix o Linux, casi cualquier tipo de procesador es compatible. En general, Apache es uno de los sistemas de servidores más adaptables disponibles en la actualidad, y se ejecutará en una amplia gama de entornos técnicos.

24

Configuracion Cuando se ha instalado el servidor, hay que configurarlo. Apache incluye por defecto una configuración que arranca el servidor en el puerto TCP por defecto, que es el puerto 80, y sirve los ficheros del directorio que se ha especificado mediante la directiva de configuración denominada DocumentRoot. Este fichero de configuración de Apache es el httpd.conf, localizado en el subdirectorio "conf" dentro del directorio de instalación. httpd.conf es un fichero de tipo ASCII que contiene las directivas de configuración. Estructura del fichero de configuración httpd.conf httpd.conf está compuesto por tres bloques fundamentales, aunque las directivas de cada uno de los bloque pueden aparecer desordenadas o mezcladas. Estos bloques son: Parámetros globales Directivas de funcionamiento Hosts virtuales Algunos parámetros son propósito general, y otros son configurables de forma independiente para cada conjunto de directorios o de ficheros o incluso para un servidor virtual específico. En tales casos, estos parámetros se encuentran dentro de secciones en las que se indica el contexto de aplicación de dicho parámetro. Las secciones fundamentales son: <Directory>: los parámetros que se encuentran dentro de la sección Directory sólo se aplican al directorio indicado y sus subdirectorios. <DirectoryMatch>: igual que Directory, aunque acepta expresiones regulares en el nombre del directorio. <Files>: los parámetros de configuración facilitan control de acceso a los ficheros mediante su nombre. <FilesMatch>: igual que Files, pero acepta en el nombre del fichero expresiones regulares. <Location>: proporciona control de acceso a los ficheros mediante la URL. <LocationMatch>: igual que Location, pero acepta en el nombre del fichero el uso de expresiones regulares. <VirtualHost>: los parámetros sólo se aplican a aquellas peticiones dirigidas a este host (nombre de servidor, dirección IP o puerto TCP). <Proxy>: sólo se aplican estos parámetros a aquellas peticiones de proxy (requiere que esté instalado "mod proxy") coincidentes con la especificación de URL. <ProxyMatch>: igual que proxy, pero acepta en la URL indicada el uso de expresiones regulares. <IfDefine>: sólo se aplica si al arrancar el servidor existe un parámetro concreto definido en la línea de comandos, mediante la opción -D. <IfModule>: se aplican los parámetros si el módulo especificado se encuentra cargado (mediante LoadModule) en el momento de arrancar el servidor . En caso de que exista conflicto entre diferentes especificaciones de parámetros, el orden de precedencia es: <Directory> y .htaccess <DirectoryMatch> y <Directory> <Files> y <FilesMatch> <Location> y <LocationMatch> En cuanto a <VirtualHost>, estas directivas siempre se aplican siempre después de las directivas generales. De este modo, un VirtualHost puede modificar la configuración por defecto.

25

Un ejemplo de configuración: <Directory /home/*/public_html> Options Indexes </Directory> <FilesMatch \.(?i:gif jpe?g png)$> Order allow,deny Deny from all </FilesMatch>. Directivas globales de configuración Algunas directivas de configuración nunca se aplican a las secciones antes mencionadas (directorios, etc.), sino que afectan al conjunto del servidor web. Las más destacables son: ServerRoot: especifica la localización del directorio raíz en el que se encuentra instalado el servidor web. Partiendo de este directorio, se encuentran los ficheros de configuración, etc. Si la instalación del servidor es correcta, no debería modificarse nunca. KeepAlive: especifica si se deben utilizar conexiones persistentes para atender las peticiones de un mismo usuario mediante la misma conexión TCP. Listen: especifica el puerto en que se atenderán las peticiones. Por defecto el servidor "escucha" en el puerto 80 de TCP. Permite especificar las direcciones IP que se utilizarán (en caso de que el servidor tuviese más de una). Por defecto se utilizarán todas las disponibles. LoadModule: Permite cargar en el servidor los módulos adicionales de Apache. La sintaxis es: LoadModule modulo ficheromodulo Se debe tener instalado mod_so para poder utilizarla. Directivas principales Hay algunas directivas que, generalmente, no suelen aparecer en las secciones anteriormente mencionadas (algunas de ellas no deben estar en ninguna sección, y es obligatorio que aparezcan en la sección principal), sino que se encuentran en la sección principal. Estas directivas son: ServerAdmin: especifica la dirección de correo electrónico del administrador. Esta dirección puede mostrarse en los mensajes de error a modo de dirección de contacto para que los usuarios notifiquen el error al administrador. No debe estar dentro de ninguna sección. ServerName: sirve para especificar el nombre y el puerto TCP que el Apache utiliza para identificarse. Se puede determinar de forma automática, pero se recomienda especificarlo. Si el servidor no tuviera un nombre DNS, es recomendable incluir su dirección IP. No debe incluirse dentro de ninguna sección. Su sintaxis es: ServerName nombredireccion:puerto como en: ServerName www.uoc.edu:80 ServerName 192.168.1.1:80 DocumentRoot: directorio raíz desde el cual se servirán los documentos. Por defecto es "htdocs", dentro de la carpeta de instalación de Apache. No debe aparecer dentro de ninguna sección, a excepción de la sección VirtualHost. Le corresponde una sección <Directory> en la cual se marcan los parámetros de configuración de este directorio. DirectoryIndex: especifica el fichero que Apache servirá por defecto para cada directorio en caso de que no se especifique ningún fichero concreto en la URL de la

26

petición. Por defecto es "index.html". Es decir, si se solicita en la barra de direcciones del navegador:www.cibernetia.com el servidor enviará por defecto www.cibernetia.com/index.html. Es posible especificar más de un fichero y el orden con que se especifican los ficheros determinará la prioridad para determinar cuál se debe servir. Es posible encontrar la directiva fuera de cualquier sección o dentro de alguna de ellas. AccessFileName: determina el fichero de configuración en caso de que éste no sea .htaccess. Para que esta configuración cumpla su cometido, la directiva AllowOverride debe tener un valor adecuado. No puede estar incluida en ninguna sección. El fichero por defecto es .htaccess. ErrorDocument: esta directiva establece el comportamiento de Apache en caso de error. Existen 4 configuraciones distintas: Mostrar algún texto de error. Redirección hacia un fichero en el mismo directorio. Redirección hacia un fichero en nuestro servidor. Redirección hacia un fichero fuera de nuestro servidor. La sintaxis es ErrorDocument código_error acción. Es posible encontrar esta directiva tanto dentro de una sección, como en la configuración global. Por ejemplo: ErrorDocument 404 /noencont.html. En caso de que Apache no encuentre un fichero, se mostrará el fichero noencont.html. Alias: las directivas Alias y AliasMatch permiten la definición de accesos a directorios que están fuera del DocumentRoot. Su sintaxis es: Alias url directorio. Por ejemplo: Alias /docs /home/documentos hará que una petición a http://www.uoc.edu/docs/manual se sirva desde /home/documentos/manual. UserDir: permite indicar a Apache que un subdirectorio dentro del directorio de trabajo de los diferentes usuarios del sistema sirva para que estos almacenen su página personal. Por ejemplo: UserDir publico hará que la página almacenada en el directorio del usuario "test", dentro del subdirectorio "público", sea accesible como: http://www.uoc.edu/~test/indice.html Directivas de sección Casi todas las secciones de localización (Directory, Location, etc.) incluyen una serie de directivas en su configuración que permiten controlar el acceso al contenido. El módulo mod_access facilita estas directivas. Allow: permite especificar quién tiene autorización para acceder a un recurso. Se pueden especificar direcciones IP, nombres de máquina, fragmentos del nombre o de la dirección o variables de la petición. Existe la palabra clave "all" que indica "todos los clientes". Deny: permite especificar a quién no permitimos el acceso a un recurso. Cuenta con las mismas opciones que Allow. Order: permite afinar el funcionamiento de las anteriores directivas: Allow y Deny. Existen 2 opciones: Allow,Deny. Por defecto se deniega el acceso y sólo podrán acceder quellos clientes que cumplan las especificaciones de Allow y en cambio no cumplan las especificaciones de Deny.

27

Deny,Allow. Por defecto se permite el acceso y sólo podrán entrar los clientes que no cumplan las especificaciones de Deny o sí cumplan las especificaciones de Allow. Servidores virtuales Apache permite servir varios sitios web con un único servidor. Para ello permite la creación de dominios virtuales en función de diferentes direcciones IP o diferentes nombres por IP. Apache fue de los primeros servidores que soportó servidores virtuales sin necesidad de distinguir por IP, sino en función de nombre. Esta capacidad simplifica enormemente la administración de los servidores, y supone un ahorro de direcciones IP, que normalmente son escasas. Los servidores virtuales que distinguen en función del nombre son perfectamente transparentes para el cliente, con la posible excepción de aquellos navegadores muy antiguos que no envíen la cabecera "Host:" con cada petición. Servidores virtuales por dirección IP Para atender a varios servidores virtuales, cada uno de ellos con una dirección IP diferente, se utiliza la sección de configuración VirtualHost. Con esta sección se define una configuración y dirección IP para cada uno de los servidores. Un ejemplo sería el siguiente. <VirtualHost 192.168.1.1> ServerAdmin [email protected] DocumentRoot /web/uoc ServerName www.uoc.edu ErrorLog /web/logs/uoc_error_log TransferLog /web/logs/uoc_access_log </VirtualHost> <VirtualHost 192.168.254.254> ServerAdmin [email protected] DocumentRoot /web/asociados ServerName asociados.uoc.edu ErrorLog /web/logs/asociados_error_log TransferLog /web/logs/asociados_access_log </VirtualHost> este ejemplo define 2 servidores web, cada uno de ellos con una IP y un nombre diferentes. Ambos tienen su propio DocumentRoot, etc. Para hacer uso de servidores virtuales por IP, se necesita que el sistema servidor tenga configuradas en su sistema operativo las diferentes direcciones IP que debe servir. Servidores virtuales por nombre Para atender a varios servidores, utilizando una misma dirección IP para todos ellos, se utiliza la sección VirtualHost, que permite definir los parámetros de cada uno de los servidores. Sirva como ejemplo la siguiente configuración: NameVirtualHost *:80 <VirtualHost *:80> ServerAdmin [email protected] ServerName www.uoc.edu DocumentRoot /web/uoc ErrorLog /web/logs/uoc_error_log TransferLog /web/logs/uoc_access_log </VirtualHost> <VirtualHost *:80> ServerAdmin [email protected] ServerName asociados.uoc.edu DocumentRoot /web/asociados

28

ErrorLog /web/logs/asociados_error_log TransferLog /web/logs/asociados_access_log </VirtualHost>. Se puede utilizar una dirección IP concreta en lugar de *, lo cual permite asignar, por ejemplo, un grupo de servidores virtuales por nombre a esta IP y otro grupo a otra IP. Cuando nuestro servidor tiene 2 direcciones IP, pero hemos asignado a las 2 el mismo nombre, se necesita un uso especial de las directivas de servidores por nombre. Por ejemplo, cuando se dispone una conexión de red en la intranet y otra conexión diferente en Internet con el mismo nombre, caso en el cual podemos servir el mismo contenido de la esta forma: NameVirtualHost 192.168.1.1 NameVirtualHost 172.40.30.40 <VirtualHost 192.168.1.1 172.40.30.40> DocumentRoot /www/servidor1 ServerName servidor.uoc.edu ServerAlias servidor </VirtualHost> Con esta configuración se puede servir la misma web hacia la intranet y hacia la Internet. Es conveniente señalar el uso de un alias para el servidor, lo cual permite no tener que usar dominios en la intranet. Disponemos de una especificación de servidor virtual por defecto "_default_" que permite atender las peticiones que no sirve ningún otro servidor virtual. <VirtualHost _default_> DocumentRoot /www/defecto </VirtualHost> Podemos usar la etiqueta "_default_" indicando un número de puerto para especificar servidores por defecto que sean diferentes para cada puerto. Apache permite también configuraciones más complejas de servidores virtuales, muy útiles en casos de, por ejemplo, servidores masivos. Una excelente guía de referencia se encuentra en la web del proyecto Apache, con consejos útiles para configurar el servidor. Existen muchos servidores HTTP de código libre, pero la mayoría de ellos han quedado eclipsados por Apache. Algunos de estos servidores tienen características que les hacen especialmente interesantes.

29

Instalar Apache en Windows XP Posted on Marzo 13, 2011 by Admin El Propósito de este tutorial es instalar el servidor http de Apache en el sistema operativo windows xp con una configuración básica para desarollo de aplicaciones y pruebas locales.

Imagen n°7 La versión del servidor http de Apache para el sistema operativo Windows XP se encuentra disponible en el sitio oficial de la Fundación Apache http://httpd.apache.org. Cuando abrimos en nuestro navegador el sitio web del servidor http Apache, se encuentra a la izquierda la sección de Download!, damos un click en from a mirror.

Imagen n°8

30

Luego aca escogemos la versión del servidor http de Apache que buscamos. Nosotros descargaremos para este tutorial la versión 2.2.17 (released 2010-10-19) la cual al momento de hacer este tutorial es la más reciente.

Imagen n°9 Luego veremos diferentes versiones para el sistema operativo Windows XP, escogemos la versiónWin32 Binary without crypto (no mod_ssl) (MSI Installer): httpd-2.2.17-win32-x86-no_ssl.msi.

Imagen n°10

31

Click en el link y click en Guardar.

Imagen n°11 Guardaremos el instalador como aparece en la imagen en el escritorio de Windows XP para encontrarlo facilmente. Click en Guardar.

Imagen n°12

32

Esperamos una par de minutos a que termine la descarga de nuestro instalador de Apache.

Imagen n°13 Una vez completada la descarga damos un doble click en el instalador y click en Ejecutar.

Imagen n°14

33

La primera ventana que nos aparece es la de "Welcome to the Installation Wizard for Apache HTTP Server 2.2.17", click Next.

Imagen n°15 Una vez en los Términos y Condiciones de uso, leemos la licencia, y damos un click en I accept the terms in the license agreement para poder continuar y luego click en Next.

Imagen n°16

34

En este paso recomiendo leer bien la información proporcionada por el instalador de Apache, ya que ésta es de importancia para el buen uso del servidor HTTP de Apache, la cual incluye la ubicación de la documentación como en http://httpd.apache.org/docs/2.2. Luego de leer, click en Next.

Imagen n°17 Ahora en este paso de la instalación ingresamos la informacion de el servidor Apache. Como usaremos el servidor Apache en un entorno local para nuestras pruebas escribimos lo siguiente: Network Domain: localhost Server Name: localhost Administrator's Email: [email protected] Estos datos los podemos cambiar luego aunque no lo mostraremos en este tutorial. Luego recomiendo escoger la opción for All Users, on port 80, as a Service -- Recommended. Esta opción dejará nuestro servidor Apache corriendo como un servicio mas de windows 7 cada vez que iniciemos nuestro pc. Click en Next.

Imagen n°18

35

En este paso de la instalación Typical es suficiente para desarollar con PHP y MySQL localmente en un entorno de pruebas en nuestro pc. Click en Next para continuar.

Imagen n°19 En este paso el instalador de Apache nos suguiere la ubicación en donde se instalará el servidor HTTP de Apache. Recomiendo cambiar la ubicación a C:\apache ya que ésto nos permitirá trabajar con Apache facilmente y tendremos los archivos fuera de nuestra carpeta de sistema. Click en Change...

Imagen n°20

36

En Folder name escribimos C:\apache y damos click en OK.

Imagen n°21 Una vez tenemos la nueva ubicación c:\apache en donde se instalará el servidor http de Apache continuamos dando un click Next.

Imagen n°22

37

En este paso ya tenemos toda la configuración lista. Un click en Install y todo sera instalado en nuestro pc.

Imagen n°23 Esperamos un par de minutos a que termine la instalación de el servidor http de Apache.

Imagen n°24

38

En este paso una vez terminada la instalación de el servidor http de Apache sin ningun error cerramos la ventana dando un click en Finish.

Imagen n°25 Ahora lo más importante. Una vez finalizado el proceso de instalación abrimos nuestro navegador web y verificamos si está en funcionamiento nuestro recien instalado servidor web de Apache escribiendo en la barra de direcciones http://localhost y si todo salió durante la instalación veremos este sencillo mensaje It works! .Con esto queda instalado el servidor http de Apache.

Imagen n°26 Como última nota quiero mostrar la ubicación en donde tu podras colocar tus páginas web. El folder se llama htdocs. Puedes crear un acceso directo y copiarlo al escritorio para tener acceso de manera rápida al directorio raiz.

39

Instalacion de apache en linux A continuación se explicaran los pasos que debemos dar para la instalación del servidor Apache en el Sistema Operativo Linux. Lo primero que debemos saber es que toda la implantación de este Servidor se llevara a cabo a través de la terminal o consola de comandos, a la que accedemos siguiendo la siguiente ruta: “Aplicaciones > Accesorios > Terminal”. Una vez en ella lo primero que haremos será comprobar si el Servidor Apache ya está instalado, y si lo estuviera que versión es. Para ello tecleamos en la terminal “sudo apt-get cache apache”. En este caso vemos que no está instalado.

Imagen n°27 Una vez comprobado que no está instalado procedemos a su instalación, introduciendo en la terminal “sudo apt-get install apache”, tras esto se nos avisa de que esta versión está obsoleta o que no es compatible para nuestro sistema.

Imagen n°28 Para solucionar el problema anterior y poder instalar el Servidor Apache, introduciremos la siguiente línea de comando: “sudo apt-get install apache2”. Como vemos, en esta ocasión si comienza la instalación, a lo largo de ella se nos informa sobre las características del paquete que estamos instalando y se nos pedirá una confirmación a mitad de la misma. La instalación se completará unos instantes después de que confírmenos la instalación.

Imagen n°29

40

Tras haberse completado la instalación debemos comprobar que esta se ha hacho correctamente, para ello tecleamos en la terminal la siguiente línea de comandos: “ls /etc/init.d/apache2”. Como vemos se ha instalado, ya que con el uso del comando anterior hemos localizado el Servidor Apache.

Imagen n°30 Una vez sabemos que se ha instalado correctamente, debemos saber los comandos necesarios para activarlo, reiniciarlo o detenerlo. ● Para activarlo teclearemos: “sudo /etc/init.d/apache2 start”.

Imagen n°31 ● Para reiniciarlo teclearemos: “sudo /etc/init.d/apache2 restart”.

Imagen n°32 ● Y para detenerlo teclearemos: “sudo /etc/init.d/apache2 stop”.

Imagen n°33 También se debe saber la línea de comando necesaria para conocer si el Servidor Apache está ya en funcionamiento, es decir, si se está ejecutando o no para así usar de forma correcta los comandos de activación anteriores. La línea de comandos seria “ps –ef grep apache2”, en este caso si se está ejecutando.

Imagen n°34

41

Una vez sabemos los comandos más básicos y necesarios para un buen uso del Servidos Apache, comprobaremos que dicho Servidor funciona correctamente. Lo primero será activar el servicio con el comando adecuado de los anteriormente explicados, y tras esto iremos al navegador web y teclearemos la URL “http://localhost/”. Como vemos funciona correctamente, ya que se nos muestra un mensaje de confirmación.

Imagen n°35 Para hacer cualquier modificación al servidor Apache debemos ir a la ruta adecuada, por defecto será “/var/www”, en ella se guarda el archivo index.html, que podremos modificar a nuestro gusto.

Imagen n°36 Las modificaciones las podremos hacer tecleando en la terminal “sudo gedit /var/www/index.html”, con esto se nos abrirá el fichero, pudiendo modificar en cuerpo del índex.

Imagen n°37

42

Ventajas del servidor apache Apache es quizás elservidor web más excelente, por su configurabilidad y robustez, sindo además casi universal al estar en una multitud de Sistemas Operativos. El tipo de llicencia que lo acoge, descendiente de la licencia BSD, no es GPL, significa que puedes hacer lo que quieras con el código fuente, también forks y productos propietarios, siempre que reconozcas su trabajo.

Imagen n°38 Al ser una tecnología gratuita de código fuente abierto le da una transparencia inmediata, de forma que si quisiéramos ver qué es lo que estamos instalando como servidor, lo podemos saber, sin ningún secreto.

Imagen n°39 Trabaja con gran cantidad de Perl, PHP y otroslenguajes de script, Java y páginas JSP, teniendo todo el soporte que se necesita para tener páginas dinámicas. Por su diseño modular es muy sencillo ampliar las capacidades del servidor web Apache. En la actualidad hay casi infinitos módulos para Apache que los vamos instalando a medida que se necesitan. Otra de sus ventajas es que puedes personalizar la respuesta ante los posibles errores que se den en el servidor, por supuesto se puede configurar para que ejecute un determinado script cuando ocurra un error marcado.

43

Imagen n°40 Lo que nombrábamos de su alta configurabilidad en la creación y gestión de logs, nos permite la creación de ficheros de log a medida del administrador, teniendo así el control máximo sobre lo que pasa en el servidor. Y ahora sólo tienes que ponerte manos a la obra y comenzar a diseñar tus páginas web y alojarlas en tu propio PC, que pasará a ser un auténtico servidor. Desventajas Servidor apacheServidor IISFalta de integraciónPosee Formatos de configuración no estándarNo posee buena administración Este servidor no es multiplataforma, sólo funciona bajo WindowsPosee limitaciones en las versiones que no son de la familia “Server”Posee vulnerabilidades. Uso del servidor apache Apache es usado principalmente para enviar páginas web estáticas y dinámicas en la World Wide Web. Muchas aplicaciones web están diseñadas asumiendo como ambiente de implantación a Apache, o que utilizarán características propias de este servidor web. Apache es el componente de servidor web en la popular plataforma de aplicaciones LAMP, junto a MySQL y los lenguajes de programación PHP/Perl/Python (y ahora también Ruby). Este servidor web es redistribuido como parte de varios paquetes propietarios de software, incluyendo la base de datos Oracle y el IBM WebSphere application server. Mac OS X integra apache como parte de su propio servidor web y como soporte de su servidor de aplicaciones WebObjects. Es soportado de alguna manera por Borland en las herramientas de desarrollo Kylix y Delphi. Apache es incluido con Novell NetWare 6.5, donde es el servidor web por defecto, y en muchas distribuciones Linux. Apache es usado para muchas otras tareas donde el contenido necesita ser puesto a disposición en una forma segura y confiable. Un ejemplo es al momento de compartir archivos desde una computadora personal hacia Internet. Un usuario que tiene Apache instalado en su escritorio puede colocar arbitrariamente archivos en la raíz de documentos de Apache, desde donde pueden ser compartidos. Los programadores de aplicaciones web a veces utilizan una versión local de Apache con el fin de previsualizar y probar código mientras éste es desarrollado.

44

Microsoft Internet Information Services (IIS) es el principal competidor de Apache, así como Sun Java System Web Server de Sun Microsystems y un anfitrión de otras aplicaciones como Zeus Web Server. Algunos de los más grandes sitios web del mundo están ejecutándose sobre Apache. La capa frontal (front end) del motor de búsqueda Google está basada en una versión modificada de Apache, denominada Google Web Server (GWS). Muchos proyectos de Wikimedia también se ejecutan sobre servidores web Apache. Licencias La licencia de software bajo la cual el software de la fundación Apache es distribuido es una parte distintiva de la historia de Apache HTTP Server y de la comunidad de código abierto. La Licencia Apache permite la distribución de derivados de código abierto y cerrado a partir de su código fuente original. La Free Software Foundation no considera a la Licencia Apache como compatible con la versión 2 de la GNU General Public License (GPL), en la cual el software licenciado bajo la Apache License no puede ser integrado con software distribuido bajo la GPL: Este es software libre pero es incompatible con la GPL. La Apache Software License es incompatible con la GPL porque tiene un requerimiento específico que no está incluido en la GPL: tiene ciertos casos de terminación de patentes que la GPL no requiere. No consideramos que dichos casos de terminación de patentes son inherentemente una mala idea, pero a pesar de ello son incompatibles con la GNU GPL. Sin embargo, la versión 3 de la GPL incluye una provisión (Sección 7e) que le permite ser compatible con licencias que tienen cláusulas de represalia de patentes, incluyendo a la Licencia Apache. El nombre Apache es una marca registrada y puede ser sólo utilizada con el permiso expreso del dueño de la marca. MODULOS. La arquitectura del servidor Apache es muy modular. El servidor consta de una sección core y diversos módulos que aportan mucha de la funcionalidad que podría considerarse básica para un servidor web. Algunos de estos módulos son: mod_ssl - Comunicaciones Seguras vía TLS. mod_rewrite - reescritura de direcciones (generalmente utilizado para transformar páginas dinámicas como php en páginas estáticas html para así engañar a los navegantes o a los motores de búsqueda en cuanto a cómo fueron desarrolladas estas páginas). mod_dav - Soporte del protocolo WebDAV (RFC 2518). mod_deflate - Compresión transparente con el algoritmo deflate del contenido enviado al cliente. mod_auth_ldap - Permite autentificar usuarios contra un servidor LDAP. mod_proxy_ajp - Conector para enlazar con el servidor Jakarta Tomcat de páginas dinámicas en Java (servlets y JSP). El servidor de base puede ser extendido con la inclusión de módulos externos entre los cuales se encuentran: mod_cband - Control de tráfico y limitador de ancho de banda. mod_perl - Páginas dinámicas en Perl. mod_php - Páginas dinámicas en PHP. mod_python - Páginas dinámicas en Python. mod_rexx - Páginas dinámicas en REXX y Object REXX. mod_ruby - Páginas dinámicas en Ruby. mod_aspdotnet - Páginas dinámicas en .NET de Microsoft (Módulo retirado).

45

mod_mono - Páginas dinámicas en Mono mod_security - Filtrado a nivel de aplicación, para seguridad. Seguridad en Apache Las distintas acciones que lleva a cabo para verificar la validez de la aplicación, se pueden agrupar en tres tipos: Autentificación, Autorización y Control de Acceso. La autentificación es el proceso por el cual se verifica la identidad de una persona. De una forma simple, este proceso se puede llevar a cabo mediante un nombre de usuario y una contraseña, pero se pueden llegar a utilizar otros métodos para validar la identidad de una persona, como mediante el uso de certificados, tarjetas etc… En apache la autentificación puede estar gestionada por distintos módulos, dependiendo de la forma de implementación. Si decide llevarla a cabo gestionando ficheros con listas de usuarios y contraseñas (encriptadas), deberá utilizar el módulo mod_auth. Sin embargo, si decide llevarla a cabo mediante base de datos, deberá utilizar los módulos mod_auth_dbm. La autorización es el proceso por el cual se verifica que un usuario con una identidad conocida, tiene acceso al recurso solicitado. Para llevar a cabo esta acción, se suelen utilizar listas de permisos en las cuales se enumeran cada una de las acciones que puede realizar un usuario, o las que no puede hacer. Normalmente, para simplificar la gestión de estos ficheros, los usuarios se suelen unir en grupos proporcionando los permisos al grupo. En apache la autorización a recursos es gestionada o bien mediante la directiva <directory> en el fichero principal de configuración, o bien mediante la configuración de la carpeta a través de ficheros .htaccess. El control de acceso es el proceso por el cual se verifica que la máquina desde la que se ha hecho la petición, tiene acceso al recurso. Los controles de acceso se utilizan para limitar y controlar las máquinas que tienen acceso a un recurso independientemente del usuario que accede, ya que estos controles se llevan a cabo antes de que se realice el proceso de autentificación. En apache, el control de acceso se puede llevar a cabo mediante las directivas <directory><files>y <location>, o a través del fichero de configuración .htaccess para controlar una carpeta especifica. En todo caso y para poder llevar a cabo la configuración de las tres características aquí enumeradas, autentificación, autorización y control de acceso, es necesario tener la directiva AllowOverride con el valor AuthConfig, para así permitir el uso de las distintas directivas de autentificación. Autentificación y autorización de usuarios en Apache. Mod_auth Para configurar el servidor apache para que sea capaz de autentificar a los usuarios y verificar la autorización del mismo al recurso solicitado, es necesario realizar las siguientes acciones: Crear un fichero con usuarios Crear un fichero con grupos (si es necesario) Definir las directivas en el fichero de configuración o mediante un fichero .htaccess En los ficheros de usuarios de apache, en cada línea se especifica un usuario, escribiendo el nombre de usuario separado de dos puntos, seguido de la contraseña encriptada con MD5. En los ficheros de grupos de apache, en cada línea se especifica un grupo escribiendo el nombre del grupo seguido de dos puntos, y a continuación separado por espacios, los nombres de los usuarios.

46

Es recomendable que tanto los ficheros de usuarios como los de grupos, se encuentren almacenados fuera de los directorios publicados, para que de esta forma nadie pueda descargarlos. Asimismo, solo el usuario root debería estar autorizado a escribir en él, mientras que solo el usuario que ejecuta el servicio web, debería estar autorizado para leerlo. El fichero de grupos se puede crear manualmente, pero el fichero con los usuarios es recomendable crearlo mediante la utilidad htpasswd, que se encuentra en la carpeta con los binarios de apache. Para crear un fichero de usuario se utilizará la siguiente sintaxis: htpasswd -c ruta/passwords usuario El flag -c se utiliza para crear un fichero nuevo, por lo que sólo se deberá poner la primera vez que se crea el fichero, sino lo borrará. Los módulos que intervienen en la autentificación y autorización son los de core y mod_auth. Las directivas de mod_auth necesarias para configurar la autenticación y autorización son las siguientes: AuthUserFile: siver para especificar la ruta donde se almacenará el fichero de usuarios. AuthGroupFile: sirve para especificar la ruta donde se almacenará el fichero de grupos. Las directivas de core necesarias para complementar la configuración del módulo son: AuthType: selecciona el tipo de autentificación de usuarios que se utilizará para autentificar a un usuario. Puede variar por directorio. Los valores posibles son Basic y Digest. Con Basic, la transferencia de las claves se hará sin cifrar, y con digest se harán cifradas. AuthName: especifica un nombre del dominio para el cual se solicita el acceso, este nombre figurará en la pantalla donde se pide la clave, y a su vez servirá para que el cliente identifique la contraseña que debe utilizar al enviar una petición a un área determinada. Require: selecciona los usuarios que pueden acceder a un área determinada, los usuarios se pueden determinar a través de nombres o grupos.

47

CUADRO COMPARATIVO DE APACHE Y IIS Apache IIS

• Apache es un proyecto libre, y por tanto, gratuito. Existente dos versiones que desarrollan paralelamente, las versiones 1.3.x y 2.0.x. Que su numero de version sea mas alto significa que sea mas moderno o este mas desarrollado, simplemente son dos lineas de trabajo distintas. De hecho la mas usada es la 1.3.x. No necesita de licencia, y no se recibe soporte tecnico. Eso si, esta demostrado que ante los problemas de seguridad, actuan mas rapido que Microsoft, poniendo a disposición de los usuarios hotfixes que solucionan el problema en menos tiempo.

• Si nos centramos en el uso que se hace en Internet de los servidores web, Apache resulta ser el claro ganador ante todas las otras alternativas, pues a demostrados con creces desde su nacimiento su estabilidad, solidez y rendimiento superiores. En todo caso, Apache supone una clara alternativa para el que pretenda trastear con este mundo de los servidores web, pues solo tiene que descargarlo y comenzar a usarlo en su propio sistema, con la tranquilidad de no estar quebrantando ningun tipo de ley. Por supuesto tambien esta disponible para sistemas Windows, con una facilidad de manejar que asombraria a mas uno. Nada mas instalarlo ya esta listo para ser usado, luego, si se quiere poner a

• IIS va por su version 6, y, por supuesto, solo funciona bajo servidores Microsoft. Debe ser usado bajo licencia, esto es, hay que pagar por el, conesto te ofrecen un servicio tecnico y cierto tipo de garantias, como soporte ante fallos de seguridad y funcionamiento, disponiendo de parches y hotfixes con cierta traquilidad.

• IIS, sin embrago, es un poco mas intuitivo (cuadros de dialogo y ventas) pero a costa de una integración total en el sistema que hace difícil distinguir que opciones afecta al servidor y cuales al sistema operativo. Tambien hay que decir que ocupa muchos mas megas en el disco duro, y su uso sin licencias es ilegal.

• IIS tiene un 28.69% de estadisticas de popularidad del mundo tecnologico

48

punto su configuración, solo es necesario modificar un fichero de texto que viene perfectamente documentado. Todo esto en menos de dos megas

• Apache tiene un 57.95% de popularidad del mundo tecnologico.

PRO APACHE IIS

• Proyecto Open Source bajo constante desarrollo

• Mucha información disponible

• Soporte disponible por parte de gran numero de usuarios y comunidades a nivel mundial

• Perl Engine integrado ofrece enlaces directos al APL

• ODBC disponibles sin costo

• Gran cantidad de opciones

• Extencibles

• Facil de utilizar

• Poco o nada de configuración necesaria

• ASP sencillo de utilizar

• Soporte ODBC integrado

• Soporte FrontPage integrado

• Interfaz grafia

• Disponibilidad de herramientas de desarrollo

• Mucha información disponible

CONTRAS APACHE IIS

• Configuracion inicial necesaria

• Perl Engine incrementa constantemente el uso de memoria

• La curva de aprendisaje para uso efectivo del servicio es muy empinada

• Cualquier problema serio (crash) puede requerir una reinstalacion del servidor

• Los modulos y utilidades adicionales deben ser compradas

• Un objetivo COM mal escrito o un lazo infinito puede matar al servidor

49

IIS

Internet Information Services o IIShttp://es.wikipedia.org/wiki/Internet_Information_Services - cite_note-1

es un servidor web y un conjunto de servicios para el sistema operativo Microsoft Windows. Originalmente era parte del Option Packpara Windows NT. Luego fue integrado en otros sistemas operativos de Microsoftdestinados a ofrecer servicios, como Windows 2000 o Windows Server 2003. Windows XP Profesional incluye una versión limitada de IIS. Los servicios que ofrece son: FTP,SMTP, NNTP y HTTP/HTTPS.

Antiguamente se denominaba PWS (Personal Web Server), y actualmente forma parte de la distribución estandar de Windows, de modo que no se necesita una licencia extra para instalarlo.2 Este servicio convierte a una PC en un servidor web para Internet o unaintranet, es decir que en las computadoras que tienen este servicio instalado se pueden publicar páginas web tanto local como remotamente.

Los servicios de Internet Information Services proporcionan las herramientas y funciones necesarias para administrar de forma sencilla un servidor web seguro.

El servidor web se basa en varios módulos que le dan capacidad para procesar distintos tipos de páginas. Por ejemplo, Microsoft incluye los de Active Server Pages (ASP) y ASP.NET. También pueden ser incluidos los de otros fabricantes, como PHP o Perl.

HISTORIA

Evolución

IIS fue inicialmente lanzado como un conjunto de servicios basados en Internet para Windows NT 3.51. IIS 2.0 siguió agregando soporte para el sistema operativo Windows NT 4.0 y IIS 3.0 introdujo las Active Server Pages, una tecnología de scripting dinámico.

IIS 4.0 eliminó el soporte para el protocolo Gopher y fue puesto con Windows NT como un CD-ROM de "Paquete Opcional" separado.

La versión de IIS 7.5 corresponde a Windows Server 2008, e IIS 5.1 a Windows XP Professional. La versión IIS 5.1, para Windows XP, es una versión

50

compacta del IIS que soporta sólo 10 conexiones simultáneas y sólo un sitio web. IIS 6.0 ha agregado soporte paraIPv6.

Windows Vista viene con IIS 7.0 preinstalado. No limitará el número de conexiones permitidas pero limitará el flujo de tareas basándose en las solicitudes activas concurrentes, mejorando el uso y el rendimiento en escenarios punto-a-punto (peer-to-peer).

Definición de Servidor IIS

Los servicios de Internet Information Server (o IIS), son los servicios de software que admiten la creación, configuración y administración de sitios Web, además de otras funciones de Internet. Los servicios de Microsoft Internet Information Server incluyen el Protocolo de transferencia de noticias a través de la red (NNTP), el Protocolo de transferencia de archivos (FTP) y el Protocolo simple de transferencia de correo (SMTP).

Los servicios de Internet Information Server 5.0 (IIS) es el servicio Web de Windows 2000 que facilita la publicación de información en una intranet o en Internet; IIS permite autenticación robusta y segura de los usuarios, así como comunicaciones seguras vía SSL; además podemos crear contenido dinámico utilizando los componentes y secuencias de comandos del servidor para crear contenido dinámico independiente del explorador mediante páginas Active Server (ASP).

Además en nuestro servidor IIS, instalaremos también un servidor PHP y la base de datos MSQL, de modo que podamos ejecutar páginas dinámicas PHP, así como enlazar tanto desde ASP como desde PHP con dicho gestor de base de datos; además también veremos como construir espacios seguros con SSL, así como espacios privados, etc.

Sin duda el servidor IIS será una pieza clave para gestionar la red de nuestro centro, pudiendo construir una Intranet con muchos de los servicios que habitualmente encontraremos en múltiples portales existentes en Internet.

Debemos indicar que es MUY IMPORTANTE no instalar el servidor IIS en un equipo "Windows 2000 Server" que sea controlador de dominio (tal y como es nuestro caso), pues ello provocará un grave problema de seguridad, ya que los usuarios del dominio que no son administradores, podrían llegar a abrir una sesión local sobre el servidor Windows 2000, es decir, si tienen acceso físico al servidor Windows 2000 podrían iniciar sesión en dicha máquina, con el consiguiente problema de seguridad que ello supone. Obviamente en nuestro caso aprovecharemos el mismo equipo "Windows 2000 Server" para hacer la

51

función de controlador de dominio y servidor IIS, pero debemos ser conscientes que no es lo recomendable.

CARACTERISTICAS

Microsoft ha mejorado sustancialmente su software estrella en el campo delos servicios Web. Los avances vienen motivados sobre todo por la seguridad y el rendimiento, aunque todavía adolece de algunos agujeros de seguridad. Las características agregadas en seguridad se aprovechan de las últimas tecnologías de cifrado y métodos de autenticación mediante certificados de cliente y servidor.

IIS tiene la forma de asegurar los datos es mediante SSL ( SecureSockets Layer ). Esto proporciona un método para transferir datos entre el cliente y el servidor de forma segura, permitiendo también que el servidor pueda comprobar al cliente antes de que inicie una sesión de usuario.

La autenticación implícita que permite a los administradores autenticara los usuarios de forma segura a través de servidores de seguridad y proxy.

IIS también es capaz de impedir que aquellos usuarios con direcciones IP conocidas obtengan acceso no autorizado al servidor, permitiendo especificar la información apropiada en una lista de restricciones.

En cuanto a la seguridad, IIS tiene integrado el protocolo Kerberos v5(como le ocurre al sistema operativo). El almacenamiento de certificados se integra ahora con el almacenamiento Crypto API de Windows. Se puede utilizar el administrador de certificados de Windows para hacer una copia de seguridad, guardar y configurar los certificados. Además, la administración de la seguridad del servidor IIS es una tarea fácilmente ejecutable a base de asistentes para la seguridad. Se pueden definir permisos de acceso en directorios virtuales e incluso en archivos, de forma que el asistente actualizará los permisos NTFS para reflejar los cambios. Si se trabaja con entidades emisoras de certificados, es posible gestionar la lista de certificados de confianza ( CTL, Certificate Trust List ) con el asistente para CTL.

52

VERSIONES

• IIS 1.0, Windows NT 3.51 Service Pack 3 • IIS 2.0, Windows NT 4.0

• IIS 3.0, Windows NT 4.0 Service Pack 3 • IIS 4.0, Windows NT 4.0 Option Pack

• IIS 5.0, Windows 2000 • IIS 5.1, Windows XP Professional • IIS 6.0, Windows Server 2003 y Windows XP Profesional x64 Edition • IIS 7.0, Windows Vista (Solo Business y Ultimate) y Windows Server

2008 • IIS 7.5, Windows 7 y Windows Server 2008 R2 • IIS 8, Windows 8 y Windows Server 2012

INSTALACION EN WINDOWS XP

Internet Information Server (IIS) es el servidor de páginas web avanzado de la plataforma Windows. Se distribuye gratuitamente junto con las versiones de Windows basadas en NT, como pueden ser Windows 2000 Profesional o Windows 2000 Server, así como Windows XP, también en sus versiones Profesional y Server. Estas normas de instalación son aplicables, a nivel general, a las que podemos encontrarnos en las distintas versiones de los sistemas operativos comentados antes, si bien hemos tomado Windows XP profesional para relatar los pasos y tomar las imágenes de las pantallas.

Nota: Windows 95, 98, las versiones Home, de Windows XP, y ME, de Windows 2000, no se admite la instalación de IIS. En su lugar podemos probar a instalar el Personal Web Server, que se explica en el artículo Instalación de Personal Web Server.

Agregar componentes adicionales de Windows IIS se puede encontrar en el propio CD de instalación de Windows XP Profesional. Hay que acceder a la opción de "Instalar componentes opcionales de Windows" para poder cargarlo en nuestro sistema. Para ello tenemos dos opciones:

53

1) Insertar el CD de instalación de Windows y en la ventana de autoarranque que se muestra, seleccionar la opción que pone "Instalar componentes opcionales de Windows"

Imagen n°41

2) En el Panel de control, seleccionar la opción de "Agregar o quitar programas" y en la ventana que sale, pulsar sobre el icono de la izquierda marcado como "Seleccionar o quitar componentes de Windows".

Imagen n°42

54

Ahora nos muestra la ventana para seleccionar los componentes adicionales de Windows que hay disponibles. En la lista, marcamos la opción "Servicios de Internet Information Server (IIS)". Por defecto se seleccionan unos cuantos componentes, dentro de los que ofrece la instalación de IIS. Nosotros podemos elegir qué componentes deseamos instalar apretando el botón marcado como "Detalles". Entre los componentes posibles se encuentran las extensiones de Frontpage, documentación, servicios adicionales de IIS, un servidor de FTP (para la transferencia de ficheros con el servidor por FTP), incluso uno de SMTP (para el envío de correos electrónicos). Si no sabemos qué componentes instalar podemos dejar las opciones como aparecen en un principio, pues para la mayoría de los casos serán válidas. Sólo un detalle: puede ser adecuado no instalar las extensiones de Frontpage en caso de que no pensemos que se vayan a utilizar.

Imagen n°43

Una vez hemos instalado los componentes deseados, podemos y apretar el botón de "Siguiente" para comenzar la instalación, que se alargará unos minutos. Acceder al servidor web Podemos acceder al servidor web para comprobar si se ha instalado correctamente IIS. Para ello simplemente debemos escribir http://localhost en Internet Explorer y debería aparecer una página web informando que IIS está correctamente instalado. Además, aparecerá la documentación de IIS en una ventana emergente, si es que fue instalada.

55

Imagen n°44

CONFIGURACION

Antes de poder transmitir las aplicaciones virtuales a Application Virtualization Desktop Client y Client for Remote Desktop Services (previamente Terminal Services), es necesario configurar los servidores IIS. Al configurar los servidores, configura el directorio de contenido en donde se cargan y almacenan los archivos SFT. Los archivos SFT contienen la aplicación (o las aplicaciones) virtual.

Para configurar el directorio de contenido en el servidor IIS

1. En el servidor que ejecuta IIS, busque el directorio que desea utilizar como directorio de contenido o cree el directorio si no existe. Configure este directorio como un recurso compartido de archivos estándar.

2. En el servidor que ejecuta IIS, abra Administrador de IIS y, en el sitio web predeterminado, cree un directorio virtual que se corresponda con el directorio de contenido que creó en el servidor. Asegúrese de que la opción Lectura está activada.

3. Asigne el alias Content al directorio virtual recién creado. 4. Acepte todas las demás opciones de configuración predeterminadas

para este directorio virtual. 5. Configure los permisos del sistema de archivos NTFS en el directorio de

contenido y las carpetas de paquetes del directorio de contenido mediante los grupos de seguridad de los Servicios de dominio de Active Directory que definió previamente.

56

Configurar el IIS(Internet Information Server) en Windows 2003 Server, yo tomaré en cuenta de que ya tienen el IIS instalada así que me saltaré esos pasos. Antes que nada lo primero que tenemos que hacer es actualizar el Windows 2003 Server con la herramienta de Windows Update. Ya que el Windows 2003 Server actualizado esta listo para configurar el IIS. Como primer paso tenemos que entrar al panel de control y damos doble Click en Herramientas Administrativas para abrir la siguienteventana. Ya una vez que estamos en la ventana de HerramientasAdministrativas seleccionamos y damos doble click en el Icono de Administrador de Internet Information Server (IIS)

Imagen n°45 VENTAJAS Y DESVENTAJAS Ventajas y desventajas de los servidores Apache y IIS Ventajas: Ventajas: Servidor apache Servidor IIS Servidor apache Servidor IIS Es altamente configurable Se desarrolla dentro del proyecto HTT Tiene amplia aceptación en la red Posee licencia freeware gracias a su amplio nivel de capacitación, su costo y su compatibilidad con los sistemas operativos Posee código abierto y es fácil de conseguir ayuda/soporte (es popular)Es confiable, seguro y administrable en internet .proporcionan capacidades de servidor Web integrado Al momento de la instalación permite elegir sobre que servidor web va a correr (Apache o IIS)Desarrolla y es Compatible con las aplicaciones beneficiándose

57

con un único entorno de alojamiento de aplicaciones integrado con compatibilidad total. Ventajas y desventajas de los servidores Apache y IIS Desventajas Servidor apache Servidor IIS Esta incluye Formatos de configuración no estándar No cuenta con una buena administración Falta de integración Tiende a limitarse en las versiones que no son de la familia “Server” Posee vulnerabilidades Este servidor no es multiplataforma, sólo funciona bajo Windows. Servidor apache Servidor IIS proporcionan capacidades de servidor Web integrado Es confiable, seguro y administrable en internet. Desarrolla y es Compatible con las aplicaciones beneficiándose con un único entorno de alojamiento de aplicaciones integrado con compatibilidad total. Al momento de la instalación permite elegir sobre que servidor web va a correr (Apache o IIS)desarrollada por Microsoft Se desarrolla dentro del proyecto HTTP Es altamente configurable Tiene amplia aceptación en la red Es modular Posee código abierto Multi-plataforma Es extensible Es fácil de conseguir ayuda/soporte (es popular)Al momento de la instalación permite elegir sobre que servidor web va a correr (Apache o IIS)Posee licencia freeware gracias a su amplio nivel de capacitación, su costo y su compatibilidad con los sistemas operativos Servidor apache Servidor IIS Falta de integración Posee Formatos de configuración no estánda rNo posee buena administración Este servidor no es multiplataforma, sólo funciona bajo Windows Posee limitaciones en las versiones que no son de la familia “Server ”Posee vulnerabilidades INSTALACION DEL PROGRAMA FTP Este programa tiene un “puente” entre su computador y la el servidor, a través del cual pasaran los archivos que Usted haya actualizado. Para instalar el programa vaya a Inicio , luego ejecutar y en examinar elija el diskette. Desde allí seleccione ws_ftple.exe Instalación Seleccione la opción para instalar WS_FTP y presione el botón Continúe

Imagen n°46

58

Seleccione el tipo de usuario y el lugar de uso para esta versión de WS_FTP

Imagen n°47

Imagen n°48 Después de leer y aceptar los términos de la licencia seleccione la ubicación en el disco de los archivos de WS_FTP (C:\kit\WS_FTP por ejemplo)

Imagen n°49

59

Seleccione el directorio donde quedarán los archivos que usted desee bajar de la red cuando realice una conexión FTP.

Imagen n°50

Imagen n°51

Los servidores FTP que aceptan conexiones para cualquier usuario (Conexiones anónimas) requieren de su dirección electrónica para ser aceptados. Coloque su dirección como lo indica la figura. Coloque el nombre para el grupo de programas dentro del menú de inicio.

Imagen n°52

Con esto queda instalado en su computador el programa WS FTP.

60

USANDO EL PROGRAMA Una vez hayan sido terminadas las modificaciones a las páginas web, el primer paso es conectarse a su proveedor de acceso a internet de la forma tradicional. A continuación ejecute el programa WS-FTP, el cual tiene la siguiente apariencia:

Imagen n°53 Oprima NEW para personalizar su conexión. En PROFILE NAME asígnele un nombre a su personalización, y llene las casillas "Host Name", "User ID" y "Password" suministrados por el administrador de Red.

61

Conclusión Por ultimo para concluir este trabajo puedo decir que este trabajo es de suma importancia ya que contienes definiciones muy importantes para saber mas acerca de un servidor ya sea libre o de no libre . Ojala y muchas personas que no sean informáticos puedan leer este trabajo y les interese la información dada par que separa al respecto de cómo se trabaja con un servidor y todo lo que acarrea . Bibliografía

� 3 http://es.tldp.org (Proyecto LuCAs) � Página dedicada a proyectos y FAQ’s sobre sistemas Linux y programas de � libre distribución con licencia GNU � 3 www.desarrolloweb.com � Página dedicada a la recopilación de noticias y FAQ’s sobre el desarrollo de � webs o aplicaciones web. � 3 http://iptables-tutorial.frozentux.net/spanish/chunkyhtml/ � Traducción al español de un completo manual sobre el manejo y uso de � IPTables en Linux � 3 Programación de Aplicaciones Web (S. Rodríguez. Editorial Thomson) � Libro-Manual basado en el uso de distintos lenguajes de programación web � y el manejo de comercio web y administración de servidores