
Conoce un poco acerca de JuanDMeGon, el instructor del curso.
Dale un vistazo general a los resultados del curso y a muchas de las habilidades que aprenderás y practicarás durante todo el curso.
Conozcamos un poco acerca de las ventajas de tener un VPS, y por qué es buena idea tener un servidor VPS para tus proyectos.
Es momento de elegir un proveedor de VPS para crear una cuenta en el mismo
En el curso se usa DigitalOcean, pero eres libre de elegir algún otro como Linode, Rackspace o el que gustes.
Crea una cuenta en el proveedor utilizado durante el curso (DigitalOcean). Nuevamente, no tienes que usar DigitalOcean, pero te lo puedo recomendar.
Si estás en Windows, es importante habilitar algunos comandos que nos serán de utilidad durante todo el curso para generar llaves SSH y establecer conexiones SSH con el VPS.
Nota: Si no estás en Windows, muy posiblemente no tengas que seguir estos pasos. Asegúrate de poder usar comandos como "ssh" y "ssh-keygen".
Las llaves SSH son unos archivos usados para establecer conexiones SSH, el cual, es un mecanismo de autenticación bastante seguro que nos permitirá conectarnos a nuestro servidor VPS, sin depender de las tradicionales contraseñas.
Es momento de acceder DigitalOcean o al proveedor que hayas elegido para crear la instancia de VPS con Ubuntu 18.04.
Veamos cómo usar el comando ssh para establecer conexiones a nuestro VPS por medio de las llaves SSH que hemos creado.
Como estamos usando laves SSH cuyo nombre no es el usado por defecto por el comando ssh, se vuelve bastante molesto tener que especificar la ruta completa de la llave SSH cada vez.
Durante esta clase, verás cómo crear unos alias que te permitan olvidarte de todos los parámetros como nombres de usuario, dirección IP, junto con la ubicación de la llave SSH.
Por defecto, las conexiones por SSH establecidas con el servidor, se cierran a los 5 minutos de inactividad. Esto resulta bastante molesto, así que vamos a configurar nuestro sistema para que esto no suceda más.
Veamos cómo administrar las diferentes entradas DNS en tu proveedor de VPS de modo que apuntes tu dominio adquirido y cualquier subdominio a la dirección IP de servidor VPS.
Una vez que tienes un dominio, es importante indicarle al proveedor de ese dominio, que apunte a los servidores de DigitalOcean o del proveedor que hayas elegido, de modo que sea ese proveedor el que permita gestionar las diferentes entradas DNS.
Para trabajar con tu VPS, tendrás que moverte constantemente a lo largo de las diferentes ubicaciones del mismo. Veamos entonces el uso de los diferentes comandos que nos permitirán conocer el contenido de una ubicación, junto con desplazarnos entre ellas.
Es una tarea bastante común, tener que crear, y gestionar cualquier tipo de archivo cuando administras un servidor VPS. En esta clase, te mostraré el uso de los diferentes comandos que te serán útiles para gestionar archivos y trabajar con su contenido.
Durante el curso, vamos a necesitar crear, mover, y gestionar directorios en general. En esta clase, te mostraré el uso de los diferentes comandos que te serán útiles para gestionar directorios en todo el sistema de archivos de tu VPS.
Cuando trabajas con tu VPS, el uso de la consola es primordial, así que durante esta clase te voy a compartir unos trucos que te ayudarán a ser mucho más ágil y eficiente al momento de escribir y ejecutar comandos.
Mantener tu VPS actualizado es muy importante, así que durante esta clase aprenderás a usar el comando apt para gestionar los diferentes paquetes de tu servidor VPS.
Aprende a usar el comando systemctl para administrar los diferentes procesos del sistema de tu VPS. Esto es especialmente útil para gestionar los procesos de PHP, Nginx y MySQL más adelante.
De vez en cuando, el servidor VPS te pedirá que lo reinicies. El proceso es bastante sencillo, pero tiene algunas consideraciones previas.
Conoce los factores a tener en cuenta antes de reiniciar tu VPS y, por supuesto, cómo reiniciarlo.
Conoce los diferentes comandos que son de utilidad para gestionar cuentas de usuario (crear y eliminar).
Luego de haber creado un usuario, es posible iniciar sesión con éste, pero algunas cosas deben ser preparadas antes de poder hacerlo. Veamos cuáles.
Cada usuario creado tiene capacidades limitadas. Para poder darle mayor capacidad y asignarlo como usuario privilegiado, es necesario hacerlo de forma explícita. Veamos cómo.
El toque final de seguridad, será evitar que cualquier persona o sistema, inicie sesión como el usuario root de manera directa. De este modo, tendrás seguridad absoluta de que nadie tendrá permisos administrativos a menos que se los hayan asignado y conozca además la contraseña que se le dio al crear su cuenta.
Cierra todos los puertos posibles del VPS, para así evitar algún tipo de ataque sobre los múltiples puertos que puede tener tu VPS, por medio de un firewall. Así sólo tendrás abiertos aquellos que necesitas y tendrás un control más riguroso.
Conoce dos comandos usados para dar permisos sobre ubicaciones: chmod y chown.
Aprende la diferencia entre ambos y porqué es preferible usar chown.
Con Fail2Ban podrás controlar y mantener a raya los sistemas automatizados que están constantemente intentando acceder a tu VPS por medio de SSH.
Es momento de instalar el servidor web. En este caso usaremos Nginx, pues es una muy buena alternativa, incluso superior a Apache.
A pesar de tener un servidor web, capaz de recibir peticiones al puerto 80 (HTTP), éstas aún fallan, debido a que nuestro firewall tiene bloqueado este puerto. Veamos cómo habilitar este puerto junto con el puerto 443 para HTTPS.
Ya que tienes Nginx instalado y funcional, veamos un poco sobre su estructura y sus archivos y ubicaciones principales.
Veamos un poco acerca de los hosts virtuales que le permiten a Nginx determinar cómo responder a una petición u otra, además de las diferencias entre las carpetas sites-available y sites-enabled.
Ahora que está todo claro sobre Nginx, su estructura y los hosts virtuales, es momento de desplegar el primer sitio (el sitio principal) aplicando aprendido en clases anteriores.
Vamos a profundizar en el proceso de despliegue de sitios y esta vez lo haremos habilitando varios sub-dominios en nuestro servidor VPS.
Es momento de instalar un sistema gestor de bases de datos. Eres libre de elegir entre MySQL o MariaDB. En esta clase te mostraré cómo instalar MariaDB, que es mi recomendación, pero cualquiera de los dos servirá y se usará exactamente igual.
Es muy posible que, a lo largo del tiempo, sea necesario acceder a MySQL o MariaDB para gestionar las bases de datos. Veamos cómo obtener acceso a estos desde la consola y de paso crear algunas bases de datos.
Ya hemos evidenciado unos detalles de seguridad en clases anteriores, así que es momento de asegurar por completo la instalación de MySQL o MariaDB, ambas de forma similar.
Como paso final de seguridad, vamos a aislar cada base de datos de forma correspondiente, asignando un único usuario a cada una.
Es momento de instalar PHP, como un módulo independiente del sistema, de modo que tanto el servidor web como PHP pueda funcionar de manera independiente.
Vamos a dar una mirada a las ubicaciones más importantes de PHP, junto con el archivo de registro que nos puede ser de ayuda para resolver problemas.
Como es habitual, vamos a asegurar la instalación de PHP, de modo que tengamos asegurados todos los sitios que usen PHP para su funcionamiento.
Como tenemos a PHP y Nginx como módulos completamente independientes, es necesario indicarle Nginx a dónde enviar las peticiones por archivos PHP, de modo que sean debidamente procesados.
Los archivos .htaccess, al igual que los archivos y carpetas de git, podrían darle información sensible a un posible atacante. Evitando el acceso a ellos, impedirás poner en riesgo tu información, sin alterar el posible funcionamiento de estos sistemas.
De forma pre-determinada, Nginx incluye su versión y la del sistema operativo en las cabeceras de respuesta de cada sitio. Durante esta clase, verás cómo evitar que esto sucede para así evitar revelar información importante.
Al evitar clickjacking evitas que tus sitios sean incluidos en sitios externos, por medio de iFrames o similares. Así qevitas que tu contenido sea utilizado de forma indebida y además evitas que tus usuarios sean engañados.
Evita que los navegadores supongan el tipo de los archivos que sirven basados en el contenido, sino que se fíen únicamente del tipo de archivo en sí. De ese modo evitas que posibles archivos que son de texto plano, resulten siendo ejecutados al ser detectados como JavaScript o similares.
Evita que en tus sitios si inyecte código ejecutable, de modo que el navegador lo impida y bloquee la ejecución del sitio.
Mejora el rendimiento y el consumo de ancho de banda de tus sitios comprimiendo las respuestas por medio de Gzip.
Restringe un poco los límites de peticiones y conexiones simultáneas que puede tener un mismo usuario con tu sistema, para así mitigar el impacto de posibles ataques DoS y DDoS.
Es momento de asegurarse que cualquier sitio que apunte a la IP de tu servidor y que no haga parte de tus sitios configurados, sea dirigido a tu sitio por defecto, en lugar de presentar el contenido, pudiendo generar confusiones en tus usuarios y abrir las puertas a posibles engaños.
¡ATENCIÓN! Ya existe una versión más reciente y actualizada de este curso. Busca por VPS Seguro en Ubuntu 20.04 con Letsencrypt, Cloudflare y más.
¿Así que quieres publicar todos esos proyectos en tu propio servidor, pero no sabes por dónde empezar? Pues bien, este curso es lo que necesitas :)
Crea y configura tu propio Servidor Virtual Privado (VPS), con una alta calificación de seguridad, desde cero y paso a paso:
En este curso aprende a crear desde cero tu propio servidor VPS, configurarlo adecuadamente, con las medidas de seguridad más adecuadas y los mecanismos de funcionamiento más recomendados. Usa siempre protocolos seguros como SSH para conectarte con tu VPS. Olvídate de las inseguras contraseñas, ahora podrás establecer conexiones seguras con tu servidor con SSH, sin problemas y realizar todo lo que necesites.
Despliega todos tus proyectos con tu propio dominio, con infinidad de posibilidades, sin costo adicional. Mantén tu propio espacio en la nube para todos tus trabajos, proyectos e ideas, despliega todo tipo de proyectos en una misma instancia y con la cantidad de dominios y sub-dominios que quieras sin pagar costos adicionales. En el curso, desplegaremos 4 proyectos diferentes de Wordpress y Laravel cada uno en un dominio o sub-dominio diferente.
Aunque se recomienda el uso de DigitalOcean, estás en libertad de crear tu VPS con el proveedor que desees, pues el curso lo puedes seguir en cualquier instancia limpia de Ubuntu 18.04 que obtengas en tu proveedor de VPS favorito, porque todo se hará desde cero y paso a paso, sin depender de servicios adicionales.
Instala y despliega un sistema completo con Linux/Ubuntu 18.04, PHP, Nginx y MySQL o MariaDB; además de obtener certificados de seguridad de manera automatizada y completamente gratuita por medio de Letsencrypt.
¿Por qué Elegir este curso?
Porque se usa la versión de soporte a largo término (LTS) más reciente de Ubuntu, que es Ubuntu 18.04LTS. Esta versión te permite obtener actualizaciones y parches de seguridad por al menos dos años, lo cual significa que podrás desplegar tu sistema en Ubuntu 18.04LTS y no tendrás que preocuparte por pasarte a otra versión durante dos largos años.
Porque no existe ningún otro curso en línea que explique con este nivel de detalle cada paso a realizar, porque Letsencrypt es novedoso, y no encontrarás contenidos que te enseñen a usarlo del modo que se hace en este curso (el modo correcto y sencillo). Porque se usan los mejores estándares para obtener la calificación más alta de seguridad (A+) en lo sitios que asegures al seguir el curso.
Porque, hoy en día los principales navegadores están exigiendo conexiones seguras HTTPS en cualquier sitio o servicio en línea, y al seguir el curso, podrás asegurar todos tus sistemas de forma gratuita por medio de Nginx y Letsencrypt.
Porque aprenderás a desplegar dos de los tipos de proyectos más populares de la comunidad en PHP, que son los sitios Wordpress y los proyectos Laravel.
¿Qué aprendes y obtienes al seguir y terminar el curso?
Al finalizar este curso, estarás en capacidad de desplegar tu propio servidor VPS en muy poco tiempo y con gran facilidad, utilizando herramientas muy potentes, novedosas y seguras. Tendrás entonces tus propios proyectos en línea sin costos adicionales, pues no importa cuantos dominios, sub-dominios o proyectos pongas en tu VPS, el costo se mantendrá igual.
Al culminar todas las clases tendrás todos tus proyectos bajo un servidor completamente seguro, con conexiones HTTPS/TLS completamente gratuitas por medio de Letsencrypt y con una calificación A+ en los sitios asegurados.
Pero... ¿Qué se enseña exactamente?
Aquí tienes todo lo que vas a poder obtener de este curso:
Crea tu propio servidor VPS con Digital Ocean o cualquier proveedor que elijas
Ten un sistema rápido seguro y amigable con Linux/Ubuntu en su versión LTS más reciente (Ubuntu 18.04)
Despliega un servidor web Nginx en pocos minutos y con las mejores configuraciones de seguridad
Despliega un servidor de base de datos MySQL o MariaDB completamente seguro y sin demora
Configura y usa fácilmente Git para desplegar por medio de SSH los diferentes proyectos en tu VPS
Obtén paquetes externos e instálalos de forma global (composer y Letsencrypt acme·sh como ejemplos)
Crea y configura tu propio dominio y todos los sub-dominios que requieras, sin tener que pagar de más
Apunta tu dominio a tu servidor VPS configurando las entradas DNS
Conéctate a tu VPS de manera remota, fácil y segura por medio de tus llaves SSH
Gestiona cuentas de usuario y evita que sistemas automatizados y externos accedan con privilegios (root)
Aprende a usar los comandos esenciales (cd, systemctl, cp, sudo, mv, rm, mkdir, reboot, y muchos más)
Aprende a gestionar fácilmente los paquetes del VPS con apt
Asignar permisos sobre carpetas y archivos de la manera correcta con chown
Exige el uso de conexiones seguras con SSH, y olvídate de las inseguras contraseñas
Crea y utiliza correctamente los usuarios con permisos administrativos (sudo)
Despliega diferentes proyectos Wordpress y Laravel cada uno en un dominio o sub-dominio diferente
Comprende y aprovecha las ventajas del uso de SSH para conectarte a tu VPS o a servicios externos
Conéctate con servicio de terceros por medio de llaves SSH de forma correcta
Configura fácilmente un firewall (UFW) y aumenta drásticamente la seguridad de tu VPS
Configura tus servicios (Nginx, PHP, MySQL/MariaDB, etc) para que sean más seguros.
Mitiga ataques DoS y DDoS con una configuración adecuada del servidor web Nginx
Evita que sistemas automatizados intenten acceder a tu VPS, por medio de Fail2Ban
Configura cabeceras de expiración para tus proyectos
Habilita el sistema de compresión Gzip en tu servidor web
Evitar ataques CSS/XSS con Nginx
Obtén certificados de seguridad para conexiones HTTPS para tus proyectos con Letsencrypt
Instala de la forma correcta los certificados de seguridad en Nginx, para obtener la calificación A+ de seguridad
Usa acme·sh para obtener y automatizar la instalación de certificados de seguridad de Letsencrypt
Creación y uso de dominios y todos los sub-dominios que requieras fácilmente
Cómo desplegar fácilmente un proyecto cualquiera en tu VPS
Cómo desplegar proyectos complejos en el VPS (Laravel como caso de uso)
¡Y no termina ahí! Tendrás acceso de por vida a todas las clases del curso, lo cual incluye clases adicionales y de actualización posteriores. Además tendrás acceso de primera mano, al sistema de preguntas, mensajes y respuestas, donde responderé todas tus dudas y comentarios de inmediato (siempre respondo). Siempre estaré complacido de ayudar en cualquier problema o duda que tengas durante el curso.
¡No esperes más! Aprende todas estas habilidades haciendo clic en "Inscribirte" y siente la libertad de tener tu propio servidor VPS.
Nos vemos en clases :)