Instalación de Apache HTTP Server 2013-07-11

Tutorial de instalación paso a paso de el servidor web Apache HTTP Server en Debian Wheezy

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.

Instalación de Apache HTTP Server

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

Instalar el paquete

Instalar el paquete

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.

It works!


Acerca del autor

Hugo Gilmar Erazo Full Stack Web Developer

Soy un desarrollador web con más de 10 años de experiencia. Me considero fanático de GNU/Linux, lo cual me ha permitido complementar mis conocimientos en el desarrollo web con la administración de servidores.

Aunque manejo todo lo relacionado al Front-End, me inclino más por el desarrollo Back-End. También desarrollo aplicaciones móviles híbridas. Me gusta lo que hago.

Compartir este artículo