Recomendaciones de seguridad para PHP y Apache

Poner un servidor Apache/PHP en internet no es solo instalarlo con un simple comando, también requiere hacer algunos ajustes para mantenerlo funcionando al hacer un poco más difícil que algún usuario malintencionado o cracker pueda acceder al servidor. Estas personas por lo general tratan de obtener información sobre las versiones de los servicios instalados y así seleccionar un ataque a alguna vulnerabilidad conocida para la versión que estemos usando. Por desgracia la configuración normal de Apache y PHP muestra mas información de la que debería estar disponible con lo que se está ayudando al enemigo.

asegurar apache y php

Para evitar que Apache y PHP muestren esta información en un servidor Debian vamos a inhabilitar algunas variables y configuraciones para no dar información alguna sobre las versiones de Apache y PHP.

como ocultar versiones apache php seguridad disable parameters security

No mostrar la versión de Apache

La configuración predeterminada del servidor HTTP contiene en la cabecera información de Apache y de la versión de PHP y muestra algo como esto:

Server: Apache/2.2.15 (Debian) PHP/5.3.5

Es muy peligroso permitir que esta información esté visible y que sea utilizada por un atacante al saber la versión específica que estamos usando. Para evitar esto podemos cambiar a Off algunas variables de Apache.

Edita el siguiente archivo y busca las variables que te indico y pon los valores como te muestro.

/etc/apache2/conf.d/security
ServerSignature Off
ServerTokens Prod
TraceEnable off

No mostrar información de PHP

Para evitar que PHP muestre información que puede ser utilizada por un atacante edita este archivo y agrega las funciones que te muestro a la variable «disable_functions» es muy importante que solo las agregues al final las funciones que te indico.

/etc/php5/apache2/php.ini
disable_functions = ,system,show_source,phpinfo/pre>

Luego, en el mismo archivo php.ini busca las siguientes variables de configuración y ponlas a Off

allow_url_fopen=Off
display_errors=Off
expose_php = Off

Por último ve al archivo de configuración del host virtual de tu servidor apache y agrega las siguientes líneas, esto lo debes hacer por cada host virtual que exista en tu servidor y son todos los archivos en el directorio /etc/apache2/sites-available/. Te muestro el ejemplo del host virtual «default»

/etc/apache2/sites-available/default
ServerSignature OffFileETag None

IMPORTANTE: no soy experto en seguridad por lo que estos consejos son encaminados a aportar elementos para evitar un ataque a tu servidor web, en otras palabras hacerle la vida un poco mas difícil a los crackers o algún script kiddie que se tope con el servidor, sin embargo es posible que existan otras configuraciones necesarias para tener un servidor Apache/PHP totalmente seguro.

Espero que esta información sea útil y que ayuda a mantener tu servidor en línea.

Tu Servidor y Amigo

Luis Armando Medina
Sígueme en Twitter: @larmedina

facebook-arrow Haz click en «Me Gusta» y deja un comentario:

This entry was posted in Debian and tagged , , , , , , . Bookmark the permalink.

2 Responses to "Recomendaciones de seguridad para PHP y Apache"

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


*


Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.