Ir al contenido principal

Entradas

Mostrando las entradas etiquetadas como linux

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 digit...

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...

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 , sF...

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 ...

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...

ZFS, Primera parte

Cuando el año pasado instalé LXD y lo configuré por primera vez, me encontré que podía utilizar, de hecho se recomienda, el sistema de ficheros ZFS para albergar los contenedores. Posteriormente, cuando instalé Proxmox en el servidor de mi departamento, me encontré de nuevo con  ZFS . Anteriormente no le había prestado mucha atención a  ZF S , normalmente utilizo EXT4 o XFS , pero estaba claro que había una estrecha relación entre  ZFS  y los sistemas de virtualización. ZFS  es un sistema de ficheros desarrollado por Sun Microsystems  (creadores también del lenguaje de programación Java ), posteriormente la empresa fue adquirida por Oracle , actuales propietarios. OpenZFS  es la variante libre y posee una licencia de tipo  CDDL , que aunque es software libre, es incompatible con GPL . Por este motivo, el kernel de Linux no lo incorpora de serie. Sin embargo, los usuarios pueden instalarlo sin problemas ya que se encuentra en los rep...