Curso de Instalación, configuración y despliegue seguro bajo Nginx

BackEnd

Aprende paso a paso a realizar el despliegue seguro de aplicaciones web PHP bajo Nginx

Intermedio Corto (hasta 8 horas) Precio en promoción 85€ 69€

En este curso se explica de una manera práctica todo el proceso de despliegue de aplicaciones PHP en servidores instalados por nosotros mismos. Se realizará el proceso de configuración comenzando desde cero, de modo que el estudiante aprenda a crear sus propios servidores y personalizarlos paso a paso, para alojar cualquier tipo de aplicación o servicio web basado en PHP.

Comenzaremos realizando la contratación de un servidor, escogiendo su sistema operativo y configurando los accesos seguros para SSH. Posteriormente realizaremos la instalación y configuración de todos los programas y recursos necesarios para el funcionamiento de aplicaciones PHP, como el servidor web, las bases de datos, los certificados SSL, frameworks, etc. Para acabar realizando un checklist de seguridad y el despliegue final de diversas aplicaciones, en un entorno absolutamente profesional.

Como referencia rápida, el stack de las herramientas principales que usaremos durante el curso es el siguiente:

Sistema operativo Linux (Ubuntu 18.04)

๏ Servidor web Nginx

๏ PHP 7.2 o superior

๏ Base de datos MySQL / MariaDB

๏ Certificado de Let's Encrypt

๏ Laravel 5.8 y WordPress

El proceso de creación del servidor se realizará con un VPS o servidor Cloud en un proveedor concreto, sin embargo, el conocimiento se puede aplicar a cualquier proveedor de Internet, así como a distintos tipos de servidores, virtuales o dedicados.

Qué aprenderás en el curso de Instalación y despliegue de aplicaciones seguras bajo Nginx

- Creación de un servidor en la nube con Digital Ocean (Aunque la información vale para cualquier otra empresa de alojamiento VPS, dedicados o cloud computing)

- Configuración y mantenimiento de un servidor Linux, con Ubuntu 18.04

- Acceso por SSH a servidores, con llaves SSH y la máxima seguridad

- Comandos de Linux para trabajo con servidores Instalación del servidor web Nginx

- Configuración de Nginx para múltiples dominios

- Despliegue de bases de datos MySQL y MariaDB, en entorno seguro

- Configurar y usar Git para el despliegue rápido y sencillo de aplicaciones

- Obtener paquetes de sistema e instalar de manera global, Composer, Let's Encrypt, Acme.sh, firewall…

- Gestionar, de manera segura, usuarios y permisos en carpetas del servidor

- Desplegar aplicaciones WordPress y Laravel de manera correcta, en dominios independientes, dentro del mismo servidor

- Configuración del firewall UFW

- Soluciones para mitigar problemas de seguridad y ataques diversos, como Dos, DDos, Ataques por fuerza bruta, CSS/XSS, etc.

- Obtener múltiples certificados de seguridad, uno por proyecto, para ofrecer acceso a la web vía HTTPS, con la calificación de seguridad A+.

- Configuraciones para optimización de rendimiento.

Por qué hacer el curso de creación de servidor seguro con Nginx

Este curso te permitirá ser totalmente autónomo para la creación de servidores donde alojar tus proyectos o los de tus clientes. Gracias a disponer de tu propio servidor, serás capaz de instalar cualquier número de proyectos en una misma máquina, sobre cualquier número de dominios, sin tener ningún cargo extra. Además, en el curso se explicarán todas las configuraciones que afectan a la seguridad, aplicando diversas medidas para que los proyectos se encuentren en un entorno muy confiable y, por supuesto, cómo mantener los sistemas para que siempre gocen de buena salud.

Al terminar el curso podrás desplegar de manera correcta aplicaciones web basadas en PHP y MySQL y habrás tenido oportunidad de realizar prácticas con varios proyectos, que usan dos de las tecnologías de desarrollo más habituales: el popular CMS WordPress y el framework Laravel. Por tanto, es un curso excelente para cualquier profesional que trabaje con estas herramientas y desee ir un paso más allá, creando las mejores condiciones para su despliegue en el servidor de producción. Durante el curso realizaremos el despliegue de 4 proyectos diferentes, basados en Wordpress y Laravel, cada uno de ellos dentro de su propio dominio o subdominio. Por supuesto, los conocimientos aprendidos te facilitarán también el despliegue de aplicaciones basadas en otros frameworks como Symfony o CMS como Drupal, Joomla, etc.

 Usaremos la versión LTS (soporte a largo término) más reciente de Ubuntu: Ubuntu 18.04 LTS. Gracias a ello podrás mantener actualizado y seguro tu sistema por mucho tiempo.

 No encontrarás otro curso online que explique paso a paso y de manera tan clara todo el proceso para crear tus propios servidores seguros y a usar Let's Encrypt de modo correcto y sencillo. Te resultará especialmente útil porque se usan los mejores estándares para obtener la calificación más alta de seguridad (A+).

 Aprenderás también algo tan importante hoy como es la creación de servidores que permiten conexiones seguras, con HTTPS, imprescindible para mejorar la experiencia de usuario y el posicionamiento. Siguiendo este curso podrás asegurar todos tus sistemas de forma gratuita en Nginx, gracias a Let's Encrypt.

 Aprenderás a desplegar proyectos con herramientas muy extendidas en la comunidad en PHP: Wordpress y Laravel.

Índice de contenidos del curso:

1. Preparación del entorno y el VPS

    1.1. ¿Por qué un VPS?

    1.2. Creando una cuenta en un proveedor de VPS

    1.3. Activar comandos Linux en Windows con Git y CYGWIN

    1.4. Generación de llaves SSH para el acceso al servidor de forma segura

    1.5. Desplegar el servidor con Ubuntu 18.04

    1.6. Conectándose por medio SSH

    1.7. Cómo mejorar el flujo de trabajo con SSH

    1.8. Mantener la conexión activa con el servidor

    1.9. Apuntar un dominio existente al servidor VPS

    1.10. Usar los servidores de DNS de DigitalOcean

2. Uso, interacción y preparación esencial del VPS

    2.1. Explorar y navegar entre rutas del sistema

    2.2. Gestión de archivos en el servidor

    2.3. Gestión de directorios

    2.4. Trucos para ser ágil en la línea de comandos

    2.5. Uso de apt (apt-get) para la gestión y actualización de paquetes del VPS

    2.6. Administrar procesos con el comando systemctl 2.7. Reinicios del servidor

    2.8. Gestión de cuentas de usuario en Ubuntu (crear y eliminar)

    2.9. Inicio de sesión en el VPS con un nuevo usuario

    2.10. Asignación y uso de permisos administrativos en Ubuntu

    2.11. Bloquear el inicio de sesión como root en el servidor

    2.12. Configurar y usar el firewall UFW de Ubuntu

    2.13. Asignar permisos adecuados en Ubuntu

    2.14. Usar la aplicación fail2ban para prevenir ataques de fuerza bruta

3. Instalación los servicios más importantes del servidor

    3.1. Instalar Nginx

    3.2. Permitir acceso a sitios existentes en el servidor web Nginx

    3.3. Configuración de Nginx

    3.4. Flujo de peticiones de Nginx

    3.5. Desplegar el primer sitio en Nginx

    3.6. Configurar subdominios en el servidor con Nginx

    3.7. Instalar MySQL o MariaDB en el VPS

    3.8. Trabajar con MySQL y/o MariaDB desde la consola

    3.9. Asegurar la instalación de MySQL o MariaDB en Ubuntu

    3.10. Gestión de usuarios de MySQL

    3.11. Instalar FPM (Fast Processing Module) de PHP

    3.12. Administración y configuración de PHP

    3.13. Seguridad en la instalación de PHP

    3.14. Enviar peticiones desde Nginx hacia PHP-FPM

4. Seguridad en el servidor y sus servicios

    4.1. Impedir el acceso a los archivos .htaccess y .git

    4.2. Ocultar la información de versión de Nginx en las respuestas

    4.3. Evitar clickjacking en los sitios basados

    4.4. Evitar ataques de confusión de tipos MIME

    4.5. Evitar ataques XSS

    4.6. Optimizar por compresión con Gzip en Nginx

    4.7. Mitigar ataques DoS y DDoS

    4.8. Evitar que secuestren los sitios alojados en el servidor

    4.9. Instalar y configurar PHP Composer

    4.10. Preparar el VPS para establecer conexiones SSH con terceros

    4.11. Instalar extensiones adicionales de PHP

5. Despliegue y seguridad de proyectos reales en el VPS

    5.1. Obteniendo WordPress

    5.2. Desplegar e instalando WordPress en el VPS

    5.3. Obtener un proyecto Laravel desde Github

    5.4. Instalar dependencias de Laravel vía Composer

    5.5. Preparar Nginx para alojar un proyecto Laravel

    5.6. Despliegue y configuración de Laravel en el servidor

    5.7. Trabajar con Letsencrypt gracias al software acme.sh

    5.8. Instalar un cliente liviano de Letsencrypt

    5.9. Usar el cliente de Letsencrypt

    5.10. Usar Letsencrypt: un certificado por sitio

    5.11. Instalar cada certificado de Letsencrypt

    5.12. Configurar Nginx para usar HTTPS

Conocimientos y materiales requeridos para hacer el curso del servidor y despliegue de aplicaciones web PHP y Nginx

Este curso está enfocado a personas que tienen cierta experiencia en el desarrollo, pero no tanto en el área de sistemas. Adicionalmente sirve para cualquier estudiante de sistemas que desee aprender a configurar un servidor en un entorno seguro, optimizado y altamente profesional.

Es ideal que se dispongan previamente de conocimientos básicos de manejo de sistemas operativos, pues facilitará el aprendizaje, aunque se explicarán durante el curso las prácticas necesarias para cubrir los objetivos. Lo que sí resulta clave es tener claros conceptos diversos, como qué es un servidor web, el flujo de peticiones al servidor, que es un dominio, un servidor de DNS, HTTPS, etc. Son deseables también nociones básicas de consola: abrir y cerrar la consola, copiar y pegar texto de la misma. Es independiente qué consola se use (Shell, CMD, PowerShell, iCommand o similares).

Para poder realizar las prácticas el estudiante necesitará contar con su propio servidor. Puede ser un servidor dedicado, un servidor en la nube (cloud server) o un sencillo VPS. Las prácticas en la clase se realizarán sobre un servidor virtual en DigitalOcean, que tiene un coste de 5 dólares mensuales y que tendrá que contratar el estudiante por su cuenta con nuestras indicaciones, si lo desea. Podemos garantizar la resolución de dudas y eventuales incidencias para este proveedor, aunque también, en la medida de las posibilidades, orientaremos con el uso de otros proveedores.

El estudiante debe disponer de un dominio propio. Si no se tiene es importante que pueda adquirir uno y recomendamos que sea uno de pago, porque los gratuitos a menudo presentan limitaciones que no permitirán realizar todas las prácticas del curso. El dominio se puede adquirir en cualquier proveedor que se prefiera.

CONTENIDO

Preparación del entorno y el VPS

Juan David Meza González
1:52:29
1:38:55

Seguridad en el servidor y sus servicios

Juan David Meza González
1:36:14
1:47:27

CONTENIDO

Preparación del entorno y el VPS

Juan David Meza González
1:52:29
1:38:55

Seguridad en el servidor y sus servicios

Juan David Meza González
1:36:14
1:47:27