Diferència entre revisions de la pàgina «Accesibilidad externa a los servicios (Proxy inverso, WAF, etc...)»

De Wiket
Salta a la navegació Salta a la cerca
Línia 1: Línia 1:
 +
=== Introducción ===
 
En torno a la accesibilidad externa a los servicios (proxy inverso, WAF, etc.), ha sido realizado a través del software '''Docker''', un software de código abierto que nos automatizará los despliegues de aplicaciones/servicios dentro de contenedores de software con el que conseguiremos una mayor seguridad en nuestros servicios, dado que, logramos conseguir una capa adicional de abstracción y además una automatización de virtualización de aplicaciones/servicios de múltiples sistemas operativos existentes actualmente.  
 
En torno a la accesibilidad externa a los servicios (proxy inverso, WAF, etc.), ha sido realizado a través del software '''Docker''', un software de código abierto que nos automatizará los despliegues de aplicaciones/servicios dentro de contenedores de software con el que conseguiremos una mayor seguridad en nuestros servicios, dado que, logramos conseguir una capa adicional de abstracción y además una automatización de virtualización de aplicaciones/servicios de múltiples sistemas operativos existentes actualmente.  
  
 +
=== Implementación de servicios ===
 
Aclarado esto, en nuestro caso conseguiremos implementar los servicios de '''proxy inverso''', '''https''', la '''web de higiene postural''' y la '''base de datos''' encargada de guardar la información de nuestra web a partir de un '''docker-compose''' que nos automatizará toda la configuración de estos servicios. Asimismo, deberemos instalar y configurar de manera manual el dispositivo de seguridad '''WAF'''  
 
Aclarado esto, en nuestro caso conseguiremos implementar los servicios de '''proxy inverso''', '''https''', la '''web de higiene postural''' y la '''base de datos''' encargada de guardar la información de nuestra web a partir de un '''docker-compose''' que nos automatizará toda la configuración de estos servicios. Asimismo, deberemos instalar y configurar de manera manual el dispositivo de seguridad '''WAF'''  
  

Revisió del 16:12, 1 abr 2022

Introducción

En torno a la accesibilidad externa a los servicios (proxy inverso, WAF, etc.), ha sido realizado a través del software Docker, un software de código abierto que nos automatizará los despliegues de aplicaciones/servicios dentro de contenedores de software con el que conseguiremos una mayor seguridad en nuestros servicios, dado que, logramos conseguir una capa adicional de abstracción y además una automatización de virtualización de aplicaciones/servicios de múltiples sistemas operativos existentes actualmente.

Implementación de servicios

Aclarado esto, en nuestro caso conseguiremos implementar los servicios de proxy inverso, https, la web de higiene postural y la base de datos encargada de guardar la información de nuestra web a partir de un docker-compose que nos automatizará toda la configuración de estos servicios. Asimismo, deberemos instalar y configurar de manera manual el dispositivo de seguridad WAF


Dockerfile

Escogemos la imagen donde haremos todas nuestra configuración, en nuestro caso será la siguiente:

 FROM jwilder/nginx-proxy
 
 RUN apt-get update && apt-get install nano git bison build-essential ca-certificates curl dh-autoreconf doxygen \
   flex gawk git iputils-ping libcurl4-gnutls-dev libexpat1-dev libgeoip-dev liblmdb-dev \
   libpcre3-dev libpcre++-dev libssl-dev libtool libxml2 libxml2-dev libyajl-dev locales \
   lua5.3-dev pkg-config wget zlib1g-dev libgd-dev libxslt-dev -y
 
 WORKDIR /app/

Docker-compose

 version: '3.3'
 
  services: 
 
   nginx_proxy:
     build:
       context: .
       dockerfile: Dockerfile
     container_name: nginx_proxy
     restart: unless-stopped
     ports:
       - 80:80
       - 443:443
     volumes:
       - /var/run/docker.sock:/tmp/docker.sock:ro
       - letsencrypt-certs:/etc/nginx/certs
       - letsencrypt-vhost-d:/etc/nginx/vhost.d
       - letsencrypt-html:/usr/share/nginx/html
       - conf-nginx:/etc/nginx
       - pers-app:/app
       - pers-opt:/opt
       - pers-usr-local:/usr/local
     networks:
       - web
 
   letsencrypt-proxy:
     image: jrcs/letsencrypt-nginx-proxy-companion
     container_name: letsencrypt-proxy
     restart: unless-stopped
     volumes:
       - /var/run/docker.sock:/var/run/docker.sock:ro
       - letsencrypt-certs:/etc/nginx/certs
       - letsencrypt-vhost-d:/etc/nginx/vhost.d
       - letsencrypt-html:/usr/share/nginx/html
     environment:
        DEFAULT_EMAIL: [email protected]
        NGINX_PROXY_CONTAINER: nginx_proxy
     networks:
       - web
 
   wordpress:
     container_name: wordpress
     image: wordpress:5.9.2
     restart: unless-stopped
     expose:
       - 443
     secrets:
       - db_user
       - db_password
       - db_name
     environment:
       WORDPRESS_DB_HOST: mysql_db
       WORDPRESS_DB_USER_FILE: /run/secrets/db_user
       WORDPRESS_DB_PASSWORD_FILE: /run/secrets/db_password
       WORDPRESS_DB_NAME_FILE: /run/secrets/db_name
       VIRTUAL_HOST: ietigrupo2cloudhb.tk, www.ietigrupo2cloudhb.tk
       LETSENCRYPT_HOST: ietigrupo2cloudhb.tk, www.ietigrupo2cloudhb.tk
       LETSENCRIPT_EMAIL: [email protected]
     volumes:
       - wordpress:/var/www/html
     depends_on:
       - mysql_db
     networks:
       - web
 
   mysql_db:
     container_name: mysql
     image: mysql:5.7.17
     restart: unless-stopped
     secrets:
       - db_user
       - db_password
       - db_name
       - db_password_root
     environment:
       MYSQL_DATABASE_FILE: /run/secrets/db_name
       MYSQL_USER_FILE: /run/secrets/db_user
       MYSQL_PASSWORD_FILE: /run/secrets/db_password
       MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db_password_root
     volumes:
       - mysql_db:/var/lib/mysql
     networks:
       - web
 
 secrets:
   db_user:
     file: creds/db_user.txt
   db_password:
     file: creds/db_password.txt
   db_name:
     file: creds/db_name.txt
   db_password_root:
     file: creds/db_password_root.txt
 
 volumes:
   wordpress:
   mysql_db:
   letsencrypt-certs:
   letsencrypt-vhost-d:
   letsencrypt-html:
   conf-nginx:
   pers-app:
   pers-opt:
   pers-usr-local:
 
 networks:
   web:
     external: true


Volver a IETI Cloud Grupo 2