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