En este nanotutorial vamos a aprender a instalar el servidor web Apache HTTP Server, así como algunos aspectos de seguridad que debemos tener en cuenta.
Apache HTTP Server es uno de los servidores web favoritos por la comunidad Linux, su rendimiento y múltiples características hacen de Apache el mejor y más utilizado servidor web en el mundo.
Hay algunas configuraciones importantes que realizar antes de poder publicar una página html. Por defecto hay muchas características que no vamos a necesitar por lo cual nos tomaremos la tarea de deshabilitar algunas de ellas.
Su instalación es sencilla, así como la configuración en sus ultimas versiones. Vamos entonces con la instalación.
Actualizar la paqueteria
Abre una terminal y corre el siguiente comando:
sudo apt-get update
Instalar el paquete
En una terminal ejecuta el siguiente comando. No olvides de confirmar con la letra “Y”.
sudo apt-get install apache2
Server Name
Vamos a utilizar el editor nano para modificar el archivo apache2.conf, para eso ejecuta el siguiente comando.
sudo nano /etc/apache2/apache2.conf
A este archivo vamos a añadir la siguiente línea:
ServerName localhost:80
Si no conoces este editor, te invitamos a conocerlo en este nanotutorial
Deshabilitar el listado de directorios
Esta es una medida de seguridad, por defecto este servidor trae esta característica habilitada.
Para deshabilitarlo vamos a editar el siguiente el archivo default dentro del directorio /etc/apache2/sites-available/
sudo nano /etc/apache2/sites-available/default
Modificaremos la línea:
<Directory /var/www/> Options Indexes FollowSymLinks MultiViews
Por:
<Directory /var/www/> Options FollowSymLinks MultiViews
Deshabilitar los alias de scripts
Borraremos la línea:
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
También el siguiente bloque completo:
<Directory "/usr/lib/cgi-bin"> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all </Directory>
Al final el archivo debe lucir así:
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Deshabilitar los alias por defecto
Vamos a modificar el archivo alias.conf dentro del directorio /etc/apache2/mods-available/
sudo nano /etc/apache2/mods-available/alias.conf
Comentaremos las siguientes líneas:
#Alias /icons/ "/usr/share/apache2/icons/" #<Directory "/usr/share/apache2/icons"> # Options FollowSymlinks # AllowOverride None # Order allow,deny # Allow from all #</Directory>
Configuraciones de seguridad
Vamos a editar el archivo security dentro del directorio /etc/apache2/conf.d/.
Cambiaremos el parámetro ServerTokens a Prod
ServerTokens Prod
Así también ServerSignature a off
ServerSignature off
Lo que acabamos de hacer es esconder de los visitantes las versiones de software que estamos utilizando en nuestro servidor web, esta información aparece cuando hay un error en un script, un archivo no existente así como en todas las respuestas a través de los headers http.
Esta práctica es realizada por los hackers quienes utilizan las versiones del software encontrado para detectar vulnerabilidades en las mismas y explotarlas.
Reiniciamos el servicio
Para que las configuraciones sean aplicadas necesitamos reiniciar el servicio de Apache HTTP Server con el comando:
sudo service apache2 restart
It works!
En tu navegador visita la url http://localhost, y si ves esta página es que tu servidor Apache HTTP Server está configurado y corriendo.