Servidores Web Apache 2
Temas a tratar Introducción de servidores web. Servidor Apache  Uso en internet de Apache Configuración uso de directivas de configuracion Publicar sitio web Publicar recursos en el web Autenticar a usuarios para acceder a recursos web
Servidor Web: Arquitectura y funcionamiento ¿Que es un servidor? Es un tipo de software que suministra servicios a quien lo solicita ¿Que es un servidor Web? Es un programa que sirve datos en forma de paginas web, textos complejos con enlaces, figuras formularios. La comunicacion de estos se realiza por medio de un protocolo, llamado http El servidor web se mantiene en espera por peticiones HTTP, solicitadas por un cliente atravez de un software de navegacion.
Funcionamiento de un servidor Web El servidor web es el responsable de proporcinar el acceso a los recursos que se encuentran bajo control del sistema operativo
Arquitectura Capa servidor Subsistema Recepción: espera las peticiones de los clientes  Analizador de peticiones: traduce la localizacion del la red al nombre del archivo local(servidor) Control de acceso: autentica y permite el acceso. Manejador de Recursos: determina el tipo de recurso solicitado Registro de transaccion: registra todas las peticiones y su resultado. Capa Soporte  Utilidades: funciones utilizadas por el resto de subsistemas. Capa Abstracta del Sistema operativo (OSAL)  encapsula el funcionamiento especifico del sistema operativo para facilitar su portabilidad del servidor web a diferentes plataformas.
Instalación de Apache Existen 2 maneras: Conseguir los rpm para la distribución y usar el comando  rpm –ivh httpd.rpm Utilizar un repositorio de datos y bajarlo a traves de yum yum install httpd*
Puesta en marcha de Apache Una vez que se ha instalado el apache se puede iniciarlo como servicio ejecutando la siguiente linea de comando service httpd start (la utilidad service toma como parametro el nombre del servicio que se desea ejecutar y la accion que este le vaya a realizar puede ser start, stop, restart) Formas para verificar su funcionamiento Ejecute la siguiente linea de comando desde una consola windows o linux telnet <ip del servidor> 80.  Verifique que el proceso efectivamente este corriendo ps –ax | grep http* netstat –utap | grep http* Abra un browser (firefox) y coloque lo siguiente en su url. http://localhost
Configuración de Apache El archivo que contiene el comportamiento principal de apache es: httpd.conf Dentro de esta existen 3 secciones que agrupan el comportamiento del servidor Global Enviroment Definen las directivas que controlan el funcionamiento general, como el número de peticiones concurrentes que puede manejar, donde puede encontrar los ficheros de configuración.  Main server configuración Definen los parametros del servidor principal, proporciona tambien parametros por defecto para todos los host virtuales. Virtual host Un servidor web puede albergar diferentes sitios web utilizando diferentes nombres de host Los beneficios de utilizar el soporte de host virtuales permite definir prácticamente un número de servidores ilimitado, de fácil configuración y que no requiere hardware adicional. La principal desventaja es que el software cliente debe soportar esta parte del protocolo.
Configuración de Apache Global Enviroment ServerRoot: Define el directorio donde reside toda la información de configuración y registro que necesita el servidor. Timeout: Número de segundos tras los cuales el servidor cierra la conexión. KeepAlive: Si se permiten o no conexiones persistentes. MaxKeepAliveRequest: El número máximo de peticiones permitidas durante una conexión persistente. StartServers: Número de procesos servidor hijo que serán creados cuando arranca Apache por primera vez. Maxclients: Define el número de peticiones simultáneas que apache puede soportar. Como máximo se crean este nº de procesos servidores hijo. MaxRequestPerChild: Define el nº de peticiones que cada proceso hijo tiene permitido procesar antes de morir. ThreadsPerChild: Nº de hilos concurrentes que el servidor permitirá utilizar. Este valor representa el nº máximo de conexiones que el servidor puede manejar a la vez. Listen: Esta directiva instruye al servidor Apache para que escuche en mas de una dirección IP o en mas de un puerto. LoadModule: Esta directiva enlaza dentro del servidor la librería o fichero objeto nombrado cuando se arranca el servidor y añade la estructura del modulo a la lista de módulos activos.
Configuración de Apache Mail Server configuración Port: Define el puerto en el cual escucha el servidor (0 - 65535). Hay que tener en cuenta la relación que tiene esta directiva con el fichero /etc/services y que algunos puertos, especialmente los situados por debajo del 1024, están reservados para protocolos específicos. El puerto estándar para el protocolo HTTP es el 80. User/Group: Definen el usuario y el grupo con el que el servidor contestará las peticiones. Para poder utilizar esta directiva, el servidor standalone debe ejecutarse inicialmente como usuario root. El usuario no debería poseer privilegios que otorguen acceso a ficheros que no deseemos. ServerAdmin: Define la dirección de correo que el servidor incluirá en cualquier mensaje de error que devuelva al cliente. ServerName: Define el nombre de host del servidor. Se suele utilizar cuando se crean redirecciones. Sino se define el nombre de servidor, intentará deducirlo a través de su dirección IP. DocumentRoot: Define el directorio desde el cual el servidor servirá los documentos. A menos que la URL solicitada coincida con una directiva Alias, el servidor añadirá el PATH a la URL.
Configuración de Apache Mail Server configuración Directory: <Directory></Directory> se utilizan para encerrar un grupo de directivas que se aplicarán al directorio en cuestión y sus sub-directorios. El parámetro directorio, puede ser una trayectoria completa o un metacaracter. DirectoyIndex fichero: Nombre/s del fichero/s a usar como página de inicio de un directorio. AccessFileName fichero: El nombre del fichero a buscar en cada directorio para información de control de acceso. Alias url directorio: Esta directiva permite que los documentos sean almacenados en un sistema de ficheros diferente al definido por la directiva DocumentRoot. Options: [+|-] opcion: Controla que características están disponibles para un directorio en particular. La opción se puede definir a None, de forma que ninguna característica extra se habilita o a All de forma que todas se habilitan menos MultiViews. Otras características extra son: ExecCGI , FollowSymLinks, Includes, IncludesNOEXEC, Indexes, MultiViews, SymLinksIfOwnerMatch.
Configuración de Apache Virtual Hosts <VirtualHost> </VirtualHost> <VirtualHost> and </VirtualHost> se utilizan para agrupar un conjunto de directivas que se aplicarán solo a un host virtual. Dentro de este par de directivas se pueden incluir cualquier otra que haga refenrencia a este host particular. NameVirtualHost: Especifica la dirección a resolver cuando se utiliza un sistema basado en nombres de host virtuales. ServerName: Especifica el nombre de host que aparecerá en la cabecera de la petición.
Puesta en Marcha de un sitio Web Si se desea colocar un sitio web en un servidor apache se debe: Crear un sitio web, con alguna herramienta(windows/linux) Una vez que se tenga la estructura terminada se la debe colocar en el directorio  /var/www/html/ Si se desea que solo exista un solo site dentro de su servidor web.
Puesta en Marcha de un sitio Web Directorios Virtuales Si se desea publicar una carpeta de su sistema de archivos ejm /opt/cursolinux http://localhost/recursos . http://200.9.176.1/recursos http://www.inventiva.com/recursos Redireccion de Directorios Se puede hacer que un directorio del apache se redirija de manera transparente hacia otro servidor externo añadiendo esto a su configuracion Redirect /recurso http://www.fiec.espol.edu.ec
Directorios Virtuales Ejemplo Dentro de la sección “configuracion principal del servidor” se coloca lo siguiente: Alias /linux/  /opt/cursolinux/ <Directory &quot;/opt/cursolinux/&quot;> Options Indexes Includes FollowSymLinks Order allow,deny Allow from all </Directory> El parametro  Indexes indica que se debera mostrar el contenido del directorio FollowSymLinks permite colocar enlaces simbolicos dentro del directorio Includes permite utilizar funciones como autenticacion.
Acceso a Directorios Virtuales Se puede restringir el acceso para que determinados usuarios tengan acceso desde el internet a un recurso determinado. Pasos Para el recurso o directorio a autenticar se debe añadir lo siguiente Options Indexes FollowSymLinks  Includes  AllowOverride All  Se debe crear un fichereo .htaccess definiendo la autenticacion para dicho directorio contra un fichero que contenga claves. El archivo contendra : AuthName &quot;Solo usuarios autorizados&quot; AuthType Basic require valid-user AuthUserFile /cualquier/ruta/hacia/fichero/de/claves
Acceso a Directorios Virtuales ejemplo Generar un directorio que sera visto por cualquier browser: http://localhost/confidencial/ Crear un archivo llamado autentica.conf Alias /confidencial /opt/cursolinux/secretomaximo <Directory &quot;/opt/cursolinux/secretomaximo&quot;> Option Indexes FollowSymLinks Includes AllowOverride All Order allow, deny Allow from all </Directory> Crear el directorio secretomaximo mkdir /opt/cursolinux/secretomaximo
Acceso a Directorios Virtuales ejemplo Crear el archivo /opt/cursolinux/secretomaximo/.htaccess Touch /opt/cursolinux/secretomaximo/.htaccess Editar el fichero .htaccess y añada AuthName &quot;Solo usuarios autorizados&quot; AuthType Basic require valid-user AuthUserFile /var/www/claves  Cree el archivo /var/www/claves Touch /var/www/claves htpasswd /var/www/claves fulano  Reinicie el servicio httpd

Apache2 dia1

  • 1.
  • 2.
    Temas a tratarIntroducción de servidores web. Servidor Apache Uso en internet de Apache Configuración uso de directivas de configuracion Publicar sitio web Publicar recursos en el web Autenticar a usuarios para acceder a recursos web
  • 3.
    Servidor Web: Arquitecturay funcionamiento ¿Que es un servidor? Es un tipo de software que suministra servicios a quien lo solicita ¿Que es un servidor Web? Es un programa que sirve datos en forma de paginas web, textos complejos con enlaces, figuras formularios. La comunicacion de estos se realiza por medio de un protocolo, llamado http El servidor web se mantiene en espera por peticiones HTTP, solicitadas por un cliente atravez de un software de navegacion.
  • 4.
    Funcionamiento de unservidor Web El servidor web es el responsable de proporcinar el acceso a los recursos que se encuentran bajo control del sistema operativo
  • 5.
    Arquitectura Capa servidorSubsistema Recepción: espera las peticiones de los clientes Analizador de peticiones: traduce la localizacion del la red al nombre del archivo local(servidor) Control de acceso: autentica y permite el acceso. Manejador de Recursos: determina el tipo de recurso solicitado Registro de transaccion: registra todas las peticiones y su resultado. Capa Soporte Utilidades: funciones utilizadas por el resto de subsistemas. Capa Abstracta del Sistema operativo (OSAL) encapsula el funcionamiento especifico del sistema operativo para facilitar su portabilidad del servidor web a diferentes plataformas.
  • 6.
    Instalación de ApacheExisten 2 maneras: Conseguir los rpm para la distribución y usar el comando rpm –ivh httpd.rpm Utilizar un repositorio de datos y bajarlo a traves de yum yum install httpd*
  • 7.
    Puesta en marchade Apache Una vez que se ha instalado el apache se puede iniciarlo como servicio ejecutando la siguiente linea de comando service httpd start (la utilidad service toma como parametro el nombre del servicio que se desea ejecutar y la accion que este le vaya a realizar puede ser start, stop, restart) Formas para verificar su funcionamiento Ejecute la siguiente linea de comando desde una consola windows o linux telnet <ip del servidor> 80. Verifique que el proceso efectivamente este corriendo ps –ax | grep http* netstat –utap | grep http* Abra un browser (firefox) y coloque lo siguiente en su url. http://localhost
  • 8.
    Configuración de ApacheEl archivo que contiene el comportamiento principal de apache es: httpd.conf Dentro de esta existen 3 secciones que agrupan el comportamiento del servidor Global Enviroment Definen las directivas que controlan el funcionamiento general, como el número de peticiones concurrentes que puede manejar, donde puede encontrar los ficheros de configuración. Main server configuración Definen los parametros del servidor principal, proporciona tambien parametros por defecto para todos los host virtuales. Virtual host Un servidor web puede albergar diferentes sitios web utilizando diferentes nombres de host Los beneficios de utilizar el soporte de host virtuales permite definir prácticamente un número de servidores ilimitado, de fácil configuración y que no requiere hardware adicional. La principal desventaja es que el software cliente debe soportar esta parte del protocolo.
  • 9.
    Configuración de ApacheGlobal Enviroment ServerRoot: Define el directorio donde reside toda la información de configuración y registro que necesita el servidor. Timeout: Número de segundos tras los cuales el servidor cierra la conexión. KeepAlive: Si se permiten o no conexiones persistentes. MaxKeepAliveRequest: El número máximo de peticiones permitidas durante una conexión persistente. StartServers: Número de procesos servidor hijo que serán creados cuando arranca Apache por primera vez. Maxclients: Define el número de peticiones simultáneas que apache puede soportar. Como máximo se crean este nº de procesos servidores hijo. MaxRequestPerChild: Define el nº de peticiones que cada proceso hijo tiene permitido procesar antes de morir. ThreadsPerChild: Nº de hilos concurrentes que el servidor permitirá utilizar. Este valor representa el nº máximo de conexiones que el servidor puede manejar a la vez. Listen: Esta directiva instruye al servidor Apache para que escuche en mas de una dirección IP o en mas de un puerto. LoadModule: Esta directiva enlaza dentro del servidor la librería o fichero objeto nombrado cuando se arranca el servidor y añade la estructura del modulo a la lista de módulos activos.
  • 10.
    Configuración de ApacheMail Server configuración Port: Define el puerto en el cual escucha el servidor (0 - 65535). Hay que tener en cuenta la relación que tiene esta directiva con el fichero /etc/services y que algunos puertos, especialmente los situados por debajo del 1024, están reservados para protocolos específicos. El puerto estándar para el protocolo HTTP es el 80. User/Group: Definen el usuario y el grupo con el que el servidor contestará las peticiones. Para poder utilizar esta directiva, el servidor standalone debe ejecutarse inicialmente como usuario root. El usuario no debería poseer privilegios que otorguen acceso a ficheros que no deseemos. ServerAdmin: Define la dirección de correo que el servidor incluirá en cualquier mensaje de error que devuelva al cliente. ServerName: Define el nombre de host del servidor. Se suele utilizar cuando se crean redirecciones. Sino se define el nombre de servidor, intentará deducirlo a través de su dirección IP. DocumentRoot: Define el directorio desde el cual el servidor servirá los documentos. A menos que la URL solicitada coincida con una directiva Alias, el servidor añadirá el PATH a la URL.
  • 11.
    Configuración de ApacheMail Server configuración Directory: <Directory></Directory> se utilizan para encerrar un grupo de directivas que se aplicarán al directorio en cuestión y sus sub-directorios. El parámetro directorio, puede ser una trayectoria completa o un metacaracter. DirectoyIndex fichero: Nombre/s del fichero/s a usar como página de inicio de un directorio. AccessFileName fichero: El nombre del fichero a buscar en cada directorio para información de control de acceso. Alias url directorio: Esta directiva permite que los documentos sean almacenados en un sistema de ficheros diferente al definido por la directiva DocumentRoot. Options: [+|-] opcion: Controla que características están disponibles para un directorio en particular. La opción se puede definir a None, de forma que ninguna característica extra se habilita o a All de forma que todas se habilitan menos MultiViews. Otras características extra son: ExecCGI , FollowSymLinks, Includes, IncludesNOEXEC, Indexes, MultiViews, SymLinksIfOwnerMatch.
  • 12.
    Configuración de ApacheVirtual Hosts <VirtualHost> </VirtualHost> <VirtualHost> and </VirtualHost> se utilizan para agrupar un conjunto de directivas que se aplicarán solo a un host virtual. Dentro de este par de directivas se pueden incluir cualquier otra que haga refenrencia a este host particular. NameVirtualHost: Especifica la dirección a resolver cuando se utiliza un sistema basado en nombres de host virtuales. ServerName: Especifica el nombre de host que aparecerá en la cabecera de la petición.
  • 13.
    Puesta en Marchade un sitio Web Si se desea colocar un sitio web en un servidor apache se debe: Crear un sitio web, con alguna herramienta(windows/linux) Una vez que se tenga la estructura terminada se la debe colocar en el directorio /var/www/html/ Si se desea que solo exista un solo site dentro de su servidor web.
  • 14.
    Puesta en Marchade un sitio Web Directorios Virtuales Si se desea publicar una carpeta de su sistema de archivos ejm /opt/cursolinux http://localhost/recursos . http://200.9.176.1/recursos http://www.inventiva.com/recursos Redireccion de Directorios Se puede hacer que un directorio del apache se redirija de manera transparente hacia otro servidor externo añadiendo esto a su configuracion Redirect /recurso http://www.fiec.espol.edu.ec
  • 15.
    Directorios Virtuales EjemploDentro de la sección “configuracion principal del servidor” se coloca lo siguiente: Alias /linux/ /opt/cursolinux/ <Directory &quot;/opt/cursolinux/&quot;> Options Indexes Includes FollowSymLinks Order allow,deny Allow from all </Directory> El parametro Indexes indica que se debera mostrar el contenido del directorio FollowSymLinks permite colocar enlaces simbolicos dentro del directorio Includes permite utilizar funciones como autenticacion.
  • 16.
    Acceso a DirectoriosVirtuales Se puede restringir el acceso para que determinados usuarios tengan acceso desde el internet a un recurso determinado. Pasos Para el recurso o directorio a autenticar se debe añadir lo siguiente Options Indexes FollowSymLinks Includes AllowOverride All Se debe crear un fichereo .htaccess definiendo la autenticacion para dicho directorio contra un fichero que contenga claves. El archivo contendra : AuthName &quot;Solo usuarios autorizados&quot; AuthType Basic require valid-user AuthUserFile /cualquier/ruta/hacia/fichero/de/claves
  • 17.
    Acceso a DirectoriosVirtuales ejemplo Generar un directorio que sera visto por cualquier browser: http://localhost/confidencial/ Crear un archivo llamado autentica.conf Alias /confidencial /opt/cursolinux/secretomaximo <Directory &quot;/opt/cursolinux/secretomaximo&quot;> Option Indexes FollowSymLinks Includes AllowOverride All Order allow, deny Allow from all </Directory> Crear el directorio secretomaximo mkdir /opt/cursolinux/secretomaximo
  • 18.
    Acceso a DirectoriosVirtuales ejemplo Crear el archivo /opt/cursolinux/secretomaximo/.htaccess Touch /opt/cursolinux/secretomaximo/.htaccess Editar el fichero .htaccess y añada AuthName &quot;Solo usuarios autorizados&quot; AuthType Basic require valid-user AuthUserFile /var/www/claves Cree el archivo /var/www/claves Touch /var/www/claves htpasswd /var/www/claves fulano Reinicie el servicio httpd