
Artículo · Pentesting a Aplicaciones Web
Portainer es una herramienta web open-source: Gestor Web para Docker
INTRODUCCIÓN
En los últimos años, las tecnologias de irutalizacioon de servicios y plataformas ha tomado poder en el mundo de las implementaciones. Uno de ellos es Docker, el cuál nos permite automatizar el despliegue de aplicaciones dentro de contenedores de software. A grandes ragos, Docker permite meter en un contenedor (un entorno cerrado) aquellas cosas que mi aplicación necesita para ser ejecutada (java, Maven, tomcat…) y la propia aplicación. Ese contenedor puede llevarse a cualquier máquina que tenga instalado Docker y ejecutar la aplicación independientemente de qué sistema operativo es, de si son compatibles o no.
Gracias a esta gestión independiente y muchas otras características, es que Docker ha ganado terreno, tanto que algunas ofertas de trabajo ya solicitan gente especializada en contenedores.
Es por esto que les doy a conocer una plataforma que conocí hace unos meses y me ha ayudado un monton a facilitar la implementación y creación de contenedores Docker. Aquí es donde entra Portainer, que ya cuenta con su última versión lanzada hace unos dias, la versión número 1.24.1
INSTALACION PORTAINER - UBUNTU 18.04
Portainer, entendamos que entra en este mundo de los contenedores, siento este un contenedor, o mejor dicho, contenido este en un contenedor (que redundancia). Por ende y por obviedad, antes de instalar y usar Portainer, es necesario instalar Docker en nuestros equipos.
NOTA: Para las pruebas actuales, se utilizará una máquina con Linux Ubuntu 18.04.
Instalación Docker
Como tiene que ser costumbre, antes de instalar algún paquete, nos aseguraremos que nuestro servidor esté actualizado:
# apt update
# apt upgrade
Superada las tareas iniciales, instalaremos los paquetes necesarios para poder instalar Docker:
# apt install apt-transport-https ca-certificates curl software-properties-common
Añadimos la clave GPG oficial de Docker:
# curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
Activamos el repositorio de Docker y lo actualizamos:
# add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
# apt update
Ahora, instalamos la última versión de Docker en nuestro sistema:
# apt install docker-ce
Deploy Contenedor: Portainer
Como deciamos al principio del artículo, Portainer es un contenedor, por ende lo instalaremos como tal. Para la implementacion del contenedor, ejecutaremos los siguientes comandos en la máquina Linux:
# docker volume create portainer_data
# docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data portainer/portainer
Nota: Para el uso de Portainer, necesitamos asegurar y abrir el puerto 9000 en nuestro firewall local.
Con el comando #docker ps validamos la ejecucion del contenedor recien creado. Ahora accederemos vía navegador a la siguiente URL:
Evidencia 01 - Ejecucion Container
Portainer: Primeros Pasos
Al acceder vía web por primera vez nos pedirá configurar la contraseña del usuario administrador, tal y como se muestra en la imagen:
Una vez ya hemos configurado esa parte, en el siguiente paso ya podemos ver la interfaz de Portainer propiamente dicha.
Vemos en la imagen que solo tenemos un nodo de Docker, que es el primario. Además, nos da la información de sus volúmenes, imágenes y contenedores, tanto los que están parados como los que funcionan.
Si marcamos sobre el nodo primario se nos mostrará el siguiente panel de control:
La verdad es que este producto da para realizar prácticamente todo.
A partir de la versión 1.12 de Docker, es muy sencillo hacer un clúster formado por varios Docker Hosts mediante lo que se conoce como un "Swarm" Mode.
Swarm es ahora parte integral del engine y no tendremos que instalar elementos adicionales. Además, se han incluido nuevas funcionalidades como escalado, balanceo de carga y rolling updates, todo ello completamente integrado en la instalación de Docker.
En un clúster de Swarm existen dos tipos de nodo: Manager y Worker.
Los nodos Manager son los encargados de gestionar el clúster. Entre todos los Manager se elige automáticamente un líder y éste es el encargado de mantener el estado del clúster.
Los Manager son también los encargados de distribuir las tareas o tasks (unidades básicas de trabajo) entre todos los nodos Worker, los cuales reciben estas tareas y las ejecutan.
Los nodos Manager por defecto también actúan como nodos Worker aunque se puede cambiar su configuración para que sólo asuman tareas de Manager.
Portainer aún no permite la gestión core de los nodos; tareas unir o cambiar de role no son posibles aún, pero sí podemos visualizar los nodos y su estado. Nada nos dice que esto no este disponible para una nueva actualización.
De aquí las posibilidades son infinitas, desde crear STACKS directamente, permitiendo el uso de variables, carga de configuraciones personalizadas y personalizacion de redes.
Bienvenidos a probar Portainer y hacerme llegar sus comentarios acerca de esta poderosa herramienta!
Veremos más adelante, más artículos de Portainer y como ir gestionando cada artilugio de este gestor.
Referencias
- PORTAL OFICIAL: https://www.portainer.io/
- https://www.portainer.io/installation/
- https://colaboratorio.net/davidochobits/sysadmin/2018/gestion-grafica-docker-portainer/
- https://es.wikipedia.org/wiki/Docker
- https://enmilocalfunciona.io/cluster-de-docker-con-swarm-mode/
¿Quieres aprender estas técnicas en profundidad?
Continúa tu ruta con Web Application Testing.

Escrito por
Javier CandiaAnalista Ciberseguridad
Ingeniero en Redes, caminando por los caminos de la ciberseguridad.



