11/4/20

Apache Guacamole con PostgreSQL y Google Authenticator en Docker

En un articulo anterior mostré como instalar una puerta de enlace de escritorio remoto web utilizando Apache Guacamole; en este nuevo articulo vamos a mejorar la instalación haciendo que almacene la información en una base de datos PostgreSQL lo cual nos brindará una interfaz gráfica de administración mejorada, adicionalmente habilitaremos una extensión de autentificación en dos pasos para brindar una capa de seguridad adicional, todo esto en Ubuntu Server 18.04 con Docker en contenedores separados relacionados por un mismo stack de Docker-Compose.

Para hacer la instalación mas sencilla he creado un script:

El cual pueden descargar y ejecutar del siguiente modo:

Cambiar a sudo:

sudo su

Descargar el script:

wget https://gist.githubusercontent.com/JManzur/6a433c3df5aec8645e809ca978b0be1e/raw/9fb7c5d021204a8ead48fc2b986fa05d29d23ffa/prep_guacamole.sh

Hacerlo ejecutable:

chmod +x prep_guacamole.sh

Ejecutarlo:

./prep_guacamole.sh

IMPORTANTE: Una vez finalice la ejecución del script es recomendable que editen el archivo de variable de entorno que genera y coloquen su propio usuario y contraseña para la base de datos, para ello editen el archivo /docker/guacamole/.env

El script también se encargó de bajar el docker-compose.yml el cual contiene los 4 contenedores necesarios:

Y antes del primer inicio necesitamos ejecutar el contenedor que genera la base de datos:

docker-compose up init-guac-db

NOTA: El proceso anterior solo se realiza por única vez antes del primer inicio.
Y una vez finalice levantamos todo con:

docker-compose up -d

Hecho esto ya podemos ingresar a

http://IP:8084/guacamole/#/

Con los credenciales:
  • Usuario: guacadmin
  • Contraseña: guacadmin
Al ingresar se nos presentará un código QR, (es recomendable respaldarlo) el cual tendremos que escanear con la app Google Authenticator disponible para Android y iOS y así podremos hacer la autentificación en dos pasos.

Ejemplo:

Clic en la imagen para agrandar

NOTA: Cada vez que creemos un nuevo usuario debemos marcarle la opción "permitir el cambio de contraseña" a modo de que puede utilizar la autentificación  en dos pasos.


9/4/20

cheat.sh Un aliado en la linea de comandos.

Hay SysAdmin que tienen una habilitad envidiable para recordar comandos y sus variables con las cuales cumplir diferentes funciones; lamentablemente ese no es mi caso y termino perdiendo minutos valiosos googleando, leyendo man pages o revisando mis notas y son precisamente esta clase de situaciones las que cheat.sh me ha ayudado a optimizar.

cheat.sh es una "cheat sheet", lo que en Venezuela conocemos como "chuleta" y en Argentina como "machete"... Es decir un "hoja" con apuntes para hacer "trampa". Y la idea de cheat.sh es ser utilizado desde la terminal ya que ingeniosamente armaron su web de manera tal que cada contexto lleva el nombre de un comando y al realizarle un curl nos traerá un resumido listado de las funciones mas comunes/útiles del mismo. 

Ejemplo: Para ver la cheat sheet del comando grep, simplemente hacemos:


curl cheat.sh/grep

Lo cual nos traería el html con los apuntes:



El listado cheat sheet que armaron es extenso y en constante crecimiento, ademas tienen otras herramientas que puedes conocer visitando http://cheat.sh/

27/11/19

Cerrar sesiones fantasmas en Windows.

Si te has encontrado con sesiones de usuario como estas:


Sabrás que no te permite cerrarlas a menos que reinicias, lujo que no siempre podemos permitirnos, especialmente cuando se trata de servidores; estas sesiones fantasmas se generan cuando un usuario cierra sesión pero algún proceso queda tildado. Para solucionarlo abrimos una consola de comando con privilegios elevados y seguimos estos pasos:

Identificar el ID de la sesión:

qwinsta

En el output del comando anterior notaremos que la sesión fantasma no tiene nombre.

Listamos los procesos asociados al ID:

query process /ID:X

Copiamos el PID de cada proceso y forzamos su cierre uno a uno:

taskkill /F /PID XXXXX

Ahora si ejecutamos qwinsta una vez más ya no veremos la sesión fantasma.

Ejemplo:


7/8/19

Servidor SFTP con Ubuntu Server 18.04

Para publicar un SFTP sobre un servidor Ubuntu 18.4 estos son los pasos a seguir:

Creamos un grupo para usuarios de SFTP:

sudo groupadd sftp

Creamos un usuario que solo tendrá acceso vía SFTP y no shell:
NOTA: Nos solicitará varios campos pero solo la contraseña es obligatoria.

sudo adduser --shell /bin/false ftpuser

Ingresamos el usuario al Grupo:

sudo usermod -a -G sftp sftpuser

Creamos la carpeta para el SFTP:

sudo mkdir -p /var/sftp/archivos 

Le otorgamos propiedad a los miembros del Grupo:

sudo chgrp sftp /var/sftp/archivos 
sudo chmod -R 770 /var/sftp/files

Editamos el archivo de confiuración sshd_config:

sudo vim /etc/ssh/sshd_config

Y agregamos al final las siguientes lineas:

Match group sftp
ForceCommand internal-sftp
PasswordAuthentication yes
ChrootDirectory /var/sftp
PermitTunnel no
AllowAgentForwarding no
AllowTcpForwarding no
X11Forwarding no


Reiniciamos el servicio SSH:

sudo systemctl restart ssh

Y con esto ya tenemos configurado un SFTP que atenderá por la IP del servidor mediante el puerto 22.