viernes, 5 de noviembre de 2021

Como instalar GUI a Linux Ubuntu 20.04 y permitir acceso desde WIndows 11 por RDP (Con XFCE4)

En ocaciones muy particulares tendras la duda de como poder acceder a Ubuntu Linux Server mediante RDP, para este tipo de requerimietnos aun que NO es nada recomendable instalar una interface grafica a un server Linux, con fines educativos compartimos el como podrias tener GUI y RDP accediendo desde un equipo Windows 11 a Linux Ubuntu Server 20.04 

Ubuntu  commands

sudo apt update
sudo apt -y upgrade
sudo apt-get purge xrdp 
sudo apt install -y xrdp
sudo apt install -y xfce4
sudo apt install -y xfce4-goodies

sudo cp /etc/xrdp/xrdp.ini /etc/xrdp/xrdp.ini.bak
sudo sed -i 's/3389/3390/g' /etc/xrdp/xrdp.ini
sudo sed -i 's/max_bpp=32/#max_bpp=32\nmax_bpp=128/g' /etc/xrdp/xrdp.ini
sudo sed -i 's/xserverbpp=24/#xserverbpp=24\nxserverbpp=128/g' /etc/xrdp/xrdp.ini
echo xfce4-session > ~/.xsession

sudo vi /etc/xrdp/startwm.sh

Comenta las siguientes lineas#
#test -x /etc/X11/Xsession && exec /etc/X11/Xsession
#exec /bin/sh /etc/X11/Xsession
Agregar las siguientes lineas al final del archivo

# xfce
startxfce4

Guarda archivo y sal
ahora inicia el servicio

sudo /etc/init.d/xrdp start
Ahora puedes ingresar por RDP 
tuIPdeServidorUbuntu:3390

Video Ejemplo.


miércoles, 3 de noviembre de 2021

Oracle Cloud Infrastructure | Foundation | 1ra Parte

En la actualidad hoy 2021 oracle tiene mi total respeto y cariño, libero de forma gratuita toda la linea de educación para su nube. Certificación Oracle Cloud Infrastructure Foundation, professional, architech y mas. Me alegro mucho que compañías de el nivel de oracle cuenten con iniciativas como Microsoft con su MVA hoy docs, freshworks con su ITSM frameworks, amazon y Google. Contenido muy bueno y libre para ser consumido por esa mentalidad de hacker consumir mas información, practicar y estudio para el dominio de los temas de interés de IT.

OCI se creó específicamente para que comience a aprender Oracle Cloud Infrastructure y se familiarice con los fundamentos, lo cual de nuevo es una excelente idea tomando en cuenta que la nube para muchos en un mundo nuevo.
 

He tenido la suerte de pasar más de 10 años en el espacio de virtualización, en servidores,  workstation, en servidores, KVM, XEN, VirtualBox, VMware ESXi, VMware WorkStation a la evolución a nube y ser parte del equipo de Virtualización Cloud desde el principio.

OCI brindará el conocimiento, las habilidades y la confianza para aprobar el examen de fundamentos de OCI y, más allá de eso, le brindará el conocimiento básico necesario para los proyectos de OCI lo cual es genial para los que iniciamos con lo básico.
 

Comenzaremos con una introducción rápida de la plataforma OCI, y luego profundizaremos en futuros post los puntos  centrales, computación, almacenamiento, redes, identidad, bases de datos, seguridad y poco más. Cubriré arquitecturas impulsadas por eventos y servicios para desarrolladores. También hablaré sobre plataforma de Observabilidad y Gestión esto relacionado a las Capacidades Híbridas. Por último, pero no menos importante, hablaré sobre  SLA y opciones de soporte enterprise.

Overview

Algunas de las empresas más grandes del mundo están ejecutando sus cargas de trabajo de misión crítica en la plataforma de nube de próxima generación de Oracle, El Servicio de Oracle para nube lleva el nombre de OCI por su definición Oracle Cloud Infrastructure.

Para simplificar las cosas desglosémoslas en siete categorías principales: 

  1. Infraestructura central
  2. Servicios de bases de datos
  3. Datos e inteligencia artificial
  4. Análisis
  5. Gobernanza y administración
  6. Servicios para desarrolladores
  7. Servicios de aplicaciones.

 

 


Primero, la base de cualquier plataforma en la nube es la huella global de las regiones. Oracle tiene muchas regiones generalmente disponibles en el mundo, junto con soporte Multi-Cloud el cual soporte 

  • Microsoft Azure 
  • oferta híbrida diferenciada llamada Dedicated Region Cloud at Customer.


Oracle cuenta con bloques de construcción además de esta huella global, las siete categorías que acabamos de mencionar. En la parte inferior, tenemos las principales: 

  • computación
  • almacenamiento
  • redes. 
Los servicios informáticos cubren máquinas virtuales, servidores nativos, contenedores, un servicio Kubernetes administrado y un servicio VMWare administrado.


Estos servicios son principalmente para realizar cálculos, ejecutar lógica y ejecutar aplicaciones. El almacenamiento en la nube incluye discos conectados a máquinas virtuales, almacenamiento de archivos, almacenamiento de objetos, almacenamiento de servicios de migración de datos. OCI ofrece amplia gama de servicios para almacenamiento con esto podrás  almacenar, acceder, controlar y analizar datos estructurados o no estructurados.

Las funciones de red le permiten configurar redes privadas definidas por software en Oracle Cloud. OCI proporciona el conjunto más amplio y profundo de servicios de red a mi punto particular de experiencia.

Luego tenemos los servicios de base de datos, OCI cuenta con varios tipos de servicios de base de datos, tanto de Oracle como de código abierto. OCI a hoy en mi experiencia es la única nube que ejecuta bases de datos autónomas y varios sabores, incluidos OLTP, OLAP y JSON. (por favor si alguien tienen otro dato ampliar mi conocimiento con referencias, gracias. )

Podemos ejecutar bases de datos y máquinas virtuales, servidores Exadata en la nube. También puede ejecutar bases de datos de código abierto, como MySQL y NoSQL en Oracle Cloud Infrastructure.

Arquitectura OCI.

La arquitectura física de OCI, iniciamos con comentar que OCI cuenta con multiples regiones. La región es un área geográfica localizada que comprende uno o más dominios de disponibilidad.




Los medios de disponibilidad son uno o más centros de datos tolerantes a fallas ubicados dentro de una región, pero conectados entre sí por una red de baja latencia y alto ancho de banda. 

 Los dominios de falla son una agrupación de hardware e infraestructura dentro de un dominio de disponibilidad para proporcionar antiafinidad. Así que piense en estos como centros de datos lógicos.
 

OCI tiene una huella geográfica masiva en todo el mundo con múltiples regiones. Oracle cuenta con asociación de múltiples nubes con Microsoft Azure. Y tenemos una oferta de nube híbrida diferenciada llamada Dedicated Region Cloud @ Customer. 

¿Cómo eliges una región?. Lo primero es elegir una región, elige la región más cercana a sus usuarios para obtener la latencia más baja y el mayor rendimiento. Entonces ese es un criterio clave.

El segundo criterio clave es la residencia de datos y los requisitos de cumplimiento. Muchos países tienen requisitos estrictos de residencia de datos y debe cumplirlos. Entonces, elige una región en función de estos requisitos de cumplimiento.

El tercer criterio clave es la disponibilidad del servicio. Los nuevos servicios en la nube están disponibles en función de la demanda regional en ocasiones, las razones de cumplimiento normativo y la disponibilidad de recursos, y varios otros factores. Tenga en cuenta estos tres criterios al elegir una región.

Así que veamos cada uno de estos con un poco más de detalle. 

Dominio de disponibilidad.

Los dominios de disponibilidad están aislados entre sí, son tolerantes a errores y es muy poco probable que fallen simultáneamente. Debido a que los dominios de disponibilidad no comparten la infraestructura física, como la energía o la refrigeración o la red interna, es poco probable que una falla que afecte a un dominio de disponibilidad afecte la disponibilidad de otros.

 ¿Qué son los dominios de falla? 

Piense en que cada dominio de disponibilidad tiene tres dominios de falla. Por lo tanto, piense en los dominios de fallas como centros de datos lógicos dentro del dominio de disponibilidad.
 

La idea es colocar los recursos en diferentes dominios de falla, y no comparten un solo punto de falla de hardware, como servidores físicos, rack físico, tipo de conmutadores de rack, una unidad de distribución de energía. Puede obtener alta disponibilidad aprovechando los dominios de fallas.

También aprovechamos los dominios de fallas para nuestros propios servicios. Por lo tanto, en cualquier región, los recursos en la mayoría de los dominios de fallas se están modificando activamente en cualquier momento. Esto significa que los problemas de disponibilidad causados ​​por los procedimientos de cambio se aíslan en el nivel del dominio de errores. 

Además, puede controlar la ubicación de las instancias de la base de datos de su computadora en el dominio de fallas en el momento del lanzamiento de la instancia. Por tanto, puede especificar qué dominio de error desea utilizar.

¿cuál es la guía general? 

La guía general es que tenemos estas construcciones, como dominios de falla y dominios de disponibilidad, para ayudarlo a evitar puntos únicos de falla. Hacemos eso por nuestra cuenta.

Así que nos aseguramos de que los servidores, la parte superior del conmutador del bastidor, sean redundantes. Para que no tenga fallas de hardware oracle intenta minimizar esas fallas de hardware tanto como sea posible. (piensa en esto cuando diseñe su propia arquitectura de servicios).

Así que veamos un ejemplo. Tienes una región. Tienes un dominio de habilidad. Y como dijimos, un AD tiene tres dominios de falla, por lo que puede ver esos dominios de falla aquí.



Entonces, lo primero que debe hacer es cuando crea una aplicación, crea esta red virtual definida por software. Y luego digamos que es una aplicación muy simple. Tiene un nivel de aplicación. Tiene un nivel de base de datos.

Entonces, lo primero que puede hacer es ejecutar varias copias de su aplicación. Tiene un nivel de aplicación que se replica en los dominios de falla. Y luego tiene una base de datos, que también se replica en los dominios de fallas.

¿Por qué haces eso?

Bueno, te da esa capa extra de redundancia. algo le sucede a un dominio de falla, su aplicación aún está en funcionamiento. (Como lo que paso en estos semanas con mencionada AppWeb Social & mencionado Banco en México el cual se murieron sus servicios financieros a nivel nacional...... tu sabes quien eres...)

Ahora, para llevarlo al siguiente paso, puede replicar el mismo diseño en otro dominio de disponibilidad. Entonces podría tener dos copias de su aplicación ejecutándose. Y puede tener dos copias de su base de datos en ejecución. 

Ahora seguramente te estas preguntando ¿cómo se asegura de que sus datos estén sincronizados entre estas copias?. La respuesta esta en tecnologías como Oracle Data Guard para asegurarse de que los datos principales y en espera se mantengan sincronizados.

Creación de una cuenta de Oracle Cloud FreeTier. 

Pero ¿qué es Oracle Cloud FreeTier.? Oracle Cloud FreeTier le permite registrarse para obtener una cuenta de Oracle Cloud, que proporciona una serie de todos estos servicios gratuitos y una prueba gratuita, los $ 300 de crédito gratuito para usar en todos los servicios OCI elegibles por hasta 30 días. Entonces es una combinación de dos cosas diferentes. 

Hablemos un poco más sobre estos.

Los servicios Always Free están disponibles por un período de tiempo ilimitado para cualquier persona. La prueba gratuita, por otro lado, debe usarse hasta que se consuman sus $ 300 de créditos gratuitos o hasta que hayan expirado los 30 días, lo que ocurra primero. Por lo tanto, el proceso de creación de una cuenta de Oracle Cloud FreeTier es bastante sencillo. 

Déjame guiarte a través de esto.

Así que aquí estoy, estás en la página web Oracle.com/cloud/free. 


 

Y puede ver este botón aquí, que es Comenzar gratis. 

 


Si tuviera una cuenta existente, haría clic aquí, iniciaría sesión en Oracle Cloud y eso me permitiría ingresar a mi cuenta. 

Yo no tengo uno. Voy a explicarte cómo crear uno gratis.

 
Complete los formularios para poder continuar con las siguientes pantallas de registro.

NOTA importante mandatario, se solicitara Tarjeta de crédito, por lo que es mandatario contar con una para el registro, puede ser crédito / débito. 




Se envía un correo de notificación a tu cuenta registrada. 
 


 
Con estos pasos concluimos el registro, validación y verificación de ambiente Cloud.
 


 

Primer acceso a mi ambiente Cloud


Espero que el contenido de esta publicación les ayude a perderle el miedo a a prender y con esto tener en cuenta que todos tenemos la capacidad, solo es cuestión de estudiar, practicar y ampliar el campo de estudio a nuevos horizontes.


El post continuara para mayor información y continuidad del tema.

viernes, 29 de octubre de 2021

Windows Server 2016 | ¿Como retiro IPv6?

 En mi particular escenario como amante de las tecnologías de la información y apasionado por mi área de trabajo y estudio en muchos de mis escenarios cuanto trabajo en laboratorio en casa con mi ESXi 7 SP3 la mayoría de las Maquinas virtuales con Windows Server 2016 por default cuentan con configuración nativa a IPv6, Por este motivo cuando ejecuto mis configuraciones de DB o aplicativos la mayoría de mis aplicaciones no resuelven IPV6 y esto causa conflictos en la comunicaciones entre ellas cuando trabajo con laboratorios con nodos ESXi distintos. tratando de documentar lo que me ayuda en casa para eliminar esta configuración comparto el como si poder realizar la baja de IPV6 en ambientes Windows Server 2016 en laboratorios de auto estudio. 

Vídeo de ejemplo. 



martes, 26 de octubre de 2021

Laboratorio de pruebas windows 11 ¿Como lograr instalarlo?

Los que me rodean saben que me gusta estar probando distintas soluciones que salen al mercado, en mucha de ellas hay que darle tiempo estudio y practica, lo cual está receta de cocina es muy familiar pues toda la vida se a aplicado en mi pasa tiempos. Hoy nos toco hacer un laboratorio windows 11, lo instale en varios dispositivos desde un servidor Dell Power edge R40 con dual Xeon E5-2370v2 y 128GB de RAM hasta un acer con Intel átomo con 4GB de RAM y apenas 256GB de disco duro Mecanico. Inmediatamente a realizar un o usb BOOT e insertarlo para ingresar desde el archivo .ISO 



Inmediatamente después de pasar por la primera selección de versión a instalar ya el instalador nos está indicando que no es compatible / No hay soporte / etc. Muchas otras necesidades puntuales del instalador están justificadas en el sitio de microsoft, dando a la tarea y recordando que el sistema operativo windows 7 y windows vista en su momento también en las primeras versiones de .ISO sacadas al mercado tenían particularidades por lo que me di a la tarea a investigar un poco, entender básicamente el por qué no y el como si, dando como resultado la forma de pasar todos estos lineamientos que básicamente a mí me funcionaron tres 

  • Bypass TPA
  • Bypass RAM Check 
  • Bypass Secure boot check 


Con esto y modificando un poco el registro de .ISO que temporalmente se carga en memoria cuando iniciamos el USBBOOT nos dejo instalarlo en los siguientes dispositivos listados del menos potente al más potente 

- acer veriton vn282

- lenovo thinkPad T440

- servidor Dell Poweredge R420 

El método para instalación es totalmente normal a cualquier versión de windows, si alguna ocasión instalaste 7,8,10 la versión 11 no te dará problemas en su instalación ejecutando las siguientes modificaciones en el registro de sistema del USB. 


Vídeo Ejemplo en un ESXi 7 SP3

Vídeo Ejemplo en Virtual Box



Recomendaciones 

- no intentes instalarlo en el mismo disco duro donde tienes tu Os tema operativo de trabajo, escuela, hogar o pasa tiempos. 

- para fines educativos 👍, ver las mejoras este método es adecuado

- para fines de trabajo no es nada recomendable, de momento.

- actualiza el sistema y coloca una licencia válida de windows 10 👌

Espero tengas buenos resultados como yo con mis experimentos, el objetivo de esto es estudiar, aprender, practicar y compartir el conocimiento. 👍🏾 Hasta luego milo. 

domingo, 24 de octubre de 2021

Activando Windows Server 2016

 En ocaciones solo tienes recursos de descargas y tienes que hacer lo mejor con lo que tienes a la mano, en ese particular escenario hoy me doy a la tarea de compartir un pequeño comando que me ayudo en mucho de mis laboratorios en casa para auto estudio, 

todo inicio cuando compre una licencia en https://es.gvgmall.com/ la cual a funcionado a la perfección a lo largo de ya dos años, de igual manera compre licenciamiento para Windows 10 y ahora Windows 11 con la nueva salida de este Os. Previamente solo tenia el .ISO de Windows Server 2016 de evaluación, el cual como saben tienen un mensaje de activación pendiente y un periodo de evaluación en el escritorio que va en retroceso cada dia que pasa. 

Tenia ya la licencia adquirida y no me dejo el Os activarlo desde los metodos tradicionales desde el menu de activación de Windows Server por lo que me di a la tarea de buscar opciones, ya tenia mi inverción de licencia original no me conformaria solo con el periodo de valuación, la solucion fue el comando.....


dism /online /Set-Edition:ServerStandard  /AcceptEula /ProductKey:XXXX-XXXX-XXXX-XXXX-XXXX


Con este comando y tras un reinicio del sistema logre tener mi sistema operativo licenciado, actualizado y sin ese mensaje de Windows Server 2016 Standard Evaluation en el escritorio, de igual forma se aperturaron distintas opciones de perzonalización que anteriormente no contaba, totalmente recomendado tener el licencimainto en forma para nuestros laboratorios en casa para auto estudio. 

viernes, 4 de junio de 2021

Ubuntu 20.04.2 LTS | Actualizar y instalar NGINX de forma automatica en script automatico

Tras estar esta semana estudiando los temas de Os Ubuntu 20.04.2 LTS cuando uno de los colegas me preguntaba si en escribir los comandos en terminar concatenados podriamos hacer que se instalara de forma automatica el servicio de web server, pensando en que no tenemos opciones de instalar docker y hacer desplieges a la viaje escuela es por ello que comparto este sencillo script  que para los que inician en este mundo de IT se den una idea de como poder iniciar a penzar en la automatización de una forma practica y muy descritiva.

 

Programa

#!/bin/bash
# Inicio de programa
echo "actualizando completamente sistema operativo"
echo "por favor coloca contraseña de super usuario"
sudo apt-get update && sudo apt-get -y dist-upgrade
echo " Instalando servicio de FireWall"
sudo apt install ufw
sudo apt update -y
sudo apt install default-jre -y
sudo apt install default-jdk -y
echo "Instalación de WebService nginx"
sudo apt install nginx -y
echo "Muestra la lista de Firewall permitidos de web server"
 sudo ufw app list | grep Nginx
echo "Inicia servicios de Web Server"
systemctl status nginx
sudo ufw allow 'Nginx HTTP'
echo "Instalación de Nginx concluida"
# Fin de programa

 

 Video de ejemplo de su ejecución y resultados.  


 

martes, 1 de junio de 2021

ELK | Elasticsearch, Logstash y Kibana en Ubuntu 21.04 ¿funciona a su reciente liberación?


Como saben el pasado 22 de abril de 2021 Canonical lanzó Ubuntu 21.04 con integración nativa de Microsoft Active Directory, gráficos Wayland de forma predeterminada y un SDK de desarrollo de aplicaciones Flutter. Por separado, Canonical y Microsoft anunciaron la optimización del rendimiento y el soporte conjunto para Microsoft SQL Server en Ubuntu, esta ultima una excelente noticia para los amantes del sistema operativo Ubuntu para entornos profesionales.

La integración nativa de Active Directory y Microsoft SQL Server certificado en Ubuntu son las principales prioridades indico Mark Shuttleworth, director ejecutivo de Canonical.

Aun no se encuentra como una versión LTS, pero la pregunta que me lanzo uno de mis sobrinos fue ¿y por que no instalamos la ultima versión para probar su estabilidad y optimización de recursos que indica Canonical. Por esto ultimo es que ahora en este Post vamos a replicar. como en el post pasado las instrucciones en terminal para ejecutar la instalación y configuración de ELK aplican de igual forma a versiones anteriores por lo que tomaremos de referencia esos comandos publicados en el post anterior en este LINK

Primero los Pre requerimientos de buena practica 

1.- Actualizar completamente tu sistema operativo, este cerrara las oportunidades de mejora del propio Os y cerrara brechas de seguridad del sistema operativo. 

 El comando en terminal que usaremos es

 sudo apt-get update && sudo apt-get upgrade -y

Para fines de tener claridad de estar en el sistema operativo correcto y el hostname correcto, validamos estos dos últimos con los comandos.

cat /etc/issue.net

hostname

 

2.- Instalación de NGINX

Para leer el post publicado anteriormente por favor ve a este LINK

 Comando de instalación nginx

sudo apt install nginx 

(previamente actualizamos todo el Os)

Con el comando curl validaremos que el servicio del web server esta ok

Comando de validación  curl -4 ubuntusrv.oposada.mx

Resultado esperado (algo similar en tu ambiente, cambiara según personalizaciones.)

UFW es el firewall de Ubuntu Server, con el siguiente comando lo que indicamos al sistema operativo es que el trafico este permitido sin restricciones a http y https

 sudo ufw allow 'Nginx HTTP' 

 

Ahora listamos los permisos por aplicación segun su trafico, el nombre de la aplicación Nginx, trafico http y https

sudo ufw app list | grep Nginx 

 

A este punto, todo esta ok. para fines de hacer esto algo mas interesante vamos a agregar resolución por nombre FQDN, fully qualified domain name para que nuestro equipo local resuelva por nombre configurando el nombre en nuestro archivo host local, para esto vamos a ejecutar de nuestro sistema operativo (suponiendo que estas usando windows 10)


Accedemos  y vamos a etc

Aquí, en este directorio como podemos ver tenemos varios archivos, la buena practica en cualquier actividad en producción es tener un respaldo, un archivo de configuración o estado actual del ambiente que vamos a manipular previo a los cambios, de tal forma que, en el escenario que algo salga mal..... tengamos un punto de restauración seguro con el cual podamos continuar con la continuidad del servicio.

Abrimos el archivo host en el edutor de texto de nuestra elección,

 
En mi particular gusto, yo uso Sublime text  con el edito el archivo hosts y agrego la linea que indica dirección IP y nombre para resolver localmente,de tal forma diciendo de otro modo la dirección 192.168.0.20 la resolverá en el navegador como ubuntusrv.oposada.mx así de fácil.


Validamos accediendo desde nuestro navegador favorito a la dirección FQDN, fully qualified domain name y ya podra resolverlo nuestro equipo local.

 3.- Instalación de ELK

Para los que estan atentos a los post, ya escribi sobre ELK en el post del siguiente LINK

 Vamos a los comandos, Usaremos Curl para importar la clave GPG pública de Elasticsearch a APT.


curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

continuaremos  agregando a lista de fuentes de Elastic al directorio sources.list.d, donde APT buscará nuevas fuentes:

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list

Instalación de elasticsearch

Comando sudo apt install elasticsearch


Hasta este Punto todo bien. 


Ejecutamos el comando 

sudo vi /etc/elasticsearch/elasticsearch.yml

 

Ahora con el archivo configurado para el trafico a localhost podemos continuar con la definición del site disponible y el site activo y la definiciónde usuario y password. 


Iniciemos con la restricción de usuario, como saben por default elastic te permite el acceso sin ningún tipo de restricción lo cual para ambientes de laboratorio es ok, pero en ambientes pre productivos o productivos no es opción, por lo que con el siguiente comando definiremos un usuario y password el cual después de va a encriptar para no poder ser leído desde el archivo htpasswd.users.

echo "oposada:`openssl passwd Temporal.2021`" | sudo tee -a /etc/nginx/htpasswd.users

 
 

ahora continuamos definiendo el dominio y el archivo de configuraciónde ese dominio

comando /etc/nginx/sites-available/nombre_de_tu_dominio

 

ejemplo del comando ejecutado

sudo vi /etc/nginx/sites-available/ubuntusrv.oposada.mx

en el contenido del dominio coloque 

 

server {
    listen 80;

    server_name ubuntusrv.oposada.mx;

    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/htpasswd.users;

    location / {
        proxy_pass http://localhost:5601;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

 

donde el valor de valor aqui es    server_name ubuntusrv.oposada.mx; donde "ubuntusrv.oposada.mx" es el critico con el cual hay que tener cuidado, este tiene que tener el mismo nombre para el link simbólico que ejecutaremos a continuación. 


sudo ln -s /etc/nginx/sites-available/ubuntusrv.oposada.mx /etc/nginx/sites-enabled/ubuntusrv.oposada.mx

Validamos que los archivos configurados esten en ok con el comando siguiente

sudo nginx -t

 tendriamos que tener como salida estándar algo como esto  

oposada@ubuntusrv:/etc/nginx/sites-available$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Reiniciamos el web server nginxcon el comando siguiente

sudo systemctl reload nginx




 


 


viernes, 21 de mayo de 2021

ELK, Elastic Stack en tu ambiente GNU/Linux Ubuntu Server 20.04

 Vamos desde el inicio, ¿Que ....... es ELK?

 

Una imagen dice mas que mil palabras. 


 ELK es el nombre que se le da al stack de soluciones de elastic pare referir a los proyectos open source Elasticsearch, Logstash y Kibana.

 En pocas palabras sin demeritar el excelente trabajo que a realizado los integrantes de este proyecto Elasticsearch es un motor de búsqueda y analítica.

Logstash es un pipeline de procesamiento de datos del lado del servidor que ingesta datos de una multitud de fuentes simultáneamente, los transforma y luego los envía a  Elasticsearch.

Kibana permite a usuarios visualizar los datos en gráficos con Elasticsearch.

Todo esto gracias al motor de búsqueda de código abierto distribuido RESTful, basado en JSON. esto ayuda en mucho a ser menos complejo de utilizar, totalmente escalable y súper flexible. por estos atributos inicio a tener mucha popularidad hasta el día de hoy de ser una de las tecnologías para manejo, analítica y visualización de datos muy popular entre los usuarios, compañías y departamentos de IT.


¡Cuando algo es bueno, muchos queremos aprenderlo y usarlo!

Logstash + Kibana sumaron funcionalidades que el stack necesitaba, mejoraron con el paso del tiempo, los usuarios lo estudiaron, aprendieron y creció su popularidad por una sencilla razón ¡funciona!, soy usuario, en mi particular opinión, hace lo que esta diseñada para hacer y con conocimientos, ganas e interés puedes lograr desarrollar una plataforma de recolección de datos, alarmas, Monitoreo, dando cumplimiento a la gestión de activos, gestión de consulta de información, gestión de monitoreo incluso con el desarrollo adecuado gestión de incidentes con ijntegraci9ones a terceros. Ahora con la integración de Beat que prácticamente recolecta información a nivel performance de equipos, servidores, desktop no dudo que muchos como nosotros lo estén aplicando para sistemas de monitoreo de performance (Monitoreo de CPU, Memoria, Red, procesos, Disponibilidad por ICMP).

ahora iniciemos la instalación de este excelente stack. (para que veas que no es ciencia de la nasa "tu sabes quien eres")

Si partimos de "no tengo ni idea de como puedo iniciar" amigo estas en problemas, hay ciertos conocimientos de IT / Sistemas / Computación o como le digas a rama de estudio de informática en tu país que si o si tienes que saber previo a meterte en el juego de ELK.

Recomendación

Para ti amigo amante de IT, es necesario que tengas en mente que esto no es excel y puedes usarlo de forma empírica, necesitas que botón presionar en el avión para que no lo estrelles.

Ayudaría mucho que comprendieras o trabajas con un tiempo de aproximadamente 1 a 2 años con sistemas operativos Linux, distribuciones como Ubuntu Server, Centos (RIP), Red Hat Enterprise Server ayudaran mucho a tu camino. 

Conocimiento basicos (de menos) en  RESTful, Json y SQL- en el mejor de los escenarios conocimientos medios de Os Linux, Json, Programación, SQL, ETL, BigData. esto ayuda un mucho. 

Requerimientos de ambiente

  • Un servidor de Ubuntu 20.04, con Mínimo 4 GB de RAM y 2 CPU configuradas con un usuario sudo no root. 

    Ten en cuenta que la cantidad de CPU, RAM y almacenamiento que su servidor de Elasticsearch requiera dependerá del volumen de registros que prevé.

  • OpenJDK 11 instalado. 

  • Nginx instalado en su servidor, Para configurar, siga esta guía 



    Instalación del primer modulo de ELK

    Después de instalar tu Ubuntu Server y actualizar toda tu distribución, tomando en cuenta los pre requerimientos previos mencionados, continuamos con la instalación del producto. Usaremos Curl para importar la clave GPG pública de Elasticsearch a APT

    curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

continuaremos  agregando a lista de fuentes de Elastic al directorio sources.list.d, donde APT buscará nuevas fuentes:

echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
 

Actualizamos la lista de paquetes de APT

sudo apt update

Continuaremos por instalar elasticsearch con el siguiente comando.

sudo apt install elasticsearch

Ahora que esta  instalado utilizaremos el editor vi para modificar el archivi .yml

sudo vi /etc/elasticsearch/elasticsearch.yml

elasticsearch.yml ofrece opciones de configuración para clúster, nodo, rutas, memoria, red, detección y puerta de enlace. La mayoría de estas opciones están preconfiguradas en el archivo, pero las puede cambiar según sus necesidades.  Elasticsearch escucha todo el tráfico de todo origen por pyuerto 9200. Es recomendable restringir el acceso externo a su instancia de Elasticsearch para evitar que terceros lean sus datos o cierren su clúster de Elasticsearch.

en el archivo /etc/elasticsearch/elasticsearch.yml

ve a network.host y configuralo para localhost con esto podemos iniciar elasticsearch con el siguiente comando desde terminar.

sudo systemctl start elasticsearch

Ahora si tienes intenciones que tu instancia inicie cuando el servidor se reinicie por alguna actualización o razon ejecuta el siguiente comando para declrar que inicie automaticamente.

sudo systemctl enable elasticsearch

Para validar que el modulo se encunetra en ejecución puedes correr el siguiente comando.

curl -X GET "localhost:9200"

Instalación de Kibana

Para su instalación ejecutamos el siguiente comando

sudo apt install kibana

Para indicarle al sistema que inicie kibana cuando el equipo se reinicie ejecutamos el siguiente comando

sudo systemctl enable kibana
 

Iniciamos el servicio de Kibana con el siguiente comando.

sudo systemctl start kibana

Ahora ya tenemos nuestro segundo modulo de ELK, pero por seguridad requiere autenticación para acceso autorizado. 

para espesificar un usuario y password puede ejecutar el siguiente comando

echo "usuario:`openssl passwd mipassworddekibana" | sudo tee -a /etc/nginx/htpasswd.users

echo "oposada:`openssl passwd Temporal.2021`" | sudo tee -a /etc/nginx/htpasswd.users

 

Ahora crearemos el sitio para que el web service lo identifique y envie las configuraciones previamente creadas.
 
sudo vi /etc/nginx/sites-available/your_domain

server {
    listen 80;

    server_name your_domain;

    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/htpasswd.users;

    location / {
        proxy_pass http://localhost:5601;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
        proxy_set_header Host $host;
        proxy_cache_bypass $http_upgrade;
    }
}

 

sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/your_domain

Reiniciamos nginx

sudo nginx -t

Ejecutamos el reload de nginx

sudo systemctl reload nginx

Permitimos que firewall de servidor permita el trafico 

sudo ufw allow 'Nginx Full'

Validamos que este corriendo el status en nuestro navegador

http://your_domain/status


### Video de ejemplo ####


 

viernes, 14 de mayo de 2021

Administración de Sistemas Operativos LInux | Como modificar el mensaje de bienvenidda por Secure Shell

Cuando administramos Sistemas operativos Linux es muy común encontrar mensajes de bienvenidas al acceder a un servidor, equipo o dispositivo con GNU/Linux. Pensaras que tendria que ser algo complejo cambiar esto, pero nada que ver, tan simple como colocar el mensaje que requieras en un archivo con la rula /etc/motd y podemos cambiar de esto que ya esta pre definido 

oposada@NTSRV023:~$ ssh oposada@10.50.32.23
oposada@192.168.0.133's password:
Linux elastic.oposada.mx 4.19.0-13-amd64 #1 SMP Debian 4.19.160-2 (2020-11-28) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Fri May 14 08:58:06 2020 from oposada.srv075
oposada@elastic:~ $


a algo como esto


oposada@NTSRV023:~$ ssh oposada@10.50.32.23

oposada@10.50.32.23's password:
Linux elastic.oposada.mx 4.19.0-13-amd64 #1 SMP Debian 4.19.160-2 (2020-11-28) x86_64
                                                                 #####
                                                                #######
                   #                                            ##O#O##
  ######          ###                                           #VVVVV#
    ##             #                                          ##  VVV  ##
    ##         ###    ### ####   ###    ###  ##### #####     #          ##
    ##        #  ##    ###    ##  ##     ##    ##   ##      #            ##
    ##       #   ##    ##     ##  ##     ##      ###        #            ###
    ##          ###    ##     ##  ##     ##      ###       QQ#           ##Q
    ##       # ###     ##     ##  ##     ##     ## ##    QQQQQQ#       #QQQQQQ
    ##      ## ### #   ##     ##  ###   ###    ##   ##   QQQQQQQ#     #QQQQQQQ
  ############  ###   ####   ####   #### ### ##### #####   QQQQQ#######QQQQQ
------------------------------------------------------------------ ELK STACK
Last login: Fri May 14 09:31:04 2021 from
oposada.srv075

oposada@elastic:~ $

Esto posible con la edición del archivo motd contenido en el directorio /etc, para esta modificación no es necesario reiniciar ningún demonio, es prácticamente en vivo.

jueves, 13 de mayo de 2021

Cómo instalar Elasticsearch, Logstash y Kibana (Elastic Stack) en Debian GNU/Linux 10 (primera parte)

¿Qué es Elasticsearch?


Elasticsearch es un motor de analítica y análisis distribuido, gratuito y abierto para todos los tipos de datos, incluidos textuales, numéricos, geoespaciales, estructurados y no estructurados. Elasticsearch está desarrollado a partir de Apache Lucene y fue presentado por primera vez en 2010 por Elasticsearch N.V. (ahora conocido como Elastic). Conocido por sus API REST simples, naturaleza distribuida, velocidad y escalabilidad, Elasticsearch es el componente principal del Elastic Stack, un conjunto de herramientas gratuitas y abiertas para la ingesta, el enriquecimiento, el almacenamiento, el análisis y la visualización de datos. Comúnmente denominado el ELK Stack (por Elasticsearch, Logstash y Kibana), el Elastic Stack ahora incluye una gran colección de agentes ligeros conocidos como Beats para enviar los datos a Elasticsearch.


¿Para qué se usa Elasticsearch?


La velocidad y escalabilidad de Elasticsearch y su capacidad de indexar muchos tipos de contenido significan que puede usarse para una variedad de casos de uso:
  • Búsqueda de aplicaciones
  • Búsqueda de sitio web
  • Búsqueda Empresarial
  • Logging y analíticas de log
  • Métricas de infraestructura y monitoreo de contenedores
  • Monitoreo de rendimiento de aplicaciones
  • Análisis y visualización de datos geoespaciales
  • Analítica de Seguridad
  • Analítica de Negocios

¿Cómo funciona Elasticsearch?
Los datos sin procesar fluyen hacia Elasticsearch desde una variedad de fuentes, incluidos logs, métricas de sistema y aplicaciones web. La ingesta de datos es el proceso mediante el cual estos datos son parseados, normalizados y enriquecidos antes de su indexación en Elasticsearch. Una vez indexados en Elasticsearch, los usuarios pueden ejecutar consultas complejas sobre sus datos y usar agregaciones para recuperar resúmenes complejos de sus datos. Desde Kibana, los usuarios crean visualizaciones poderosas de sus datos, comparten dashboards y gestionan el Elastic Stack.

¿Qué es un índice de Elasticsearch?

Un índice de Elasticsearch es una colección de documentos relacionados entre sí. Elasticsearch almacena datos como documentos JSON. Cada documento correlaciona un conjunto de claves (nombres de campos o propiedades) con sus valores correspondientes (textos, números, Booleanos, fechas, variedades de valores, geolocalizaciones u otros tipos de datos).


Elasticsearch usar una estructura de datos llamada índice invertido, que está diseñado para permitir búsquedas de texto completo muy rápidas. Un índice invertido hace una lista de cada palabra única que aparece en cualquier documento e identifica todos los documentos en que ocurre cada palabra.

Durante el proceso de indexación, Elasticsearch almacena documentos y construye un índice invertido para poder buscar datos en el documento casi en tiempo real. La indexación comienza con la API de índice, a través de la cual puedes agregar o actualizar un documento JSON en un índice específico.
¿Para qué se usa Logstash?
Logstash, uno de los productos principales del Elastic Stack, se usa para agregar y procesar datos y enviarlos a Elasticsearch. Logstash es una pipeline de procesamiento de datos open source y del lado del servidor que te permite ingestar datos de múltiples fuentes simultáneamente y enriquecerlos y transformarlos antes de que se indexen en Elasticsearch.

¿Para qué se usa Kibana?


Kibana es una herramienta de visualización y gestión de datos para Elasticsearch que brinda histogramas en tiempo real, gráficos circulares y mapas. Kibana también incluye aplicaciones avanzadas, como Canvas, que permite a los usuarios crear infografías dinámicas personalizadas con base en sus datos, y Elastic Maps para visualizar los datos geoespaciales.


¿Por qué usar Elasticsearch?


Elasticsearch es rápido. Como Elasticsearch está desarrollado sobre Lucene, es excelente en la búsqueda de texto completo. Elasticsearch también es una plataforma de búsqueda en casi tiempo real, lo que implica que la latencia entre el momento en que se indexa un documento hasta el momento en que se puede buscar en él es muy breve: típicamente, un segundo. Como resultado, Elasticsearch está bien preparado para casos de uso con restricciones de tiempo como analítica de seguridad y monitoreo de infraestructura.

Elasticsearch es distribuido por naturaleza. Los documentos almacenados en Elasticsearch se distribuyen en distintos contenedores conocidos como shards, que están duplicados para brindar copias redundantes de los datos en caso de que falle el hardware. La naturaleza distribuida de Elasticsearch le permite escalar horizontalmente a cientos (o incluso miles) de servidores y gestionar petabytes de datos.

Elasticsearch viene con un amplio conjunto de características. Además de su velocidad, la escalabilidad y la resistencia, Elasticsearch tiene una cantidad de características integradas poderosas que contribuyen a que el almacenamiento y la búsqueda de datos sean incluso más eficientes, como data rollup y gestión de ciclo de vida del índice.

El Elastic Stack simplifica la ingesta de datos, la visualización y el reporte. La integración con Beats y Logstash facilita el proceso de datos antes de indexarlos en Elasticsearch. Y Kibana provee visualización en tiempo real de los datos de Elasticsearch así como UI para acceder rápidamente al monitoreo de rendimiento de aplicaciones (APM), los logs y los datos de métricas de infraestructura.
¿Qué lenguajes de programación soporta Elasticsearch?


Elasticsearch soporta una variedad de lenguajes y hay clientes oficiales para los siguientes:
Java
JavaScript (Node.js)
Go
.NET (C#)
PHP
Perl
Python
Ruby

Fuente: https://www.elastic.co/


Instalación

Arquitectura a montar Elastic Stack en ambiente fisico con recursos minimos

CPU Atom 1.0 ghz

4GB RAM DDR3 1200

500GB SSD

ETH0

WLAN

Os Debian GNU/Linux 10
 

Módulos del Stack

Elastic Stack cuenta con cuatro componentes principales:
Elasticsearch: motor de búsqueda de RESTfuldistribuido que almacena todos los datos recopilados.
Logstash: componente de procesamiento de datos de Elastic Stack que envía datos entrantes a Elasticsearch.
Kibana: interfaz web para buscar y visualizar registros.
Beats: transportadores de datos ligeros de uso único que pueden enviar datos de cientos o miles de máquinas a Logstash o Elasticsearch.

Preparando entono

Primero agregaremos un usuario a nivel Os el cual nos ayudará a tener mejor control y administración de recursos segun su rol, para ello ejecutaremos el comando en terminal
 

pi@elastic:~ $ sudo adduser oposada
Adding user `oposada' ...
Adding new group `oposada' (1001) ...
Adding new user `oposada' (1001) with group `oposada' ...
Creating home directory `/home/oposada' ...
Copying files from `/etc/skel' ...
New password:
Retype new password:
passwd: password updated successfully
Changing the user information for oposada
Enter the new value, or press ENTER for the default
Full Name []: Oscar Omar Posada Sanchez
Room Number []: 23
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
pi@elastic:~ $


Segundo, salir del usuario actual y acceder con el usuario ya previamente creado para iniciar con los modulos.

pi@elastic:~ $ exit
logout
Connection to 192.168.0.133 closed.
oposada@NTSRV023:~$ ssh oposada@192.168.0.133
oposada@192.168.0.133's password:
Linux elastic.oposada.mx 4.19.0-13-amd64 #1 SMP Debian 4.19.160-2 (2020-11-28) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
oposada@elastic:~ $



Como notara, ya tiene un mensaje de bienvenida cuando nos firmamos por SSH, ya en ocaciones pasadas publique como editar este mensaje por lo que no tocaremos este tema en este momento.

Iniciamos validando que el Linux Debian se encuentre totalmente actualizado.


sudo apt install update && sudo apt install upgrade -y

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.

[sudo] password for oposada:
oposada is not in the sudoers file. This incident will be reported.


Cuando creamos el usuario con el cual trabajaremos la gestión del sistema operativo y la administración de nuestra stack de elastic, kibana y el resto de los modulos no entregamos permisoso para super usuario, para esto es requerido que definamos este rol de ejecución.

Para esto es requerido firmarnos con un usuario el cual pueda editar con el siguiente comando la linea

pi@elastic:~ $ sudo visudo


y buscar y colocar la linea con el usuario seguido de los permisos, en este laboratorio su servidor coloco su usuario el cual previamente creo a nivel sistema operativo y entrego todos los permisos para ejecición. En negritas la linea que se agrego al archivo de configuración visudo.


# User privilege specification
root ALL=(ALL:ALL) ALL
oposada ALL=(ALL:ALL) ALL



Regreso al usuario y confirmo con la ejecución de comandos con sudo


oposada@elastic:~ $ sudo apt-get update && sudo apt-get upgrade -y
Hit:1 http://ftp.debian.org/debian buster InRelease
Hit:2 http://archive.raspberrypi.org/debian buster InRelease
Hit:3 http://security.debian.org buster/updates InRelease
Hit:4 http://ftp.debian.org/debian buster-updates InRelease
Reading package lists... Done
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
linux-image-amd64:amd64
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
oposada@elastic:~ $


Con esto configurado a nivel sistema operativo ya tenemos el rol adecuado para poder iniciar a instalar los paquetes necesarios para ejecutar el stack.

Firewall

Todo ambiente en producción cuenta con el firewall cal / acl / lista blanca / etc, por esto es buena practica tratar de utilizar el ambiente lo mas apegado a producción posible, bajo este esquema instalaremos el firewall a sistema operativo Linux Debian con el cual permiteremos el trafico de entrada a cierto puerto en concreto, evitando todo el resto del trafico incluuido respuesta por ICMP.+

oposada@elastic:~ $ sudo apt install ufw
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
ufw
0 upgraded, 1 newly installed, 0 to remove and 1 not upgraded.
Need to get 164 kB of archives.
After this operation, 852 kB of additional disk space will be used.
Get:1 http://ftp.debian.org/debian buster/main i386 ufw all 0.36-1 [164 kB]
Fetched 164 kB in 0s (658 kB/s)
Preconfiguring packages ...
Selecting previously unselected package ufw.
(Reading database ... 161602 files and directories currently installed.)
Preparing to unpack .../archives/ufw_0.36-1_all.deb ...
Unpacking ufw (0.36-1) ...
Setting up ufw (0.36-1) ...

Creating config file /etc/ufw/before.rules with new version

Creating config file /etc/ufw/before6.rules with new version

Creating config file /etc/ufw/after.rules with new version

Creating config file /etc/ufw/after6.rules with new version
Created symlink /etc/systemd/system/multi-user.target.wants/ufw.service -> /lib/system
d/system/ufw.service.
Processing triggers for man-db (2.8.5-2) ...
Processing triggers for rsyslog (8.1901.0-1) ...
Processing triggers for systemd (241-7~deb10u7) ...
oposada@elastic:~ $ sudo ufw status
Status: inactive


Permitimos el acceso remoto mediante ssh con el comando

sudo ufw allow openssh

Instalación de requerimientos previos a stack elastic


oposada@elastic:~ $ sudo apt update
Hit:1 http://security.debian.org buster/updates InRelease
Hit:2 http://ftp.debian.org/debian buster InRelease
Get:3 http://archive.raspberrypi.org/debian buster InRelease [32.9 kB]
Hit:4 http://ftp.debian.org/debian buster-updates InRelease
Get:5 http://archive.raspberrypi.org/debian buster/main amd64 Packages [196 kB]
Fetched 229 kB in 3s (65.8 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
1 package can be upgraded. Run 'apt list --upgradable' to see it.
oposada@elastic:~ $ java -version
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-post-Debian-1deb10u1)
OpenJDK Server VM (build 11.0.11+9-post-Debian-1deb10u1, mixed mode, sharing)
oposada@elastic:~ $ java -version
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-post-Debian-1deb10u1)
OpenJDK Server VM (build 11.0.11+9-post-Debian-1deb10u1, mixed mode, sharing)
oposada@elastic:~ $ sudo apt install default-jre
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
default-jre-headless
The following NEW packages will be installed:
default-jre default-jre-headless
0 upgraded, 2 newly installed, 0 to remove and 1 not upgraded.
Need to get 11.9 kB of archives.
After this operation, 26.6 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://ftp.debian.org/debian buster/main i386 default-jre-headless i386 2:1.11-71 [10.9 kB]
Get:2 http://ftp.debian.org/debian buster/main i386 default-jre i386 2:1.11-71 [1,044 B]
Fetched 11.9 kB in 0s (56.0 kB/s)
Selecting previously unselected package default-jre-headless.
(Reading database ... 161710 files and directories currently installed.)
Preparing to unpack .../default-jre-headless_2%3a1.11-71_i386.deb ...
Unpacking default-jre-headless (2:1.11-71) ...
Selecting previously unselected package default-jre.
Preparing to unpack .../default-jre_2%3a1.11-71_i386.deb ...
Unpacking default-jre (2:1.11-71) ...
Setting up default-jre-headless (2:1.11-71) ...
Setting up default-jre (2:1.11-71) ...
oposada@elastic:~ $ java -version
openjdk version "11.0.11" 2021-04-20
OpenJDK Runtime Environment (build 11.0.11+9-post-Debian-1deb10u1)
OpenJDK Server VM (build 11.0.11+9-post-Debian-1deb10u1, mixed mode, sharing)
oposada@elastic:~ $ sudo apt install default-jdk
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
default-jdk-headless
The following NEW packages will be installed:
default-jdk default-jdk-headless
0 upgraded, 2 newly installed, 0 to remove and 1 not upgraded.
Need to get 2,160 B of archives.
After this operation, 12.3 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://ftp.debian.org/debian buster/main i386 default-jdk-headless i386 2:1.11-71 [1,104 B]
Get:2 http://ftp.debian.org/debian buster/main i386 default-jdk i386 2:1.11-71 [1,056 B]
Fetched 2,160 B in 1s (3,797 B/s)
Selecting previously unselected package default-jdk-headless.
(Reading database ... 161715 files and directories currently installed.)
Preparing to unpack .../default-jdk-headless_2%3a1.11-71_i386.deb ...
Unpacking default-jdk-headless (2:1.11-71) ...
Selecting previously unselected package default-jdk.
Preparing to unpack .../default-jdk_2%3a1.11-71_i386.deb ...
Unpacking default-jdk (2:1.11-71) ...
Setting up default-jdk-headless (2:1.11-71) ...
Setting up default-jdk (2:1.11-71) ...
oposada@elastic:~ $ javac -version

javac 11.0.11

Con ello tenemos paquetes basicos para poder ejecutar nuestro ambiente sin problemas o dependencias.

para continuar damos paso a nginx el cual tendra el rol de aplicación web server, la instalación es mediante la ejecución de los siguientes comandos.

oposada@elastic:~ $ sudo apt install nginx
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libnginx-mod-http-auth-pam libnginx-mod-http-dav-ext libnginx-mod-http-echo
libnginx-mod-http-geoip libnginx-mod-http-image-filter
libnginx-mod-http-subs-filter libnginx-mod-http-upstream-fair
libnginx-mod-http-xslt-filter libnginx-mod-mail libnginx-mod-stream nginx-common
nginx-full
Suggested packages:
fcgiwrap nginx-doc
The following NEW packages will be installed:
libnginx-mod-http-auth-pam libnginx-mod-http-dav-ext libnginx-mod-http-echo
libnginx-mod-http-geoip libnginx-mod-http-image-filter
libnginx-mod-http-subs-filter libnginx-mod-http-upstream-fair
libnginx-mod-http-xslt-filter libnginx-mod-mail libnginx-mod-stream nginx
nginx-common nginx-full
0 upgraded, 13 newly installed, 0 to remove and 1 not upgraded.
Need to get 1,809 kB of archives.
After this operation, 3,306 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://ftp.debian.org/debian buster/main i386 nginx-common all 1.14.2-2+deb10u3 [121 kB]
Get:2 http://ftp.debian.org/debian buster/main i386 libnginx-mod-http-auth-pam i386 1.14.2-2+deb10u3 [92.9 kB]
Get:3 http://ftp.debian.org/debian buster/main i386 libnginx-mod-http-dav-ext i386 1.14.2-2+deb10u3 [101 kB]
Get:4 http://ftp.debian.org/debian buster/main i386 libnginx-mod-http-echo i386 1.14.2-2+deb10u3 [105 kB]
Get:5 http://ftp.debian.org/debian buster/main i386 libnginx-mod-http-geoip i386 1.14.2-2+deb10u3 [94.3 kB]
Get:6 http://ftp.debian.org/debian buster/main i386 libnginx-mod-http-image-filter i386 1.14.2-2+deb10u3 [97.9 kB]
Get:7 http://ftp.debian.org/debian buster/main i386 libnginx-mod-http-subs-filter i386 1.14.2-2+deb10u3 [96.2 kB]
Get:8 http://ftp.debian.org/debian buster/main i386 libnginx-mod-http-upstream-fair i386 1.14.2-2+deb10u3 [96.3 kB]
Get:9 http://ftp.debian.org/debian buster/main i386 libnginx-mod-http-xslt-filter i386 1.14.2-2+deb10u3 [96.3 kB]
Get:10 http://ftp.debian.org/debian buster/main i386 libnginx-mod-mail i386 1.14.2-2+deb10u3 [127 kB]
Get:11 http://ftp.debian.org/debian buster/main i386 libnginx-mod-stream i386 1.14.2-2+deb10u3 [153 kB]
Get:12 http://ftp.debian.org/debian buster/main i386 nginx-full i386 1.14.2-2+deb10u3 [539 kB]
Get:13 http://ftp.debian.org/debian buster/main i386 nginx all 1.14.2-2+deb10u3 [88.4 kB]
Fetched 1,809 kB in 3s (621 kB/s)
Preconfiguring packages ...
Selecting previously unselected package nginx-common.
(Reading database ... 161717 files and directories currently installed.)
Preparing to unpack .../00-nginx-common_1.14.2-2+deb10u3_all.deb ...
Unpacking nginx-common (1.14.2-2+deb10u3) ...
Selecting previously unselected package libnginx-mod-http-auth-pam.
Preparing to unpack .../01-libnginx-mod-http-auth-pam_1.14.2-2+deb10u3_i386.deb ...
Unpacking libnginx-mod-http-auth-pam (1.14.2-2+deb10u3) ...
Selecting previously unselected package libnginx-mod-http-dav-ext.
Preparing to unpack .../02-libnginx-mod-http-dav-ext_1.14.2-2+deb10u3_i386.deb ...
Unpacking libnginx-mod-http-dav-ext (1.14.2-2+deb10u3) ...
Selecting previously unselected package libnginx-mod-http-echo.
Preparing to unpack .../03-libnginx-mod-http-echo_1.14.2-2+deb10u3_i386.deb ...
Unpacking libnginx-mod-http-echo (1.14.2-2+deb10u3) ...
Selecting previously unselected package libnginx-mod-http-geoip.
Preparing to unpack .../04-libnginx-mod-http-geoip_1.14.2-2+deb10u3_i386.deb ...
Unpacking libnginx-mod-http-geoip (1.14.2-2+deb10u3) ...
Selecting previously unselected package libnginx-mod-http-image-filter.
Preparing to unpack .../05-libnginx-mod-http-image-filter_1.14.2-2+deb10u3_i386.deb ..
.
Unpacking libnginx-mod-http-image-filter (1.14.2-2+deb10u3) ...
Selecting previously unselected package libnginx-mod-http-subs-filter.
Preparing to unpack .../06-libnginx-mod-http-subs-filter_1.14.2-2+deb10u3_i386.deb ...
Unpacking libnginx-mod-http-subs-filter (1.14.2-2+deb10u3) ...
Selecting previously unselected package libnginx-mod-http-upstream-fair.
Preparing to unpack .../07-libnginx-mod-http-upstream-fair_1.14.2-2+deb10u3_i386.deb .
..
Unpacking libnginx-mod-http-upstream-fair (1.14.2-2+deb10u3) ...
Selecting previously unselected package libnginx-mod-http-xslt-filter.
Preparing to unpack .../08-libnginx-mod-http-xslt-filter_1.14.2-2+deb10u3_i386.deb ...
Unpacking libnginx-mod-http-xslt-filter (1.14.2-2+deb10u3) ...
Selecting previously unselected package libnginx-mod-mail.
Preparing to unpack .../09-libnginx-mod-mail_1.14.2-2+deb10u3_i386.deb ...
Unpacking libnginx-mod-mail (1.14.2-2+deb10u3) ...
Selecting previously unselected package libnginx-mod-stream.
Preparing to unpack .../10-libnginx-mod-stream_1.14.2-2+deb10u3_i386.deb ...
Unpacking libnginx-mod-stream (1.14.2-2+deb10u3) ...
Selecting previously unselected package nginx-full.
Preparing to unpack .../11-nginx-full_1.14.2-2+deb10u3_i386.deb ...
Unpacking nginx-full (1.14.2-2+deb10u3) ...
Selecting previously unselected package nginx.
Preparing to unpack .../12-nginx_1.14.2-2+deb10u3_all.deb ...
Unpacking nginx (1.14.2-2+deb10u3) ...
Setting up nginx-common (1.14.2-2+deb10u3) ...
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service -> /lib/syst
emd/system/nginx.service.
Setting up libnginx-mod-http-xslt-filter (1.14.2-2+deb10u3) ...
Setting up libnginx-mod-http-auth-pam (1.14.2-2+deb10u3) ...
Setting up libnginx-mod-http-geoip (1.14.2-2+deb10u3) ...
Setting up libnginx-mod-http-echo (1.14.2-2+deb10u3) ...
Setting up libnginx-mod-http-subs-filter (1.14.2-2+deb10u3) ...
Setting up libnginx-mod-http-dav-ext (1.14.2-2+deb10u3) ...
Setting up libnginx-mod-mail (1.14.2-2+deb10u3) ...
Setting up libnginx-mod-http-image-filter (1.14.2-2+deb10u3) ...
Setting up libnginx-mod-stream (1.14.2-2+deb10u3) ...
Setting up libnginx-mod-http-upstream-fair (1.14.2-2+deb10u3) ...
Setting up nginx-full (1.14.2-2+deb10u3) ...
Setting up nginx (1.14.2-2+deb
oposada@elastic:~ $ sudo apt install nginx
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
libnginx-mod-http-auth-pam libnginx-mod-http-dav-ext libnginx-mod-http-echo
libnginx-mod-http-geoip libnginx-mod-http-image-filter
libnginx-mod-http-subs-filter libnginx-mod-http-upstream-fair
libnginx-mod-http-xslt-filter libnginx-mod-mail libnginx-mod-stream nginx-common
nginx-full
Suggested packages:
fcgiwrap nginx-doc
The following NEW packages will be installed:
libnginx-mod-http-auth-pam libnginx-mod-http-dav-ext libnginx-mod-http-echo
libnginx-mod-http-geoip libnginx-mod-http-image-filter
libnginx-mod-http-subs-filter libnginx-mod-http-upstream-fair
libnginx-mod-http-xslt-filter libnginx-mod-mail libnginx-mod-stream nginx
nginx-common nginx-full
0 upgraded, 13 newly installed, 0 to remove and 1 not upgraded.
Need to get 1,809 kB of archives.
After this operation, 3,306 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://ftp.debian.org/debian buster/main i386 nginx-common all 1.14.2-2+deb10u3 [121 kB]
Get:2 http://ftp.debian.org/debian buster/main i386 libnginx-mod-http-auth-pam i386 1.14.2-2+deb10u3 [92.9 kB]
Get:3 http://ftp.debian.org/debian buster/main i386 libnginx-mod-http-dav-ext i386 1.14.2-2+deb10u3 [101 kB]
Get:4 http://ftp.debian.org/debian buster/main i386 libnginx-mod-http-echo i386 1.14.2-2+deb10u3 [105 kB]
Get:5 http://ftp.debian.org/debian buster/main i386 libnginx-mod-http-geoip i386 1.14.2-2+deb10u3 [94.3 kB]
Get:6 http://ftp.debian.org/debian buster/main i386 libnginx-mod-http-image-filter i386 1.14.2-2+deb10u3 [97.9 kB]
Get:7 http://ftp.debian.org/debian buster/main i386 libnginx-mod-http-subs-filter i386 1.14.2-2+deb10u3 [96.2 kB]
Get:8 http://ftp.debian.org/debian buster/main i386 libnginx-mod-http-upstream-fair i386 1.14.2-2+deb10u3 [96.3 kB]
Get:9 http://ftp.debian.org/debian buster/main i386 libnginx-mod-http-xslt-filter i386 1.14.2-2+deb10u3 [96.3 kB]
Get:10 http://ftp.debian.org/debian buster/main i386 libnginx-mod-mail i386 1.14.2-2+deb10u3 [127 kB]
Get:11 http://ftp.debian.org/debian buster/main i386 libnginx-mod-stream i386 1.14.2-2+deb10u3 [153 kB]
Get:12 http://ftp.debian.org/debian buster/main i386 nginx-full i386 1.14.2-2+deb10u3 [539 kB]
Get:13 http://ftp.debian.org/debian buster/main i386 nginx all 1.14.2-2+deb10u3 [88.4 kB]
Fetched 1,809 kB in 3s (621 kB/s)
Preconfiguring packages ...
Selecting previously unselected package nginx-common.
(Reading database ... 161717 files and directories currently installed.)
Preparing to unpack .../00-nginx-common_1.14.2-2+deb10u3_all.deb ...
Unpacking nginx-common (1.14.2-2+deb10u3) ...
Selecting previously unselected package libnginx-mod-http-auth-pam.
Preparing to unpack .../01-libnginx-mod-http-auth-pam_1.14.2-2+deb10u3_i386.deb ...
Unpacking libnginx-mod-http-auth-pam (1.14.2-2+deb10u3) ...
Selecting previously unselected package libnginx-mod-http-dav-ext.
Preparing to unpack .../02-libnginx-mod-http-dav-ext_1.14.2-2+deb10u3_i386.deb ...
Unpacking libnginx-mod-http-dav-ext (1.14.2-2+deb10u3) ...
Selecting previously unselected package libnginx-mod-http-echo.
Preparing to unpack .../03-libnginx-mod-http-echo_1.14.2-2+deb10u3_i386.deb ...
Unpacking libnginx-mod-http-echo (1.14.2-2+deb10u3) ...
Selecting previously unselected package libnginx-mod-http-geoip.
Preparing to unpack .../04-libnginx-mod-http-geoip_1.14.2-2+deb10u3_i386.deb ...
Unpacking libnginx-mod-http-geoip (1.14.2-2+deb10u3) ...
Selecting previously unselected package libnginx-mod-http-image-filter.
Preparing to unpack .../05-libnginx-mod-http-image-filter_1.14.2-2+deb10u3_i386.deb ..
.
Unpacking libnginx-mod-http-image-filter (1.14.2-2+deb10u3) ...
Selecting previously unselected package libnginx-mod-http-subs-filter.
Preparing to unpack .../06-libnginx-mod-http-subs-filter_1.14.2-2+deb10u3_i386.deb ...
Unpacking libnginx-mod-http-subs-filter (1.14.2-2+deb10u3) ...
Selecting previously unselected package libnginx-mod-http-upstream-fair.
Preparing to unpack .../07-libnginx-mod-http-upstream-fair_1.14.2-2+deb10u3_i386.deb .
..
Unpacking libnginx-mod-http-upstream-fair (1.14.2-2+deb10u3) ...
Selecting previously unselected package libnginx-mod-http-xslt-filter.
Preparing to unpack .../08-libnginx-mod-http-xslt-filter_1.14.2-2+deb10u3_i386.deb ...
Unpacking libnginx-mod-http-xslt-filter (1.14.2-2+deb10u3) ...
Selecting previously unselected package libnginx-mod-mail.
Preparing to unpack .../09-libnginx-mod-mail_1.14.2-2+deb10u3_i386.deb ...
Unpacking libnginx-mod-mail (1.14.2-2+deb10u3) ...
Selecting previously unselected package libnginx-mod-stream.
Preparing to unpack .../10-libnginx-mod-stream_1.14.2-2+deb10u3_i386.deb ...
Unpacking libnginx-mod-stream (1.14.2-2+deb10u3) ...
Selecting previously unselected package nginx-full.
Preparing to unpack .../11-nginx-full_1.14.2-2+deb10u3_i386.deb ...
Unpacking nginx-full (1.14.2-2+deb10u3) ...
Selecting previously unselected package nginx.
Preparing to unpack .../12-nginx_1.14.2-2+deb10u3_all.deb ...
Unpacking nginx (1.14.2-2+deb10u3) ...
Setting up nginx-common (1.14.2-2+deb10u3) ...
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service -> /lib/syst
emd/system/nginx.service.
Setting up libnginx-mod-http-xslt-filter (1.14.2-2+deb10u3) ...
Setting up libnginx-mod-http-auth-pam (1.14.2-2+deb10u3) ...
Setting up libnginx-mod-http-geoip (1.14.2-2+deb10u3) ...
Setting up libnginx-mod-http-echo (1.14.2-2+deb10u3) ...
Setting up libnginx-mod-http-subs-filter (1.14.2-2+deb10u3) ...
Setting up libnginx-mod-http-dav-ext (1.14.2-2+deb10u3) ...
Setting up libnginx-mod-mail (1.14.2-2+deb10u3) ...
Setting up libnginx-mod-http-image-filter (1.14.2-2+deb10u3) ...
Setting up libnginx-mod-stream (1.14.2-2+deb10u3) ...
Setting up libnginx-mod-http-upstream-fair (1.14.2-2+deb10u3) ...
Setting up nginx-full (1.14.2-2+deb10u3) ...
Setting up nginx (1.14.2-2+deb10u3) ...
Processing triggers for systemd (241-7~deb10u7) ...
Processing triggers for man-db (2.8.5-2) ...
Processing triggers for ufw (0.36-1) ...
Rules updated for profile 'OpenSSH'
Skipped reloading firewall
oposada@elastic:~ $
10u3) ...
Processing triggers for systemd (241-7~deb10u7) ...
Processing triggers for man-db (2.8.5-2) ...
Processing triggers for ufw (0.36-1) ...
Rules updated for profile 'OpenSSH'
Skipped reloading firewall
oposada@elastic:~ $


Validamos que a nivel firewall se encuentre las reglas adecuadas para el trafico

oposada@elastic:~ $ sudo ufw app list | grep Nginx
Nginx Full
Nginx HTTP
Nginx HTTPS
oposada@elastic:~ $


Con esto ya tenemos nuestro web server el cual aloja nuestro stack, ahora validaremos que nuestro web server se encuentra en estatus de ok y running


oposada@elastic:~ $ systemctl status nginx
* nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2021-05-13 02:03:09 CDT; 2min 55s ago
Docs: man:nginx(8)
Main PID: 4704 (nginx)
Tasks: 5 (limit: 2312)
Memory: 5.9M
CGroup: /system.slice/nginx.service
|-4704 nginx: master process /usr/sbin/nginx -g daemon on; master_process o
|-4705 nginx: worker process
|-4706 nginx: worker process
|-4707 nginx: worker process
`-4708 nginx: worker process



Listo, nuestro web server funciona, Otra validación que podemos ejecutar es mandar el comando curl con la concatenación -4 y hostname de nuestro ambiente, en mi particular ambiente tengo como resultado la siguiente salida estandar.


oposada@elastic:~ $ curl -4 elastic.oposada.mx
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
body {
width: 35em;
margin: 0 auto;
font-family: Tahoma, Verdana, Arial, sans-serif;
}
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
oposada@elastic:~ $

Esto nos indica que el web server esta ok vista funcional a nivel sistema operativo, procedo a agregar en firewall las consultas permitidas por http en IPv4 y IPv6

oposada@elastic:~ $ sudo ufw allow 'Nginx HTTP'
Rule added
Rule added (v6)
oposada@elastic:~ $

Con ello podemos ir a nuestro navegador y consultar la web con la url





Este post continuara...