Servidor web apache

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    1 Favorite

    Servidor web apache - Presentation Transcript

        • apache
      Dani Gutiérrez Porset [email_address]
    1. Índice
      • Introducción
      • Arquitectura modular. Directivas. Módulos core, MPM, otros módulos básicos
      • Funcionalidades: Negociación de contenidos, Host virtuales, Reescritura de URLs, Proxys, Contenidos dinámicos
      • Seguridad
      • Herramientas
      • Configuración
      • Software
      • Referencias
      • Licencia de uso
    2. Introducción
      • Es una de las “estrellas” del sw libre:
        • El servidor web más usado desde abril-96 (news.netcraft.com)
        • “lAmp”, “wAmp”
      • Usado en:
        • Wikipedia, Wikimedia
        • Google: GWS.
          • http://www.googlerank.com/ranking/Ebook/howgoogleworks.html
    3. Introducción
      • Multiplataforma:
        • Unix, Linux, BSD
        • Windows
        • OS/2
        • ...
      • Ramas de versiones:
        • 1.x (1.3)
        • 2.x (2.2, 2.0): más modular, más portable a otros S.O., threads, IPv6, nueva API
    4. Introducción
      • Desarrollado por la fundación Apache:
        • Otros proyectos:
          • ant: herramienta para hacer builds semejante a make
          • jakarta: software opensource para java
          • lucene: motor de búsqueda
          • tomcat: contenedor de servlets y jsp
          • spamassassin
        • Licencias: v2.0 (compat. GPLv3), v1.1, v1.0. Tradicionalmente permiten distribuir código abierto y cerrado.
    5. Arquitectura modular
      • Compilados (static) o enlazados dinámicamente (shared)
      • Grupos:
        • Core.
        • Módulos multiproceso.
        • Otros (ref http://modules.apache.org ):
          • Propios de apache (más de 70). Ejs: Filtrado (mod_include, mod_ext_filter), Compresión (mod_deflate), Cache (mod_*cache),...
          • “Third-party”. Ejs:
            • Interfaces a lenguajes: php, perl, python (“lAmP/wAmP”), tcl
            • mod_throttle, mod_bandwidth, mod_security,...
    6. Directivas
      • Reglas sintácticas específicadas en los módulos
      • Uso típico de PCRE:
        • Perl-compatible regular expressions.
        • Ref: http://pcre.org/pcre.txt
    7. Directivas
      • Contextos de aplicación:
        • Servidor
        • Host virtual
        • <Directory>, <Location>, <Files>, <Proxy>
        • Ficheros .htaccess. (según AccessFileName):
          • Se analizan en todos los directorios del path de cada documento accedido. Baja el rendimiento.
          • Recomendados sólo para casos de cambios frecuentes que afecten a directorios ej. ISPs
    8. Módulo core
      • Opciones generales:
        • Directorio raíz (/var/www), nombre del servidor, mail de contacto, banner de página
        • Charset, tipos mime (por defecto y forzados)
      • Directivas de contexto:
        • <Directory>, <Location>, <Files>, <Proxy>
        • Ficheros de control (.htaccess)
        • Options
      • Inclusión de otros ficheros
      • Códigos y logs de errores.
    9. Módulo core
      • Del protocolo http: KeepAlive, límites de métodos, de tamaño de peticiones.
      • Límites de CPU, memoria, procesos (CGIs, SSIs). Timeout (normal, keepalive).
      • Tipo de autenticación y control de acceso básico (Require).
      • Host virtuales.
      • Handlers de ficheros.
      • Filtros de E/S.
    10. Módulos multiproceso (MPM)
      • Funciones:
        • Establecer conexiones (ej. directiva Listen)
        • Atender peticiones mediante threads y/o procesos
      • Utilidad: adaptarse a múltiples entornos:
        • Multiplataforma: aprovechar características del S.O. (ej. POSIX, Windows)
        • Necesidades concretas: escalabilidad vs estabilidad. Permiten limitar threads, procesos, peticiones de clientes.
    11. Módulos multiproceso (MPM)
      • No puede haber más de un MPM a la vez en un servidor.
      • Posibilidades según S.O.:
        • Unix:
          • prefork: sin threads (similar a v1.x):
            • Cada petición es atendida por un proceso hijo. Hay algunos ya lanzados (“idle”).
            • Compatible con librerías non-thread-safe. Más seguro: se aíslan más las peticiones
          • worker: con threads. Menos recursos que prefork.
          • event: semejante a worker. Experimental
        • Otros: Beos, Netware, OS/2, Windows
    12. Otros módulos básicos
      • mod_autoindex, mod_dir: índices de directorios.
      • mod_log_config, mod_logio: logs de acceso.
      • mod_setenvif: establece variables de entorno en función de la petición.
      • mod_so: carga de módulos dinámicos.
      • mod_status: da información del servidor.
    13. Negociación de contenidos
      • (Ver protocolo http)
      • Posibilidades:
        • Fichero de mapeo de tipos
        • Opción Multiviews.
      • Criterios:
        • Idioma
        • Parámetro qs (source quality) ej. jpeg / gif
        • Charset
        • Codificación ej. gz
      • Módulos: mod_negotiation, mod_mime
    14. Hosts virtuales
      • Tener varios servidores web en una sola máquina, con un único apache.
      • Modalidades:
        • Basados en nombre: en una IP:puerto hay varios servidores virtuales. Más sencillos
        • Basados en IP. Ej. casos:
          • Uso de SSL con host virtuales.
          • Gestión de ancho de banda
        • Basados en puerto
    15. Hosts virtuales
      • Directivas principales:
        • Listen
        • NameVirtualHost (necesaria si name-based). Mejor emplear una IP en vez de un nombre.
        • <VirtualHost>. Mejor emplear una IP en vez de un nombre.
        • ServerName, ServerAlias, DocumentRoot
      • Módulos:
        • Gestión sencilla: core
        • Gestión avanzada: mod_vhost_alias
    16. Reescritura de URLs
      • Reescribir URLs (a zonas de ficheros, a otras URLs) en base a condiciones:
        • Cabeceras http, peticiones, fecha y hora,...
      • Módulos:
        • Gestión sencilla: mod_alias (directivas Alias..., Redirect..., ScriptAlias...), mod_userdir
        • Gestión avanzada: mod_rewrite
    17. Proxys
      • Posibilidades:
        • Proxys directo e inverso
        • Cadena de proxys remotos
        • Bloqueo a algunas direcciones
      • Módulos:
        • mod_proxy
        • Según el protocolo: mod_proxy_http, mod_proxy_ftp,...
    18. Contenidos dinámicos
      • cgi (mod_cgi) / scgi / fast cgi.
        • El cgi recibe:
          • Variables de entorno (mod_env)
          • La petición: http:...?campo1=valor1&campo2=... según el método:
            • GET: en la variable QUERY_STRING
            • POST: en stdin. Longitud en variable CONTENT_LENGTH
        • Página de respuesta: a través de stdout
        • Utilidad: librería libcgi para cada lenguaje
      • ssi (mod_include)
      • php, servlets, jsp, asp, asp.net, server api (nsapi, isapi),...
    19. Seguridad
      • Módulos según las 2 fases:
        • Autenticación: determinar quién se conecta.
          • Tipo de autenticación (mod_auth_...): (según el protocolo http) basic, digest
          • Proveedor de autenticación (mod_authn_,...): fichero, base de datos (sql, dbm), ldap, anónimo
        • Autorización (mod_authz_...): determinar si el usuario, autenticado o anónimo, está autorizado o no a acceder a un recurso concreto.
          • Ejs. que pertenezca a una lista de usuarios, a un grupo, que sea el propietario
    20. Seguridad
      • Control de acceso: determinar si es posible el acceso en base a condiciones ej. equipo cliente, hora,...
        • Módulos:
          • mod_authz_host:
            • Restricción según IP/nombre del cliente, características de la petición (variables de entorno con mod_setenv_if)
            • Importante: hace tres pasadas según la directiva Order.
          • mod_rewrite, ej. según la hora
    21. Seguridad
      • Protocolo ssl/tls: mod_ssl
        • Funcionalidades:
          • Autenticación de servidor. Requiere como mínimo indicar un certificado y una clave privada
          • Autenticación de clientes.
          • Uso de proxy reenviando peticiones a servidor ssl
        • Todos los formatos son PEM
        • Virtual hosts: Cada servidor virtual https se corresponde con una ip y un puerto. Por tanto no puede emplearse virtual hosts basados en nombre.
    22. Herramientas
      • [del paquete apache2-utils]
      • Autenticación de usuarios:
        • DBM: dbmmanage, htdbm
        • Ficheros: htpasswd (basic), htdigest (digest)
      • Apache benchmarking: ab
      • Ficheros de log:
        • logresolve: resolución de nombres de IPs
        • rotatelogs: rotación
        • check_forensic: análisis forense
      • Otros (htcacheclean, checkgid)
    23. Configuración
      • [lo indicado aquí aplica a la versión 2]
      • Tipos de ficheros:
        • Ficheros de configuración
        • Módulos
        • Ficheros .htaccess (directiva AccessFileName)
        • Fichero de tipos MIME (directiva TypesConfig)
    24. Configuración
      • Ficheros de configuración
        • apache2.conf: es el principal.
        • Otros ficheros leídos con directiva Include:
          • ports.conf: puertos de escucha (puede escuchar por más de uno)
          • httpd.conf: por compatibilidad con versiones anteriores de apache
          • conf.d/: otros ficheros de configuración
          • mods-enabled/: módulos habilitados. Son softlinks a módulos disponibles (mods-available/*)
          • sites-enabled/: sitios habilitados. Son softlinks a sitios disponibles (sites-available/*)
    25. Software (paquetes ubuntu)
      • apt-cache search apache| grep -i apache
        • Autenticación/Autorización: mysql, postgresql, radius, shadow, pam, ldap, kerberos, webauth,...
        • Lenguajes: php, perl, python, Tomcat servlets, asp, mono, ruby, fast cgi, scgi
        • Herramientas:
          • Monitorización y benchmarking, Gestión de logs.
          • Seguridad, ej. limitación de conexiones y/o tráfico, chroot, filtrado avanzado, DNSBL, Oasis saml, AppArmor,...
        • Extensiones: FrontPage, streaming, macros, virtual hosts, xml, xslt, GeoIP, bittorrent,...
        • Plataformas externas, ej. Subversion, request-tracker, gforge, sope,...
        • Librerías: libapr1 (apache portable runtime library), libapreq2 (apache request library)
    26. Referencias
      • Principales:
        • http://httpd.apache.org
        • http://httpd.apache.org/docs/2.2/
      • Refs. seguridad:
        • http://httpd.apache.org/docs/2.2/misc/security_tips.html
        • http://www.modsecurity.org/
        • http://www.slideshare.net/abhishek_singh/web-intrusion-detection
        • http://www.slideshare.net/ozh/apache-and-php-security
        • http://gallir.wordpress.com/2008/03/16/protegete-de-los-bots-agresivos/
      • Refs. rendimiento:
        • http://httpd.apache.org/docs/2.2/misc/perf-tuning.html
        • http://highscalability.com/tags/apache
        • http://www.ibm.com/developerworks/linux/library/l-tune-lamp-1/
        • http://www.xtec.net/~acastan/textos/Tuning%20LAMP.pdf
        • http://www.slideshare.net/loretahur/escalabilidad-apache-y-mysql/
    27. Licencia de uso
        • http://creativecommons.org/licenses/by-sa/3.0/

    + danitxudanitxu, 2 years ago

    custom

    1626 views, 1 favs, 3 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 1626
      • 1617 on SlideShare
      • 9 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 109
    Most viewed embeds
    • 7 views on http://asiabdera.wordpress.com
    • 1 views on http://linuxlosangeles.wordpress.com
    • 1 views on http://javiergalicia.wordpress.com

    more

    All embeds
    • 7 views on http://asiabdera.wordpress.com
    • 1 views on http://linuxlosangeles.wordpress.com
    • 1 views on http://javiergalicia.wordpress.com

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories