Diferència entre revisions de la pàgina «Grup 3 - Elecció versió Wordpress»

De Wiket
Salta a la navegació Salta a la cerca
Línia 14: Línia 14:
 
Un cop dins del <code>docker-compose.yml</code>, podem definir un apartat de <code>secrets</code> on especifiquem els arxius des dels quals es carregaran les contrasenyes:
 
Un cop dins del <code>docker-compose.yml</code>, podem definir un apartat de <code>secrets</code> on especifiquem els arxius des dels quals es carregaran les contrasenyes:
 
<pre>
 
<pre>
version: "3.9"
+
version: "3.3"
  
 
services:
 
services:
Línia 27: Línia 27:
 
       MYSQL_PASSWORD_FILE: /run/secrets/mysql_db_password
 
       MYSQL_PASSWORD_FILE: /run/secrets/mysql_db_password
 
     secrets:
 
     secrets:
       - db_root_password
+
       - mysql_root_password
       - db_password
+
       - mysql_db_password
  
 
   wordpress:
 
   wordpress:
Línia 44: Línia 44:
 
       WORDPRESS_DB_PASSWORD_FILE: /run/secrets/mysql_db_password
 
       WORDPRESS_DB_PASSWORD_FILE: /run/secrets/mysql_db_password
 
     secrets:
 
     secrets:
       - db_password
+
       - mysql_db_password
  
  
Línia 56: Línia 56:
 
     db_data:
 
     db_data:
 
     wordpress_data:
 
     wordpress_data:
 +
</pre>
 +
El directori final quedara doncs de la seguent manera:
 +
<pre><font color="#3465A4"><b>.</b></font>
 +
├── docker-compose.yml
 +
├── mysql_db_password.txt
 +
└── mysql_root_password.txt
 
</pre>
 
</pre>
  

Revisió del 17:11, 11 març 2022

Tasca

Elecció d'una versió de WordPress per al site d'higiene postural amb vulnerabilitats mínimes.

Informe

Elecció d'una versió de WordPress

Hem escollit la versió 5.9.2, ja que és l'última actualització més recent de seguretat per WordPress. A més les versions 5.9 corresponen a l'actual cicle llarg de manteniment.

Ens hem decidit per aquesta versió, perquè encara que és una de les últimes disponibles i això pot portar noves vulnerabilitats, és en essència una actualització de seguretat de la línia actual de suport per WordPress i, per tant, concentra totes les mesures de seguretat disponibles a data 11 de maig de 2022. Per altra banda, la imatge oficial de Docker per WordPress únicament suporta les versions de la línia 5.9, per tant, no es podrien emprar versions anteriors sense haver de crear un contenidor personalitzat, cosa que pot conduir a més vulnerabilitats.

Desplegament en local

A l'hora de protegir correctament la nostra aplicació utilitzarem variables d'entorn i Docker Secrets. Per tant, primer hem d'inicialitzar el nostre equip local com a Docker Swarm amb docker swarm init, ja que els secrets únicament funcionen dins de Docker Swarm. En aquest desplegament en local, protegirem tant la contrasenya de la base de dades com la contrasenya del usuari root de MySQL dins l'arxiu de configuració. Crearem un arxiu de text dins del mateix directori del docker-compose.yml on introduirem la contrasenya desitjada:

echo "P@SSw0rD1" > mysql_db_password.txt
echo "P@SSw0rD2" > mysql_root_password.txt

Un cop dins del docker-compose.yml, podem definir un apartat de secrets on especifiquem els arxius des dels quals es carregaran les contrasenyes:

version: "3.3"

services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     environment:
       MYSQL_ROOT_PASSWORD_FILE: /run/secrets/mysql_root_password
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wpadmin
       MYSQL_PASSWORD_FILE: /run/secrets/mysql_db_password
     secrets:
       - mysql_root_password
       - mysql_db_password

   wordpress:
     depends_on:
       - db
     image: wordpress:5.9.1
     volumes:
      - wordpress_data:/var/www/html
     ports:
       - "8000:80"
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_USER: wpadmin
       WORDPRESS_DB_NAME: wordpress
       WORDPRESS_DB_PASSWORD_FILE: /run/secrets/mysql_db_password
     secrets:
       - mysql_db_password


secrets:
   mysql_db_password:
     file: mysql_db_password.txt
   mysql_root_password:
     file: mysql_root_password.txt

volumes:
    db_data:
    wordpress_data:

El directori final quedara doncs de la seguent manera:

<font color="#3465A4"><b>.</b></font>
├── docker-compose.yml
├── mysql_db_password.txt
└── mysql_root_password.txt

Referències