Ir al contenido principal

Entradas

Let's encrypt con Apache en Ubuntu Server

Uno de los problemas que encontramos en el aula cuando queremos explicar el funcionamiento del protocolo HTTPS y su uso en un servidor web, es que los certificados digitales generalmente cuestan dinero. Por otro lado, podemos crearnos nuestro propio certificado digital firmándolo nosotros mismos (autofirmado). El inconveniente de esta solución es que cuando nos conectemos al servidor, el navegador nos mostrará una serie de mensajes advirtiéndonos del peligro que corremos al acceder a esta web; ya que el certificado no está validado (firmado) por un Autoridad de Certificación ( CA ) autorizada. A finales de 2014 la  Internet Security Research Group publicó el proyecto  Let's Encrypt con la idea de proporcionar a la comunidad de Internet certificados digitales de forma gratuita. Además desarrollaron el protocolo ACME para que se pudiera realizar de forma automática todo el proceso de interacción con la CA para la creación, renovación y despliegue de certificados digitales.
Entradas recientes

Desactivando el servidor DHCP de LXD

A veces, cuando estamos utilizando LXD necesitamos desactivar el servidor DHCP que incluye por defecto. Por ejemplo, para instalar nosotros mismos un servidor DHCP en uno de nuestros contenedores. Esto es muy útil en el módulo Servicios en Red cuando en el segundo tema estudiamos el servicio DHCP y queremos hacer prácticas con contenedores LXD . Lo primero que tenemos que verificar es el estado del dispositivo lxdbr0 , este dispositivo es un bridge que   se encarga de hacer de puente entre la red del ordenador y la red que utilizan los contenedores. Téngase en cuenta que dependiendo de la configuración inicial ( lxd init ), que se estableció cuando se instaló LXD , este dispositivo podría tener otro nombre. Con el siguiente comando obtendremos la información que necesitamos: $ lxc network show lxdbr0 config:   ipv4.address: 192.168.1.1/24   ipv4.nat: "true"   ipv6.address: fd42:c22b:58d4:abc7::1/64   ipv6.nat: "true" description: "" name

Instalando Moodle con Docker

En este blog ya hemos hablado en varios artículos sobre la tecnología de contenedores, pero hasta ahora nos habíamos centrado en LXD . En este artículo vamos a explicar cómo podemos instalar Moodle en menos de un minuto (dependiendo de la velocidad de descarga que se tenga, se puede alargar un poco más) usando contenedores. Acerca de Moodle No voy a explicar que es Moodle ni como instalarlo desde cero, para eso existe en Internet multitud de tutoriales. Lo que sí quiero comentar es que para instalar Moodle hace falta un servidor web con PHP . Además requiere que PHP tenga instalado una serie de componentes adicionales. Por otro lado, necesitamos tener instalado en el servidor un sistema de gestión de bases de datos relacional, ya que Moodle almacena la información en él. Normalmente se utiliza MySQL , MariaDB o PostgreSQL . También debemos crear una base de datos específica para Moodle con su respectivo usuario. Durante la instalación Moodle creará las tablas necesari

Asignación estática de direcciones IP basadas en rangos de direcciones MAC

La principal ventaja de tener un servidor DHCP consiste en que los administradores no tienen que preocuparse de asignarle una dirección IP a cada máquina de forma individual, ya que el servidor se encargará de ello. Si la red es pequeña, esta tarea no es muy ardua, pero conforme la red crece, la cosa se complica. En una configuración normal se establece un rango de direcciones, llamado pool , que el servidor utilizará para asignar de forma dinámica a las máquinas clientes. Muchas veces nos interesa asignar una dirección IP concreta a una máquina, por ejemplo, a un servidor o a una impresora. Todo esto entra dentro de lo que se considera configuración básica de DHCP y nuestros alumnos lo practican tanto en la configuración de los servidores DHCP que incorporan los routers como en los servidores que ellos mismos configuran tanto en Linux como en Windows . Pero hay veces que se necesitan configuraciones más complejas, como la que vamos a ver en este artículo, para resolver

Compartiendo directorios con contenedores LXD

Supongamos que estamos desarrollando una aplicación web y, para realizar las pruebas, utilizamos un servidor Apache 2 dentro de un contenedor LXD con Ubuntu Server . La idea de utilizar un contenedor en este contexto es para evitar tener que instalar todo el software y los frameworks que requiera nuestra aplicación en nuestra propia estación de trabajo. De este modo, si trabajamos en varios proyectos diferentes podemos tener cada proyecto en su propio contenedor y evitar los problemas derivados con los diferentes frameworks que estemos utilizando. Para programar utilizamos algún editor de textos como Atom , Visual Studio Code o Sublime Text y, por ello, necesitamos editar constantemente los ficheros que se encuentran en el directorio /var/www/html de nuestro contenedor.  Para subir y bajar ficheros entre el contenedor y la máquina anfitriona podemos utilizar diferentes soluciones, por ejemplo, con la suite de comandos lxc file o bien conectarnos por FTP , FTPS , sFTP , ...

Analizando el protocolo HTTP

El objetivo de este artículo es el de explicar de forma práctica el funcionamiento del protocolo HTTP y entender el intercambio de datos que se realiza entre los servidores y los clientes web. Por otro lado, cubre la necesidad de tener un texto en español que sirva de referencia a mis alumnos de Servicios en Red  a la hora de realizar la práctica de clase  HTTP-1 . La idea es ver de forma práctica el funcionamiento interno del protocolo HTTP . Para ello, vamos a utilizar un par de herramientas de la línea de comandos de Linux ( telnet y netcat ), con las que vamos a simular el comportamiento tanto del navegador como del servidor web. HTTP es un protocolo de la capa de aplicación, y como muchos otros protocolos de esta capa, está basado en texto. De hecho, los comandos que envía el navegador al servidor y sus respuestas se pueden leer perfectamente en inglés. Por defecto, HTTP utiliza el puerto 80 TCP y HTTPS  el puerto 443 TCP. Los ejemplos que vamos a ilustrar serán

ZFS, Segunda Parte

En el artículo anterior estuvimos viendo cómo instalar y utilizar el sistema de ficheros ZFS , se vio como crear un pool a partir de varios VDEV y los diferentes tipos de RAID que ofrecía este sistema, también estuvimos viendo la creación de datasets . En el artículo de hoy vamos a seguir explorando el funcionamiento de este sistema de ficheros. ZVOL Una vez que tenemos un pool disponible podíamos crear diferentes datasets , y esto es lo que hace, por ejemplo, Proxmox cuando se crean contenedores. El sistema de ficheros de un contenedor se almacena en un dataset . Pero cuando se crea una máquina virtual, el sistema de almacenamiento de la máquina virtual se alberga dentro de un ZVOL . Un ZVOL , ZFS VOLume , es similar a un dataset , sólo que en vez de ser un sistema orientado a ficheros, un ZVOL es un dispositivo de bloques. Los ZVOL se crean sobre el pool y comparten todas las características de la infraestructura subyacente. Si tenemos un RAID en nuestro pool , l