0% encontró este documento útil (0 votos)
32 vistas37 páginas

Configuración de Servidor Apache HTTP

Apuntes ASR de apache.

Cargado por

danielmg012
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
32 vistas37 páginas

Configuración de Servidor Apache HTTP

Apuntes ASR de apache.

Cargado por

danielmg012
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

© Grupo Docente de Redes

[Link] [Link]
© Grupo Docente de Redes Servicio Web
[Link]

 Servidor HTTP libre, open source


 [Link]
 Ejecutable en varios sistemas operativos
 Unix, FreeBSD, Linux, Microsoft Windows ….
 Permite múltiples lenguajes de script
 PHP, Perl, Tcl, Python
 Soporte J2EE  Tomcat
 Permite contenido dinámico
 Virtual hosts
 Un servidor varias IPs y/o nombres de dominio

Prácticas de Servicios en Red 2


© Grupo Docente de Redes Servicio Web
[Link]

 Compuesto por un núcleo y módulos adicionales


 Se pueden crear nuevos módulos con el API de
módulos de Apache
 Añadir o eliminar módulos  Funcionalidad
Servidor a medida
[Link]
 Autenticación
 Soporte SSL

Prácticas de Servicios en Red 3


© Grupo Docente de Redes Servicio Web
[Link]

 Configuración sencilla
 Basada en directivas que se editan en ficheros:
 [Link]

 Configuración principal
 .htaccess
 Cualquier carpeta
 Determinado por AllowOverride
 Categorías de directivas que pueden ser modificadas.

 Prevalece frente a [Link]

Prácticas de Servicios en Red [Link] 4


© Grupo Docente de Redes Servicio Web
[Link]

 conf/[Link]
 Archivo texto con las directivas de configuración
 Bloques de directivas
 Directivas globales
 Directivas en contenedores
 Carpetas  <Directory>
 Hosts virtuales  <VirtualHost>
 Bajo alguna condición  <Location>

Prácticas de Servicios en Red 5


© Grupo Docente de Redes Servicio Web
[Link]

 Directivas globales (por defecto)


 Dirección de instalación del servidor
 ServerRoot "/etc/httpd"
 Puertos y direcciones IP de escucha
 Listen 80 (Formato: Listen <IP>:<Puerto>)
 Carga de módulos
 Include [Link].d/*.conf
 Archivos con LoadModule <módulo> <fichero_módulo>
 Usuario y grupo de la aplicación
 User y Group (apache)
 Conjunto de caracteres  Permitir acentos
 AddDefaultCharset on

Prácticas de Servicios en Red 6


© Grupo Docente de Redes Servicio Web
[Link]

 Configuración Servidor Principal


 Configura respuesta cuando la solicitud no coincide
con ningún servidor virtual
 Opciones por defecto para los servidores virtuales
 Pueden ser modificada en la definición del servidor virtual
 Servidores Virtuales
 Varios sitios web en una sola máquina (servidor
Apache).
 Basados en la dirección IP  IP distinta para cada sitio web
 Basados en el nombre  Dirección IP con múltiples
nombres

Prácticas de Servicios en Red 7


© Grupo Docente de Redes Servicio Web
[Link]

 ServerAdmin <correo>
 ServerName <nombre | IP> :<puerto>
 Si no se especifica lo toma el DNS
 Denegar acceso a los archivos del servidor
<Directory />
AllowOverride none
Require all denied
</Directory>

 DocumentRoot "/var/www/html“
 Carpeta donde están los documentos
 Se pueden usar enlaces simbólicos y alias
 Permite el acceso <Directory /var/www/html>
AllowOverride none
Require all granted
</Directory>
Prácticas de Servicios en Red 8
© Grupo Docente de Redes Servicio Web
[Link]

 DirectoryIndex [Link]
 Cuando no se especifica [Link]
 Incluir otros ficheros de configuración
 Include <path name>
 IncludeOptional conf.d/*.conf
 Previene el acceso a archivos de configuración
.htaccess y .htpasswd
<Files “.ht*”>
Require all denied
</Files

 ErrorLog "logs/error_log"
 LogLevel warn

Prácticas de Servicios en Red 9


© Grupo Docente de Redes Servicio Web
[Link]

 1) Instalar y arrancar Apache


 systemctl start/restart/stop/status httpd
 apachectl graceful
 Recarga si interrumpir conexiones pendientes

 2) Probar a acceder desde un navegador


 Página de prueba del Apache
 2) Configurar
 Nombre  [Link]  Declarar en el DNS
 Puerto de escucha 80 y 8080  Dos Listen 80 y 8080
 Copiar el [Link] del campus

 3) Probar
 [Link]
 [Link]
Prácticas de Servicios en Red 10
© Grupo Docente de Redes Servicio Web
[Link]

 <VirtualHost>: Host virtual


 Se aplica siempre después de las directivas generales
 <IfDefine>: sólo se aplica si al arrancar el servidor existe un
parámetro concreto definido en la línea de comandos de
arranque del apache
 <IfModule>: sólo se aplica si el módulo especificado se encuentra
cargado (mediante LoadModule) en el momento de arrancar el
servidor

Prácticas de Servicios en Red 11


© Grupo Docente de Redes Servicio Web
[Link]

 Varios sitios web en una sola máquina (servidor Apache).


 Basados en la dirección IP  IP distinta para cada sitio web
 Basados en el nombre  Dirección IP con múltiples nombres

 Asignar nombres a cada servidor virtual


 Configurar los servidores virtuales en el [Link]
 Buena praxis un archivo de configuración aparte con un include (carpeta
conf.d)
 Se cargan por orden alfabético
 Heredan configuración del principal

Prácticas de Servicios en Red [Link] 12


© Grupo Docente de Redes Servicio Web
[Link]

 Archivo de configuración
 Contenedor
<VirtualHost IP:Puerto>
……………….
</VirtualHost>
IP, Puerto (IP y Puerto permiten *)
 Personaliza los valores de ServerAdmin, ServerName, DocumentRoot, ErrorLog y
TransferLog o CustomLog
 Se puede colocar casi cualquier otra directiva

Prácticas de Servicios en Red [Link] 13


© Grupo Docente de Redes Servicio Web
[Link]

 Basados en nombre

<VirtualHost *:80>
ServerAdmin webmaster@[Link]
ServerName [Link].
ServerAlias [Link]
DocumentRoot “/var/www/html/r108”
<Directory /var/www/html/r108>
Options -Indexes /* No lista la carpeta si no hay index */
AllowOverride all /* Permite modificar características mediante .htaccess */
Requiere all granted
</Directory>
ErrorLog logs/[Link]
CustomLog logs/[Link] combined
</VirtualHost>

Prácticas de Servicios en Red [Link] 14


© Grupo Docente de Redes Servicio Web
[Link]

<VirtualHost *:80>
ServerAdmin paco@[Link]
ServerName [Link]
DocumentRoot /home/paco/public_html/www
ErrorLog logs/[Link]
CustomLog logs/[Link] combined
<Directory /home/paco/public_html/www>
Options -Indexes /* No lista la carpeta si no hay index */
AllowOverride all /* Permite modificar características mediante .htaccess */
Require all granted
</Directory>
</VirtualHost>
 Hay que crear las carpetas donde se alojan los contenidos
 Añadir un [Link]

Prácticas de Servicios en Red [Link] 15


© Grupo Docente de Redes Servicio Web
[Link]

 Servidor basado en dirección IP


 Varias direcciones IP
Listen 80
<VirtualHost [Link]>
……………
………..
</VirtualHost>

<VirtualHost [Link]>
……………
………..
………..
</VirtualHost>

Prácticas de Servicios en Red [Link] 16


© Grupo Docente de Redes Servicio Web
[Link]

 Servidor basado en Puertos

<VirtualHost [Link]:80>
………..
</VirtualHost>

<VirtualHost [Link]:8080>
………..
</VirtualHost>

Prácticas de Servicios en Red [Link] 17


© Grupo Docente de Redes Servicio Web
[Link]

 Visualización
 Primero condición de la directiva VirtualHost y luego ServerName

 Si hay coincidencia en la cabecera VirtualHost pero no coincide ningún ServerName


muestra el primer Virtualhost que se haya definido.

Prácticas de Servicios en Red [Link] 18


© Grupo Docente de Redes Servicio Web
[Link]

 [Link]
# Load config files in the "/etc/httpd/conf.d"  IncludeOptional conf.d/*.conf
 Crear un archivo por cada sitio virtual
 1) Crear un servidor con las siguientes características
 Archivo se llama [Link]
 Escucha en cualquier IP y Puerto 80  VirtualHost
 Nombre del sitio S1.<dominio>  NameServer (Declarar DNS)
 Donde estan las páginas: /var/www/html/S1  DocumentRoot
 No se permite listar el contenido de la carpeta  Options -Indexes
 Archivos de log en logs/s1  ErrorLog y CustomLog
  Descargar Esqueleto del Campus
  Adaptar el [Link] descargado del campus
 Tener en cuenta que las carpetas que no existan hay que crearlas
 2) Probar a acceder a [Link] ,a [Link], [Link]
 3) Lo mismo que en el 2 pero en el puerto 8080

Prácticas de Servicios en Red [Link] 19


© Grupo Docente de Redes Servicio Web
[Link]

 El acceso a cualquier sitio de nuestro dominio en el puerto 80 nos la misma


página.
 Coincide con una entrada VirtualHost
 Muestra VirtualHost por defecto  El primero en cargar
 Si no coincide con ningún virtual host iría a [Link]
 Cuando accedemos con el Puerto 8080
 1) Crear otro servidor virtual
 Va responder a [Link] en el Puerto 80
 Mismo esqueleto que el S1
 Debe mostrar este sitio cuando sea [Link]
 Debe mostrar este sitio cuando se accede por un nombre que no tenga servidor
virtual en el Puerto 80  Es decir por defecto
 El acceso [Link] nos debe mostrar este sitio
 El acceso a [Link] nos debe mostrar este sitio
 2) El acceso a [Link] debe mostrar el sitio creado en el apartado 1
 3) El acceso a cualquiera de ellos por el 8080 debe mostrar el declarado en
[Link]
Prácticas de Servicios en Red [Link] 20
© Grupo Docente de Redes
[Link] [Link]
© Grupo Docente de Redes Servicio Web
[Link]

 Permisos adecuados para


 Usuario dueño del sitio
 Usuario de apache  Fedora (usuario apache y grupo apache)
 Acceso a las carpetas públicas del sitio web
  Poder leer y mostrar sus contenidos

 Hacer al usuario del sitio miembro del grupo apache


 usermod –a –G apache <usuario>
 chgrp –R apache <carpeta>
 chmod -R 2775 <carpeta>

Prácticas de Servicios en Red 2


© Grupo Docente de Redes Servicio Web
[Link]

• Habilitar el módulo SSL


• yum install mod_ssl openssl

 Configura la carga del módulo  [Link].d/[Link]


 LoadModule ssl_module modules/mod_ssl.so

 Virtual host 443 por defecto  conf.d/[Link]

3
pag 203 manual linux
Prácticas de Servicios en Red
© Grupo Docente de Redes Servicio Web
[Link]

• [Link] (por defecto)


• Crea un servidor virtual en el puerto 443

Listen 443 https


<VirtualHost _default_:443>
ErrorLog logs/ssl_error_log
TransferLog logs/ssl_access_log
LogLevel warn

SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/[Link]
SSLCertificateKeyFile /etc/pki/tls/private/[Link]

#SSLCACertificateFile /etc/pki/tls/certs/[Link]

……………
</VirtualHost>

• No define ServerName, ni DocumentRoot


• Lo hereda del principal
Prácticas de Servicios en Red 4
© Grupo Docente de Redes Servicio Web
[Link]

• Crear certificado autofirmado (o contratarlo)


openssl req -sha256 -x509 -nodes -newkey rsa:4096 -days 360 -out
[Link] -keyout [Link]

Common Name  [Link]

• Mover con permisos 600


[Link]  /etc/pki/tls/certs [Link]  /etc/pki/tls/private

Prácticas de Servicios en Red 5


© Grupo Docente de Redes Servicio Web
[Link]

<VirtualHost *:443>
ServerAdmin webmaster@[Link]
ServerName [Link].
ServerAlias [Link]
DocumentRoot /var/www/html/r108
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/[Link]
SSLCertificateKeyFile /etc/pki/tls/private/[Link]
<Directory /var/www/html/r108>
…………………..
</Directory>
</VirtualHost>

Prácticas de Servicios en Red 6


© Grupo Docente de Redes Servicio Web
[Link]

• Si queremos que siempre conecte siempre cifrado.


Redirección del 80 al 443
Mantenemos ServerName y ServerAlias

<VirtualHost *:80>
ServerName [Link].
Redirect permanent / [Link]

</VirtualHost>

Prácticas de Servicios en Red 7


© Grupo Docente de Redes Servicio Web
[Link]

1) Instalar SSL
2) Probar [Link]
3) Para los servidores virtuales creados en la Tarea III
 Todas las peticiones que se realicen al puerto 80 deben
convertirse en conexiones SSL por el puerto 443
4) Probar [Link]

Prácticas de Servicios en Red [Link] 8


© Grupo Docente de Redes Servicio Web
[Link]

 Alias, AliasMatch
 Otra localización de los documentos en vez de
DocumentRoot.
 Alias "/image" "/ftp/pub/image“
 [Link] ==> /ftp/pub/image/[Link].
 AliasMatch  Expresiones regulares
Alias "/image" "/ftp/pub/image"
<Directory "/ftp/pub/image">
Require all granted
</Directory>
 Opciones
 Indexes  Lista carpetas si no hay [Link]
 DirectoryIndex Pagina que se muestra si no se indica
ninguna
 FollowSymLink  Referencias a enlaces simbólicos

Prácticas de Servicios en Red 9


 Redirect
 Le dice al navegador que la URL que ha solicitado esta en otra URL
 Redirect /buscador [Link]
 Redirect /elsitio [Link]
 A diferencia del Alias hace que el navegador haga otra petición
(ver URL)
 Puede indicar el motivo.
 Por defecto temporal (302)
 Puede ser permanente (301)
 ….
 Redirect permanente /elsitio [Link] ó
 Redirect 301 /elsitio [Link]

[Link]
© Grupo Docente de Redes 10
current/mod/mod_alias.html
[Link]
© Grupo Docente de Redes Servicio Web
[Link]

 Autenticación. Verificar que se es quien se dice ser.


 Autorización. Permiso para estar o tener ciertas información
 Directivas  Cargar los módulos necesarios.
 AuthType  Tipo de autenticación de usuarios para una carpeta
 Basic  Contraseña se transmite en texto claro (usar solo con https)

 Digest  No transmite en texto claro.

 Form  Formularios

 Entre basic y digest lo más seguro es basic con SSL (https)

 AuthBasicProvider AuthDigestProvider  Proveedor autenticación


 Donde esta la información de usuarios
 dbm, file : texto plano dbd: sql ldap
 Require  Autorización

Prácticas de Servicios en Red [Link] 11


© Grupo Docente de Redes Servicio Web
[Link]

 Dos formas de configurar


 En [Link] (p.e <Directory>)
 .htaccess en cada carpeta  Permitirlo en [Link]
 AllowOverride Directivas modificables en .htaccess  AuthConfig en este caso

 Usuarios
 Crear archivo de contraseñas  Lugar no accesible desde la web
 htpasswd –c <ruta archivo> <usuario>
 Servidor pide la contraseña y donde puede acceder
 [Link] o .htaccess
<Directory "/usr/local/apache/htdocs/secret">
AuthType Basic
AuthName "Restricted Files“
# El cliente no pide de nuevo la contraseña si se accede a otra zona con el mismo AuthName
AuthBasicProvider file
# dbm para archivos de acceso rápido. dbmanage y htdbm.  Muchos usuarios
AuthUserFile "/etc/httpd/passwords"
Require user paco
</Directory>

Prácticas de Servicios en Red [Link] 12


© Grupo Docente de Redes Servicio Web
[Link]

 Más de un usuario
 Archivo de grupo  migrupo: paco Isabel Roberto (existen en el archivo de
usuarios)

Cambiar Require user paco por Require group migrupo


AuthGroupFile "/usr/local/apache/passwd/groups“

 Require valid-user  Cualquier usuario del archivo de contraseñas especificado


 Distinto archivo por recurso o grupo de recursos  Similar al grupo

Prácticas de Servicios en Red [Link] 13


© Grupo Docente de Redes Servicio Web
[Link]

 Una forma de realizar cambios en la configuración en


contexto directorio
 Un archivo con directivas en un directorio.
 Estas directivas aplican a ese directorio y todos sus subdirectorios.
 AccessFileName “<nombre>“  .htaccess por defecto

 Misma sintaxis archivo principal


 Lo que puede utilizar en estos ficheros lo determina la
directiva AllowOverride
 ALL , None, AuthConfig, Indexes, Limit, Options, ….
 AllowOverride AuthConfig Indexes
 Se pueden modificar directivas del grupo AuthConfig o Indexes

Prácticas de Servicios en Red [Link] 14


© Grupo Docente de Redes Servicio Web
[Link]

 No recomendable usar si se tiene acceso al [Link]


 Mejor en la sección directory
 Creencia errónea
 Autenticación de usuario
 Las directivas de mod_rewrite (URL y pathname)

 Funcionan mejor en la configuración principal


 Autenticación de usuario
 Directivas mod_rewrite

 Peor rendimiento y seguridad


 Usar cuando el proveedor de contenidos te permite
hacer modificaciones de configuración en contexto
directorio, pero no tienes acceso como root al servidor.
 Cliente de un VirtualHost
Prácticas de Servicios en Red 15
© Grupo Docente de Redes Servicio Web
[Link]

 Ejemplo autenticación
 AuthType Basic
 AuthName "Password Required"
 AuthUserFile "/www/passwords/[Link]"
 AuthGroupFile "/www/passwords/[Link]"
 Require group admins

 AllowOverride AuthConfig habilitado

Prácticas de Servicios en Red 16


© Grupo Docente de Redes Servicio Web
[Link]

 Queremos disponer en el sitio S1 de una


carpeta de descarga, donde el
administrador pueda poner
documentación que puedan ser
descargada por los usuarios registrados.

Prácticas de Servicios en Red 17

También podría gustarte