Workshop: Aspectos de seguridad en Docker
Clase 12 de 22 • Fundamentos de Docker 2017
Contenido del curso
Clase 12 de 22 • Fundamentos de Docker 2017
Contenido del curso
Joaquin Araujo
Joaquin Araujo
Joaquin Araujo
Carlos Enrique Navia Torres
Maximiliano Sarlija
LUIS ALVEAR CORONEL
Ayoze Marcelino Rodriguez
Nicole Chapaval
Jose Meira
Rosario Nery Huanca Gonza
Jennifer Puerta
Jennifer Puerta
Jennifer Puerta
Carlos Enrique Navia Torres
Abiel Magu
Uriel Ramírez
Kennedy ${{7*7}} Sanchez ${7*7}
Usuario anónimo
Saul Burgos
Rodman M. Swanston C.
Julio Yacot
Jairo Eduardo Sánchez González
José Antonio Arias Rodríguez
Diego Forero
Andres Leonardo Arevalo
Andres Leonardo Arevalo
Andres Leonardo Arevalo
Sergio Andrés Celis León
Sergio Andrés Celis León
David Toca
Andres Leonardo Arevalo
Pasos para configurar Docker con TLS:
mkdir docker-cacd docker-caopenssl genrsa -aes256 -out ca-key.pem 2048openssl req -new -x509 -days 365 -key ca-key.pem -sha256 -out ca.pemopenssl genrsa -out server-key.pem 2048openssl req -subj "/CN=[hostname]" -new -key server-key.pem -out server.csrecho "subjectAltName = IP:[IP/127.0.0.1]" > extfile.cnfopenssl x509 -req -days 365 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnfopenssl genrsa -out client-key.pem 2048openssl req -subj "/CN=client" -new -key client-key.pem -out client.csrecho "extendedKeyUsage = clientAuth" > extfile.cnfopenssl x506 -req -days 365 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem -extfile extfile.cnfSi necesitas una guía y resumen del curso aquí la tienes.
Pasos para asegurar las claves:
chmod -v 0400 ca-key.pem client-key.pem server-key.pemchmod -v 0444 ca.pem client-cert.pem server-cert.pem/etc/docker en caso de que no exista./etc/docker: sudo chown <username>:docker /etc/docker sudo chmod 700 /etc/dockersudo cp ~/docker-ca/{ca, server-key, server-cert}.pem /etc/dockerPasos para usar Docker con TLS:
DOCKER_OPTS="-H tcp://0.0.0.0:2376 --tlsverify --tlscacert=/etc/docker/ca.pem --tlscert=/etc/docker/server-cert.pem --tlskey=/etc/docker/server-key.pem" &
sudo service docker restartdocker-ca):docker --tlsverify --tlscacert=./ca.pem --tlscert=./client-cert.pen --tlskey=./client-key.pem -H tcp://127.0.0.1:2376
con el servidor b no puedo reproducir el video...
Para los que tengan el problema de : Subject does not start with ‘/’.
problems making Certificate Request
Debes utilizar “//CN=localhost” en la linea vista
No es el video del worshop del día 3, sino el vídeo de la clase del día 2, ayuda por favor
En el server A se ve el video incorrecto como dice luchoalco
Ya lo arreglamos :)
No he entendido muy bien la parte del crear el CSR para el servidor…
"/CN=localhost", entiendo que es porque el servidor es la misma máquina en la que estamos trabajando… si fuese una externa, llegaría con poner la IP? Se pueden incluir varias IPs en el CN?
Y, para la firma de la clave del servidor con el CSR con el CA, “subjectAltName = IP: 127.0.0.1” … ? puedo incluir alguna IP más, como las separo?
Alguien podría dejar un ejemplo de un cliente separado de un servidor?
Saludos.
Para el certificado del servidor yo use
$ echo -e "subjectAltName = @alt_names\n[alt_names]\nIP.1 = 192.168.56.10\nIP.2 = 127.0.0.1" > extfile.cnf $ openssl x509 -req -days 365 -in server.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out server-cert.pem -extfile extfile.cnf
Ayuda por favor:
Tengo ubuntu server 18.04 y docker 18.05. Realice las siguientes acciones y no consigo levantar nuevamente al servicio docker:
1.- Detuve mi servicio .
2.- Ejecute lo siguiente: sudo dockerd -H tcp://0.0.0.0:2375 --tlsverify --tlscacert=./ca.pem --tlscert=./server-cert.pem --tlskey=./server-key.pem & y me indicó que el demonio habia sido inicializado.
3.- Intento un sudo docker ps y me indica que el demonio no esta corriendo.
4.- export DOCKER_HOST="tcp://localhost:2375"
5.- sudo service docker restart y me arroja un error: Job for docker.service failed because the control process exited with error code. See “systemctl status docker.service” and “journalctl -xe” for details.
Cabe resaltar que al reiniciar el sistema, el servicio inicia de forma automatica de forma satisfactoria, solo que no logro aplicar el inicio de docker con TLS.
¿Alguna idea? Saludos y Gracias
¿Nadie? Saludos
Estoy atascada en esto. No quiero saltar esta lección. @GOLLUM23 o alguien que pueda ayudarme. Gracias!
hola quiero visualizar el video con este servidor y no lo puedo ver ayuda.
No reproduce este video, por favor revisarlo, gracias!!
Ya esta en el player A por si no te sirve el player
Hola Marcos y mi gente del Platzi Team.
Pudieran en algun futuro hacer un video de Continuous integration con Docker y Jenkins?
Saludos
Excelente clase :)
Usando toolbox en windows. El cliente docker ya esta utilizando coneccion remota. SI usas el comando :
env | grep -i docker
Veran que la ip es la de virtual box. Nos estamos conectando a la maquina virtual por que el demonio esta ahi
Para hacer esto en Windows (o al menos a si lo logre, si hay otra forma de hacerlo me gustaria saber) se debe mover los archivos en C:\Users\nombre_user.docker\machine\certs a la raiz .docker
docker --tlsverify -H ipmaquinavirtual:2376 ps
Impresionante los aportes de Marcos, me ha costado entender la metodología cliente-entidad certificadora-servidor, que curso me sugieren? quisiera usar https en mis aplicaciones y necesito entender bien su implementación
ca-key.pem clave privada de la entidad certificante
Hola,
Alguien puede darme una referencia donde se este explicado a detalle el funcionamiento de las llaves y todo lo que se hizo para el tema de llaves
En el curso de linux en los primeros materiales se enseña a crear llaves para conexión ssh, es aplicado igual a docker.
Específicamente en este material https://platzi.com/clases/linux/concepto/introduccion-a-linux9046/tmux-ssh/material/
Paso #5. Crear una clave privada y un CSR para el cliente > openssl genrsa -out client-key.pem 2048 > openssl req -subj '/CN=client' -new -key client-key.pem -out client.csr
Paso #6 Firmar la Clave del cliente con el CSR mediante nuestro CA
> echo "extendedKeyUsage = clientAuth" > extfile.cnf > openssl x509 -req -days 365 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem -extfile extfile.cnf
Paso #6 Firmar la Clave del cliente con el CSR mediante nuestro CA
> echo "extendedKeyUsage = clientAuth" > extfile.cnf > openssl x509 -req -days 365 -in client.csr -CA ca.pem -CAkey ca-key.pem -CAcreateserial -out client-cert.pem -extfile extfile.cnf
docker: ‘daemon’ is not a docker command.
a que se debe este error ?
el comando que uso
sudo docker daemon -H tcp://0.0.0.0:2375 --tlsverify --tlscacert=./ca.pem --tlscert=./server.cert.pem --tlskey=./server-key.pem &
pareciera que tuvieraa una version antigua de Docker, ese comando se introdujo en socker 1.8, revisa tu versión en intenta actualizar, también puedes probar con el.comando
docker -d
que es como funcionaba antes
Paso # 1. Crear una Autoridad de Certificación CA. > openssl genrsa -aes256 -out ca-key.pem 2048