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

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

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.

Múltiples Versiones PHP

¡Hola!

Hoy me toca hacer un post super divertido en el cual tengo que instalar distintas versiones de PHP en los servidores.

Por defecto, dependiendo de la versión del sistema operativo, tenemos una versión de PHP establecida en los repositorios oficiales. Lo que vamos hacer es instalar otros que nos permitan tener hasta la 7.3 si es necesaria.

Otra cosa más a tener en cuenta es como queremos ejecutar esa versión de PHP si es por el SITE o en todo el sistema operativo (por defecto). Intentaremos cubrir todas las necesidades posibles.

Especificaciones/Requeriments

  • OS
    • Ubuntu 16.04 LTS (Versión de PHP paquetizada 7.0.x)
    • Ubuntu 18.04 LTS (Versión de PHP paquetizada 7.1.x)
  • Recordad los módulos de PHP instalados (dpkg -l | grep php)

Siempre hay que tener en cuenta lo que tenemos montado en el servidor. No podemos hacer estos cambios a lo loco ya que puede romper más de alguna web/cosa y por lo tanto dar muchos dolores de cabeza/trabajo.

Leer más

Instalar GitLab – Git Privado

¡Hola!

Estaba buscando una alternativa donde poder gestionar todo lo relacionado con GIT a través de una interfaz amigable (GUI) y me encontré con GITLAB en su versión Community.

Lo que vamos hacer será montar una instancia VPS para nuestro cometido y los primeros pasos de configuración + algo de seguridad según nos convenga.

Especificaciones/Requeriments

  • OS: Ubuntu 18.04 LTS
  • CPU: Mínimo 1 y admite hasta 100 usuarios.
  • Memoria: 2 GB es recomendado.

En el caso de no llegar a los 2 GB siempre se puede crear SWAP (ya que en VPS no suelen venir con dicha partición).

Requisitos Gitlab – Web Oficial

Leer más

¿Qué tipo de virtualización usa mi VPS?

¡Hola!

Buscando soluciones para uno de los clientes hemos intentado buscar la forma de encontrar un patrón de cómo nos pueden ver los demás … En este caso las cabeceras estaban siendo correctas y se nos ocurrió ver el tipo de virtualización.

El comando que vamos a usar para detectar esta información:

hostnamectl status

Para ello vamos a poner las salidas de los 3 proveedores que estábamos probando:

Proveedor#1

Static hostname: xxxcensuradoxxx
Icon name: computer-vm
Chassis: vm
Machine ID: 8ba9808bec076f6a12ec3ed45b199c83
Boot ID: 255de4d96da841eda3e96d5d29a90376
Virtualization: qemu
Operating System: Ubuntu 16.04.5 LTS
Kernel: Linux 4.4.0-138-generic
Architecture: x86-64

Proveedor#2

Static hostname: xxxcensuradoxxx
Icon name: computer-vm
Chassis: vm
Machine ID: beb217fbb4324b7d9959f78c279e6599
Boot ID: 5561a56373f84d8bb1f4e703830da4f5
Virtualization: qemu
Operating System: Ubuntu 16.04.5 LTS
Kernel: Linux 4.18.8-x86_64-linode117
Architecture: x86-64

Proveedor#3

Static hostname: xxxcensuradoxxx
Icon name: computer-vm
Chassis: vm
Machine ID: 0e8e38f3017e44ad7ce0f1585bd31d69
Boot ID: d8eb099e4ff248b496806e2e5f87ce1f
Virtualization: kvm
Operating System: Ubuntu 16.04.5 LTS
Kernel: Linux 4.4.0-138-generic
Architecture: x86-64

El proveedor que al final nos resultó útil y que por el momento aguanta (no es baneado en el destino) es el que usa la tecnología KVM.

Andaba pensando si el tipo de tecnología influye a la hora de llegar ante un Firewall, IDS o similar…

Por el momento parece que si ya que los otros servidores no aguantaban más de 2 horas.

Cambiar el editor de texto por defecto

Hoy debe ser un día especial ya que he actualizado 2 post de seguido, así que a ver si lo hago más a menudo con nuevos manuales para todos.

Esta vez es un pequeño comando que a veces se nos olvida y es bueno tenerlo a mano.

Imaginad que habéis hecho una instalación y por no prestar atención os habéis quedado con nano en vez del vim (yo uso la parte de vim-nox). Ahora cada vez que editamos un fichero siempre nos sale el mismo editor de texto y lo queremos cambiar.

Pues bien en Ubuntu (cualquier sistema Debian valdrá) lo tenemos muy fácil, tan solo tenemos que ejecutar el siguiente comando:

update-alternatives --config editor
There are 5 choices for the alternative editor (providing /usr/bin/editor).

Selection Path Priority Status
0            /bin/nano            40        auto mode
1            /bin/ed             -100       manual mode
2            /bin/nano            40        manual mode
3            /usr/bin/vim.basic   30        manual mode
4            /usr/bin/vim.nox     40        manual mode
5            /usr/bin/vim.tiny    10        manual mode
Press  to keep the current choice[*], or type selection number:

Una vez elegida la opción (en mi caso la 4) ya se quedará configurado.

Ahora bien si eso no funciona podemos usar el siguiente comando:

select-editor

Con este comando nos cambiará el editor de los cron por ejemplo el cual para mi gusto es más cómodo el vim.