viernes, 5 de noviembre de 2021
Como instalar GUI a Linux Ubuntu 20.04 y permitir acceso desde WIndows 11 por RDP (Con XFCE4)
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:
- Infraestructura central
- Servicios de bases de datos
- Datos e inteligencia artificial
- Análisis
- Gobernanza y administración
- Servicios para desarrolladores
- 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.
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.
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.
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.
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
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
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,
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:
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.
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 APTcurl -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)
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+deboposada@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...