Skip to main content
Entorno LAMP

Instalación segura LAMP (Linux, Apache, MySQL, PHP) Debian

Un sistema LAMP es el conjunto de herramientas necesarias para crear un servidor web.

Hola a todos en un nuevo post, en el caso de hoy les vamos a enseñar como instalar un entorno LAMP sobre una máquina Debian haciendo hincapié en la seguridad.

 

¿Qué es LAMP?

Se denomina LAMP a un conjunto de software de código libre que se instala normalmente en conjunto para habilitar un servidor con la capacidad de alojar sitios y aplicaciones web dinámicas. Este término en verdad es un acrónimo que representa un sistema operativo Linux con un servidor Apache. Los datos son almacenados en base de datos MySQL y el contenido dinámico es procesado por PHP.

Para la instalación del entorno, necesitaremos un usuario con permisos de sudo para poder realizar las modificaciones necesarias para una instalación segura.

 

Instalación de Apache

Actualmente apache, es el servidor web más popular. Consta de una buena documentación y ha sido ampliamente utilizado en el mundo de internet, lo que hace que sea una opción por defecto a la hora de montar un sitio web.

Podemos instalar Apache, fácilmente desde el gestor de paquetes de la distribución que utilicemos, instalaremos en este caso la versión 2.4. Para ello lanzaremos los siguientes comandos

 

Una vez instalado, pasamos a definir las rutas importantes dentro de nuestra instalación de Apache 2.4.

Para el caso de Debian (y distribuciones basadas en el mismo), nos encontraremos con la siguiente estructura:

  • /etc/apache2/ -> Será la ruta principal donde estará nuestra configuración de apache
    • apache2.conf -> fichero por defecto con la configuración global de apache
    • ports.conf -> en este fichero se especifican los puertos permitidos para el acceso a nuestro servidor apache
    • sites-enabled/ -> en esta ruta se guardarán enlaces simbólicos a las aplicaciones que actualmente están operando bajo nuestro apache
    • sites-available/ -> en esta carpeta se guardarán los ficheros .conf de las aplicaciones que corran bajo apache
    • conf-enabled/ -> en esta carpeta se guardarán las configuraciones personalizadas activadas de nuestro apache
    • conf-available/ -> en esta carpeta se guardarán las configuraciones personalizadas disponibles de nuestro apache
    • mods-enabled/ -> en esta carpeta se guardarán los módulos activados para nuestro apache
    • mods-available/ -> en esta carpeta se guardarán los módulos disponibles de nuestro apache
    • envvars -> en este fichero se guardarán las variables específicas para nuestro servidor apache
    • magic -> este fichero contiene instrucciones necesarias para saber el tipo de archivo que es subido al servidor

 

Una vez explicado, comprobaremos si nuestro servidor funciona, para ello accedemos al navegador a la dirección ip de localhost, es decir, http://127.0.0.1 y, debería darnos un resultado como el siguiente:

Instalación segura LAMP (Linux, Apache, MySQL, PHP) en Debian

 

Para configurar un servidor propio, copiaremos el fichero 000-default.conf en nuestro fichero y editaremos las opciones necesarias del mismo. Este sería un ejemplo de dicho fichero

 

En el cual, pasamos a explicar las diferentes directivas utilizadas:

Directiva Concepto
ServerName En esta directiva especificaremos nuestra dirección del servidor, a través de DNS o de ip
ServerAdmin Dirección de correo del administrador del sitio
DocumentRoot Ruta raíz del sitio
DirectoryIndex

Fichero que por defecto cargará apache al acceder al servidor

Directory Las directivas incluidas en una sección <Directory> se aplican al directorio del sistema de ficheros especificado y a sus subdirectorios
Options Por defecto la directiva Directory, permite el seguimiento de enlaces simbólicos , utilizaremos esta directiva para permitir o no este seguimiento, así como otras funcionalidades que podemos ver en la documentación de apache.
AllowOverride Con esta directiva especificamos si queremos utilizar un fichero .htaccess para nuestro site
ErrorLog Especificamos la ruta donde se guardarán nuestro ficheros de log
CustomLog Especificaremos la ruta donde se guardaran nuestro ficheros de log personalizados

 

Una vez terminemos de editar nuestro fichero de configuración, podemos comprobar que la sintaxis es correcta a través del comando

Si no especificamos un ServerName, nos mostrará un error del mismo pero, no nos dará un error cuando reiniciemos el servicio. En cambio podemos evitar este error añadiendo el nombre de dominio o dirección IP de nuestro site en dicha directiva.

Si queremos incluir la dirección privada de nuestra máquina, podemos realizarlo con iproute con el siguiente comando

Y si queremos obtener la dirección pública podemos hacerlo con curl. En caso de no tenerlo instalado, lo haríamos con el siguiente comando

Y obtendríamos la ip con el siguiente comando

 

Una vez lo tenemos instalado podemos asegurar nuestra instalación con alguna de las directivas incluidas en el post de seguridad en un entorno LAMP en el siguiente enlace.

 

Instalación de MySQL

Una vez instalado y configurado nuestro servidor, es el momento de instalar un gestor de bases de datos. Para cumplir con nuestro entorno LAMP, instalaremos MySQL.

MySQL es un sistema gestor de bases de datos que se encarga de organizar y facilitar el acceso a la información.

Para instalarlo lanzaríamos el siguiente comando

 

Instalando así nuestro servidor y nuestro cliente de bases de datos. Si queremos asegurar nuestra instalación MySQL, podemos hacerlo lanzando el siguiente comando

Nos preguntará por varias acciones a realizar para asegurar nuestro sistema, por ejemplo el uso de contraseñas robustas, denegar accesos, etc.

Una vez lo tenemos instalado podemos asegurar nuestra instalación con alguna de las directivas incluidas en el post de seguridad en un entorno LAMP en el siguiente enlace.

 

Instalación de PHP

PHP será el componente de nuestro entorno encargado de procesar el código para mostrar contenido dinámico. También será quien se conectará a la base de datos para obtener o guardar la información y entregar el contenido procesado a nuestro servidor web para mostrarlo en el navegador del usuario.

Instalaremos PHP en nuestro servidor apache con el siguiente comando

 

Una vez instalado, tenemos que probar que funciona correctamente. Para ello iremos al fichero de configuración de nuestro servidor y añadiremos la directiva DirectoryIndex y colocaremos como primer valor el fichero index.php, el cual utilizaremos para nuestra prueba.

Editamos el fichero .conf de nuestro servidor y añadiremos la siguiente directiva

Si tenemos el módulo mod_dir.c (por defecto está instalado) nos cargará como primer fichero el llamado index.php y si no lo encuentra cargará el siguiente fichero indicado.

Ahora iremos a la ruta de nuestro servidor, (por defecto /var/www/html) y crearemos un fichero con el siguiente comando

Reiniciaremos el servicio de Apache y cargaremos la dirección de nuestro host, en nuestro caso http://127.0.0.1

Para reiniciar el servicio de Apache lanzaremos el siguiente comando

Y nos mostrará una pantalla como la siguiente

Instalación segura LAMP (Linux, Apache, MySQL, PHP) en Debian

 

Conclusión

Ahora ya tenemos instalado nuestro entorno LAMP. Ya tenemos todo lo necesario para montar nuestra web. Ahora deberás de preocuparte de hacer que tu servidor sea seguro ante posibles ataques. Si quieres puedes ver el siguiente post donde explico varios consejos con los que asegurar tu entorno.

 

Gracias por leernos y nos vemos en el siguiente post, como siempre comenten sus opiniones, dudas, etc…

 

Deja un comentario

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