Actualizado el 4 de Noviembre del 2020 (Publicado el 25 de Noviembre del 2017)
1.350 visualizaciones desde el 25 de Noviembre del 2017
743,8 KB
15 paginas
Creado hace 13a (27/03/2012)
SERVIDOR WEB APACHE
SERVIDOR WEB HTTP APACHE
Un servidor HTTP es el programa que atiende las peticiones de los clientes Web y proporciona las páginas solicitadas. Utiliza de forma general
el puerto 80 TCP para atender las peticiones de los clientes, aunque también puede atender peticiones a través del puerto 443 TCP utilizado
para conexiones seguras
Apache es un servidor HTTP de código libre, que funciona en GNU/Linux, Windows y otras plataformas. Ha desempeñado un papel muy
importante en el crecimiento de la red mundial, y continua siendo el servidor HTTP más utilizado. Apache es desarrollado y mantenido por una
comunidad de desarrolladores auspiciada por Apache Software Foundation
Instalación
Para instalar apache desde los repositorios sudo apt-get install apache2 o sudo apt-get install apache2-mpm-prefork
Inicio, parada y reinicio del servicio apache
sudo service apache2 start | stop | restart
Archivos y directorios de configuración
Todos los archivos de configuración se encuentran en el directorio /etc/apache2
Archivo principal de configuración
Directivas de configuración que indican puertos y direcciones IP donde apache escucha peticiones
Contiene archivos de configuración asociados a módulos específicos
Los archivos de este directorio son incluidos mediante la directiva Include /etc/apache2/conf.d
apache2.conf
ports.conf
conf.d/
mods-available/ Directorio que contiene los archivos de los diferentes módulos que puede utilizar apache
mods-enabled/
site-available/
site-enabled/
/var/www/
Directorio que contiene los módulos activos de apache
Directorio que contiene los archivos de configuración de los diferentes hosts virtuales (sitios)
Directorio que contiene los hosts virtuales activos
Directorio por defecto para alojar las páginas Web
El archivo de configuración /etc/apache2/apache2.conf está dividido en tres secciones, configuración global, configuración general del servidor
y configuración de los servidores virtuales. Como en todos los archivos de configuración de GNU/Linux el símbolo # indica un comentario y no
será tenido en cuenta
SERVIDOR WEB APACHE
CONFIGURACIÓN GLOBAL
Estas directivas especifican el funcionamiento del servidor Web, indicando el directorio de los ficheros de configuración, el modo de
funcionamiento del servidor, etc. Las entradas básicas son
ENTRADAS
ServerRoot
TimeOut
KeepAlive
MaxKeepAliveRequest
KeepAliveTimeout
<IfModule mpm_prefork_module>
…
</IfModule>
<IfModule mpm_worker_module>
…
</IfModule>
Listen
Include
User
Group
DESCRIPCIÓN
VALOR POR DEFECTO
Indica el directorio raíz donde se encuentran los ficheros de configuración,
error y logs
En esta entrada NO puede añadirse el carácter / al final del mismo
Tiempo en segundos que espera el servidor entre la realización de una
conexión y el envío de la petición de la página Web mediante GET, el envío
de la información mediante POST o la recepción de ACKs de los paquetes de
datos enviados
Indica el modo de funcionamiento del servidor en el intercambio de
peticiones y envíos con los clientes
Un valor Off indica que el funcionamiento será HTTP/1.0, esto es, cada
petición de una página necesita una conexión TCP nueva y las entradas
MaxKeepAliveRequest y KeepAliveTimeout serán ignoradas
Un valor On indica que el funcionamiento será HTTP/1.1, por lo que múltiples
peticiones serán enviadas a través de una misma conexión TCP
Número máximo de peticiones por conexión
0 indica ilimitadas
Segundos en espera entre peticiones antes de cerrar una conexión
Indican el modo de ejecución del servidor y las características del mismo
En el modo prefork un proceso padre lanza procesos hijo para que estos
atiendan las peticiones de páginas Web recibidas, procurando que siempre
existan algunos procesos hijo
Es el modo de ejecución por defecto de apache
Indican el modo de ejecución del servidor y las características del mismo
En el modo worker, el proceso padre lanza procesos hijos, los cuales a su vez
ejecutan hilos, permaneciendo uno de ellos a la escucha de peticiones y el
resto atendiendo a las mismas
Indica la dirección IP y puerto en el que el servidor Web escucha peticiones
Si no se indica ninguna dirección IP o se indica con el símbolo * el servidor
Web escuchará las peticiones de todas las interfaces de red existentes
Pueden utilizarse múltiples directivas Listen para indicar diferentes puertos e
interfaces de red
Esta entrada se encuentra en el archivo /etc/apache2/ports.conf
Entrada que indica la ruta a diferentes ficheros de configuración que apache
cargará al iniciarse
Usuario con el que se ejecutará apache
Grupo con el que se ejecutará apache
/etc/apache2
300
On
100
15
-
-
80
443
conf.d/
sites-enabled/
mod-enabled/
ports.conf
www-data
www-data
SERVIDOR WEB APACHE
CONFIGURACIÓN GENERAL DEL SERVIDOR
Estas directivas definen el comportamiento del servidor por defecto y de todos los servidores virtuales excepto en los que se definan otras
opciones
NOTA En DEBIAN/UBUNTU, las entradas ServerTokens, ServerSignature y las opciones de control de acceso sobre el directorio principal
<Directory />…</Directory> se encuentran en el archivo /etc/apache2/conf.d/security
ENTRADAS
ServerAdmin
ServerName
UseCanonicalName
DocumentRoot
<Directory />
…
</Directory>
<Directory /var/www>
…
</Directory>
DirectoryIndex
AccessFileName
<Files ~ “^\.ht”>
…
</Files>
HostnameLookups
ErrorLog
LogLevel
LogFormat
CustomLog
ServerSignature
ServerTokens
Alias
ScriptAlias
AddDefaultCharset
DESCRIPCIÓN
Dirección de correo del administrador del servidor
Indica el nombre y puerto con el que el servidor se identificará ante las
peticiones que se realicen
Si no se indica el nombre, este se obtiene mediante consulta inversa
DNS
Si no se especifica el puerto se utilizará el puerto por el que se recibió
la petición
Con valor Off Indica si se responde siempre con el nombre y puerto
por el que se recibió la petición
Con valor On indica que se responderá con el nombre y puerto
especificado en la entrada ServerName
Indica el directorio a partir del cual se encuentran las páginas Web del
servidor
Indican opciones de control de acceso sobre las páginas Web
Indican opciones de control de acceso sobre las páginas Web
Indica los nombres y orden de las páginas por defecto que apache
buscará si en la petición de un cliente no se especifica
Indica el nombre del fichero que controla el acceso a determinados
directorios
Indica las reglas para evitar que el fichero especificado con la entrada
AccessFileName pueda ser accedido por un cliente Web
Indica si se almacenará en los ficheros logs el nombre del cliente On o
su dirección IP Off
Indica donde se almacenarán los mensajes de error del servidor Web
Indica el nivel de detalle de los mensajes de error
Los niveles de mayor a menor detalle son emerg, alert, crit, error,
warn notice, info y debug
Establecer un nivel implica que también se almacenaran en el log de
errores los mensajes de los niveles superiores
Indica que información, como se guardará y como se llamarán en los
ficheros logs de acceso del sistema
Indica donde se almacenarán los mensajes de acceso al sistema
El valor On indica que apache añadirá el nombre y versión del servidor
indicado en la entrada ServerName al final de cualquier documento de
error generado
El valor Off no añadirá el nombre y versión del servidor
El valor EMail envía una línea de código HTML mailto:ServerAdmin
En DEBIAN/UBUNTU esta directiva se encuentra en el fichero
/etc/apache2/conf.d/security
Indica la información que da apache sobre sí mismo a los clientes en
las peticiones
Los valores de mayor a menor información son Full, OS, Minimal,
Minor, Major y Prod
En DEBIAN/UBUNTU esta directiva se encuentra en el fichero
/etc/apache2/conf.d/security
Indica un camino distinto al camino por defecto para un recurso al que
debe acceder el servidor
Igual que la directiva Alias pero sirve para especificar que el contenido
serán scripts CGI
Indica el conjunto de caracteres por defecto a utilizar
VALOR POR DEFECTO
webmaster@localhost
En distribuciones DEBIAN/UBUNTU no
existe esta directiva y apache lanzará un
error la primera vez que se ejecute, por
tanto la indicaremos de forma
ServerName 127.0.0.1
-
/var/www
-
-
-
.htaccess
-
Off
/var/log/apache2/error.log
warn
-
/var/log/apache2/other_vhosts_access.log
On
OS
-
-
UTF-8
SERVIDOR WEB APACHE
Paso a paso. Configuración básica para evitar Fingerprinting
NOTA Fingerprinting es una técnica que permite identificar las características, versión, SO, etc… de un servidor desde el exterior
Ejemplos de Fingerprinting
Intentando acceder a un recurso que no existe
Intentando acceder a un recurso del servidor
1. Editar el archivo de configuración /etc/apache2/conf.d/security
#ARCHIVO SECURITY
#/ETC/APACHE2/CONF.D/SECURITY
ServerTokens Prod
ServerSignature Off
2. Reiniciar apache y comprobar que ahora no se muestra ninguna información relativa al propio servidor
Paso a paso. Gestión de módulos en apache. Configuración del módulo status para acceder desde la dirección IP 192.168.1.XX y habilitación
del módulo info
Comandos
a2enmod módulo
a2dismod módulo
Habilita el módulo indicado
Deshabilita el módulo indicado
Directorios
/etc/apache2/mods-available
/etc/apache2/mods-enables
Archivos de configuración de los módulos
módulos habilitados por apache
El módulo status, que viene activado en la propia instalación de apache, nos permite averiguar de forma remota, sólo a usuari
Comentarios de: apuntes apache (0)
No hay comentarios