Evitando actualizaciones de paquetes apt

A veces los clientes pueden tener algo instalado que en el caso de actualizar alguno de los paquetes deje de funcionar. Esto para los administradores de sistemas es un gran problema.

Generalmente esto ocurre cuando las instalaciones están hechas de manera artesana y no muy bien configuradas. Igualmente nosotros estamos aquí para dar servicio y poder aprovechar las actualizaciones del sistema.

Desde sistemas siempre se recomienda utilizar las aplicaciones paquetizadas ya que mejoramos tanto la seguridad (actualizaciones) como la centralización del sistema.

Reteniendo los paquetes

Con estos comandos hacemos que se retengan los paquetes necesarios para que no se actualicen.

apt-mark hold package_name
echo "package_name hold" | sudo dpkg --set-selections
aptitude hold package_name 

El que está en negrita es el comando que suelo usar, por lo tanto os aplico un ejemplo:

apt-mark hold chromium*

Con este comando hará un hold de todos los paquetes que comiencen por la palabra chromium.

Ver los paquetes retenidos

dpkg --get-selections | grep "hold"

Habilitar los paquetes para actualizarse

apt-mark unhold package_name
echo "package_name install" | sudo dpkg --set-selections
aptitude unhold package_name

Siguiendo el ejemplo cuando retuvimos el paquete chromium, podemos hacer lo mismo para poder actualizarlo.

apt-mark unhold chromium*

NTPD vs Timedatectl

¡Hola!

No sabía como empezar este POST ya que me encontré con una curiosidad el cual me hizo pensar para el uso de los servidores.

Sabemos que si disponemos de una plataforma, lo ideal es tener todos los servidores o servicios con la misma hora.

Antes usaba el servicio de NTP o NTPDATE para poder configurar la hora de acuerdo a los servicios NTP (urls) externas.

Mi cuestión o duda vino en el momento en el que me fije en la salida del comando timedatectl el cual me puso manos a la obra para investigar un poco acerca de su conexión con los NTP.

¿NTPD o Timesyncd?

Lo primero que debemos hacer es preguntarnos acerca de esto, es decir como o cuando usar cada uno.

NTPD

Digamos que es un servicio que nos resuelve nuestros problemas a la hora de sincronizar con los NTP (urls). Pero no solo nos da este servicio sino que a través del mismo podemos ser nosotros los que demos la hora. Es decir que podemos hacer de puente/servidor con otros clientes para que usen nuestra hora.

Timedatectl

Comando por el cual podemos obtener o asignar la hora en nuestros servidores Linux. La parte de sincronización con servidores NTP lo usa para lo mínimo, es decir digamos que es un cliente más ligero que el propio NTPD.

Digamos que esto se creo como una alternativa más ligera o programada para ocupar el menor espacio/recursos.

Leer más

Actualizar Syspass 3.0 -> 3.1

Hubo un cliente que quería actualizar su versión de Syspass, ya que lo habíamos hecho anteriormente y bueno esto es una guía para no morir en el intento.

Lo primero que vamos a decir es que nosotros tenemos la estructura del virtualhost del Syspass de la siguiente manera:

  • public_html: es un enlace simbólico a la carpeta Syspass o versión que disponemos:
  • Syspass-3.0: La carpeta a donde apunta actualmente nuestro public_html.

Una vez definido todo vamos a seguir el procedimiento oficial y lo ajustaremos a nuestra configuración del sistema.

Realizar un backup

Antes de comenzar todo esto, es recomendable realizar un backup a la base de datos (antes de la actualización). Esto es necesario por si acaso algo va mal y os quedéis sin vuestras contraseñas.

Además como hay actualización suele haber cambios en la base de datos y con versiones antiguas no funcionar.

Actualizando Syspass

Lo primero que haremos será acceder con nuestro usuario por SSH a nuestro virtualhost, así evitaremos que se creen con otros permisos. A su vez, generalmente, entraremos directamente en el directorio home del Syspass.

# Descargamos la versión 3.1
wget https://github.com/nuxsmin/sysPass/archive/v3.1.zip
# Descomprimimos
# Ahora ya tendremos el directorio sysPass-3.1 
unzip v3.1.zip
ls sysPass-3.1 
# Modificamos el enlace simbólico
rm public_html 
ln -s sysPass-3.1 public_html
# Copiamos los archivos de configuración
cp sysPass-3.0/app/config/* sysPass-3.1/app/config/
# Ajustamos los permisos
# Esto es fundamental, ya que sino te dará problemas de permisos en la web.
find . -type f -exec chmod 640 {} \;
find . -type d -exec chmod 750 {} \;
# Instalamos los paquetes a través del composer en el nuevo sysPass-3.1
cd sysPass-3.1 && composer install --no-dev

Configurando Syspass

No cerréis la consola ya que necesitaremos una clave que la tendremos dentro del fichero sysPass-3.1/app/config/config.xml

Abrimos nuestra página web y nos pedirá un código de seguridad. Lo buscamos en nuestra shell:

grep upgradeKey sysPass-3.1/app/config/config.xml

Esta será la clave que debemos introducir a la hora de actualizar y no tardará más que 5 segundos.

Con esto hemos terminado la actualización del sysPass.

SSL Mutal – Como usar un certificado como validación

¡Hola a todos!

Se ha presentado un cliente con unas necesidades específicas de seguridad en una página web. Lo que quiere es que el acceso fuera restringido por aquellas personas que tuvieran un certificado válido X.

Para aquellos que no me hayan entendido lo que haremos en este caso es lo que hace la agencia tributaria de España.

Es decir, si quieres ver tus datos de hacienda/personales/etc … tienes que tener un certificado válido con la FNMT y tenerlo configurado en tu navegador (ya que te lo va a solicitar). Si es correcto te permite el acceso a tu área privada y sino fallará.

En realidad lo único que necesitas es tener un certificado y su CA para poder validar que el certificado con el que entras se le permite el acceso.

Os vamos a enseñar como realizar estas funciones con certificados autofirmados y luego os explicaremos como se realizaría si tuviéramos los certificados intermedios.

Leer más

ECR Repositorio de Imágenes en Amazon

En este manual vamos aprender ECR Repositorio de Imágenes.

Esto nos permite subir nuestras imágenes preparadas en un repositorio privado y gestionado por Amazon.


Pasos previos


Vamos a suponer que ya tenemos la imagen subida en nuestro entorno local y lo que vamos hacer es reutilizarla para subirla a nuestro REPO de amazon.

Usaremos el nombre de admon-imagen

Si hemos realizado los pasos previos ya estamos listos para realizar los siguientes.


Crear un repositorio en ECR


Esquina superior derecha > Crear Repositorio
Introducimos el nombre del repositorio, en nuestro caso usaremos «admonrepo»

Esta será nuestra dirección de REPO:

000000000000.dkr.ecr.eu-central-1.amazonaws.com/admonrepo 
  • 000000000000: Será nuestro identificador de usuario.
  • eu-central-1: Zona donde está creado el repositorio.
  • admonrepo: Nombre del repositorio.

Subir una imagen


Primero debemos hacer LOGIN

$(aws ecr get-login --no-include-email --region eu-central-1)

Recordamos que nuestra imagen están en el repositorio local de nuestra máquina, para ello lo comprobamos con:

docker images

Tagueamos la imagen en nuestro REPO

docker tag admon-imagen 000000000000.dkr.ecr.eu-central-1.amazonaws.com/admonrepo/admon-imagen:1.x

Siendo 1.x si queremos llegar un control de versión.

Subimos la imagen en nuestro REPO

docker push 000000000000.dkr.ecr.eu-central-1.amazonaws.com/admonrepo

Realizará una subida de la imagen en nuestro repo y se verá como la va subiendo en la shell.

The push refers to repository [000000000000.dkr.ecr.eu-central-1.amazonaws.com/admonrepo]
7453869b827a: Pushed
75e70aa52609: Pushed
dda151859818: Pushed
fbd2732ad777: Pushed
ba9de9d8475e: Pushed

Con esto ya se puede subir las imágenes que sean necesarias para nuestro docker/eks dentro de Amazon.


Otros comandos


Algunos de estos comandos os puede ser útil:

# Ver repositorios
aws ecr describe-repositories

# Ver imágenes de un repositorio
aws ecr describe-images --repository-name NOMBRE-REPOSITORIO

Kubernetes Dashboard Amazon

Estoy seguro de que os habéis quedado con ganas de más después del artículo tan largo que había escrito sobre «Como montar EKS y no morir en el intento». Esto es necesario previamente ya que es sobre ello que vamos a trabajar para poner el panel.

He de reconocer que al principio me costó saber el concepto de como funciona, pero a vosotros os lo dejaré mascado para que no sufráis como yo.

Requisitos:

  • Tener el EKS montado.
  • La consola SSH donde montamos todo.
  • Paciencia 🙂

Nos vamos a centrar en seguir el procedimiento oficial de Amazon Kubernetes Dashboard.

También podéis echar un vistazo a su web oficial: Web Oficial Kubernetes Dashboard.


            Panel de Kubernetes
Kubernetes Dashboard

Todos los comandos que vamos a ejecutar a continuación se tienen que realizar donde hemos configurado e instalado el aws+kubectl.

Leer más

EKS – Elastic Container Service para Kubernetes (AWS)

¡Hola!

Es la primera vez que voy a empezar a realizar una incursión con Docker y me he puesto los calzoncillos por fuera (cual superman) para enfrentarme a esto que me ha dado más de un dolor de cabeza en Amazon.

Había leídos muchos manuales y había seguido la documentación oficial de Amazon … Pero siempre puede haber una piedra en mitad de camino.

Al igual que yo vosotr@s os podéis encontrar con lo mismo así que os explicaré en detalle de todos los posibles problemas que os podéis encontrar en el.

Tengo que remarcar que este es un manual para principiantes en este mundo y a raíz que vaya conociendo más sobre el tema lo iré compartiendo con todos vosotros.

Documentación en la que nos hemos inspirado:


¿Qué es Amazon EKS?

Amazon Elastic Container Service for Kubernetes (Amazon EKS) es un servicio administrado que le permite ejecutar fácilmente Kubernetes en AWS sin necesidad de crear ni mantener su propio plano de control de Kubernetes. Kubernetes es un sistema de código abierto para automatizar la implementación, escalado y administración de las aplicaciones en contenedores.

Amazon EKS ejecuta instancias del plano de control de Kubernetes en varias zonas de disponibilidad para garantizar una alta disponibilidad. Amazon EKS detecta y reemplaza automáticamente las instancias del plano de control en mal estado y proporciona actualizaciones de versiones y parches automatizados para ellas.

Con todo esto Amazon nos ofrece poder enlazarlos con los siguientes servicios:

  • Amazon ECR: Contenedor de imágenes.
  • ELB: El balanceador para distribuir las cargas.
  • IAM: Para la autenticación.
  • VPC: La red privada para su comunicación.

¿Como funciona Amazon EKS?


    Cómo funciona Amazon EKS
Source: Amazon

Siguiendo la estructura los pasos que conlleva esto son:

  1. Provisionar un EKS Cluster
  2. Agregaremos los nodos donde se va a desplegar.
  3. Configuramos un servidor para conectar/gestionar el cluster.
  4. Correremos aplicaciones.

Pues bien teniendo claro los pasos que vamos a seguir, es hora de ponernos manos a la obra con ello. Como dije antes me detendré antes de cada punto para avisar los posibles problemas que encuentro.

Leer más

Instalación Percona XtraDB Cluster (Galera)

¡Hola!

Hoy vamos hacer algo más divertido y es montar nuestro primer Cluster de Percona XtraDB Cluster. El objetivo será de montar un entorno multi master (sí en el cual poder escribir en todos los nodos) y tener alta disponibilidad en ello (esto es obvio si es multi master).

Dentro de las múltiples ventajas que nos da este tipo de plataformas podemos destacar las siguientes:

  • Alta disponibilidad (si un nodo cae el resto sigue).
  • Consistencia de datos ya que la forma de sincronizar es síncrona.
  • Multi Master.
  • Se puede Leer y Escribir en cualquiera de los nodos.
  • Los nodos al entrar se sincronizan automáticamente.
  • Si algún nodo se cae, automáticamente se desconecta del cluster.

No todo será bueno en esta vida, pero tampoco soy un experto en la materia de base de datos, así que por mi parte pienso que es posible que pierda un poco a la hora de velocidad de escritura masiva.

Aparte de ello solo permite InnoDB (Xtradb es un fork) así que si estás buscando para otro tipo de ENGINE no te valdrá.

También decir que he probado este entorno en 3 servidores virtuales que estaban situados en Nueva York, Singapur y Alemania e iba todo correcto. Aunque no he realizado pruebas de Insert.

Leer más

Instalación MongoDB

¡Hola!

Nos encontramos hoy con otra nueva entrada y en este caso vamos a instalar MongoDB (Base de datos NoSQL).

Se ha puesto bastante de moda y hay clientes que lo solicitan así que nos ponemos manos a la obra para:

  • Instalación y configuración inicial.
  • Usuario y contraseña para su administración.
  • Mejoras de seguridad.
Leer más

Instalación NodeJS en Ubuntu 16.04/18.04

Introducción

Se nos ha solicitado la Instalación NodeJS en Ubuntu 16.04.

En un primer momento lo instalamos desde los propios paquetes del sistema pero este nos estaba dando una versión 4.x. Pero debido a las exigencias de la programación necesitaban una versión superior por ejemplo la 10.x. Por lo tanto haremos como se realiza la actualización de los paquetes oficiales.

Instalación NodeJS en Ubuntu 16.04

Nosotros vamos a proceder a la instalación de NodeJS versión 10.15.x ya que es la versión LTS. Existe la posibilidad (hasta hoy) de poder instalar las 12.2 pero nosotros preferimos tener algo más estable.

curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
apt-get install -y nodejs

Con estos pasos tan sencillos instalamos en nuestro sistema NodeJS, pero no queremos dejar la tarea sólo aquí ya que nos interesa instalar PM2.

Instalando PM2

PM2 es un programa que nos permite controlar los procesos NodeJS de una manera más friendly y práctica.

npm install pm2@latest -

Con esto dejamos instalada la aplicación PM2.

Algunos comandos PM2

# Arrancar una APP en NodeJS
pm2 start app.js

# Detener una APP en NodeJS
pm2 stop app.js

# También se puede usar restart y reload
pm2 restart app.js || pm2 reload app.js

# Ver las aplicaciones gestionadas por PM2
pm2 ls

# Ver los logs de la app o de todo
pm2 logs app.js | all

# Arrancar la aplicación node una por cada núcleo del procesador
pm2 start app.js -i max
pm2 reload all

# Ver la monitorización de los procesos PM2
pm2 monit

Conclusión

NodeJS es hoy en día uno de los lenguajes más usados del mercado de cara al servidor así que es recomendable tener herramientas para administrarlo.

PM2 es un servicio bastante bueno y potente que hará a los administradores de sistemas quitarse más de un dolor de cabeza.