Cómo ocultar información de nuestro servidor Apache
Por defecto, el servidor Apache2 al cargar páginas de error como “404 no encontrado” o “403 acceso prohibido” muestra información que puede ser relevante para un atacante. Por ejemplo, muestra la versión de Apache y del sistema operativo. Además cuando sirve páginas PHP, revela la versión de PHP usada. Para aprender a ocultar información sensible mostrada por el servidor Apache en los sistemas operativos Debian/Ubuntu y CentOS, sigue este tip que te muestro.
Desactivando las firmas del servidor Apache
La desactivación de las firmas del servidor Apache se puede realizar a través del archivo de configuración principal.

Firmas servidor Apache
Para Debian y derivados usa el comando:
1 |
$ sudo nano /etc/apache2/apache2.conf |
Para CentOS:
1 |
$ sudo vim /etc/httpd/conf/httpd.conf |
Luego debemos agregar las siguientes líneas al final del archivo en cuestión:
1 2 |
ServerSignature Off ServerTokens Prod |
La línea “ServerSignature Off” oculta la versión de Apache en cualquier página de error. Por su parte, la línea “ServerTokens Prod” garantiza que no se muestre dicha información en las cabeceras de respuesta HTTP.
Finalmente debes reiniciar el servicio web. Para Debian y derivados, puedes hacerlo así:
1 |
$ sudo systemctl restart apache2 |
Para Centos y derivados:
1 |
$ sudo systemctl restart httpd |
Ahora si pedimos una página de error, no se mostrará información relevante sobre nuestro servidor Apache:

Firmas ocultas de servidor Apache2
Ocultando la versión de PHP
Otra amenaza de seguridad potencial es cuando se muestra la versión de PHP que corre nuestro servidor web. Por defecto, Apache incluye la versión de PHP a través del campo “X-Powered-By” en las cabeceras de respuesta HTTP. Para ocultar esta información, debemos editar el archivo de configuración de PHP (php.ini) y cambiar la línea “expose_php = On” por “expose_php = Off”.
Emplea el siguiente comando para Debian y derivados:
1 |
$ sudo nano /etc/php5/apache2/php.ini |
En el caso de Ubuntu 16.04 LTS usa:
1 |
$ sudo nano /etc/php/7.0/apache2/php.ini |
Para CentOS:
1 |
$ sudo vim /etc/php.ini |
Finalmente reinicia el servicio web. Para Debian y derivados:
1 |
$ sudo systemctl restart apache2 |
Para CentOS:
1 |
$ sudo systemctl restart httpd |
Ya sabes cómo ocultar información sensible sobre nuestro servidor web en los sistemas operativos Debian/Ubuntu y CentOS. Esto es verdaderamente útil y necesario para protegernos de posibles ataques que comprometen la seguridad de nuestro sistema.
Muy buena la información. Justo lo que estaba buscando.
En mi caso el expose_php ya lo tenía en Off, Pero lo del apache2.conf es lo que necesitaba.
Un saludo.