Hoy vamos a ver un proyecto fabuloso, llamado Remotely. Una solución para controlar remotamente equipos de la empresa o personales, para accesos remotos puntuales de soporte o también equipos de manera desatendida. También permitirá si queremos la ejecución de scripts o comandos remotos.
El proyecto de Remotely es bastante curioso, la verdad que es una solución completa para el día a día cuando necesitamos conectarnos a equipos remotos. Lo dicho, cuando alguien requiere de un soporte, o cuando queremos conectar a un equipo y no hay nadie para atendernos. Es seguro y bastante personalizable, veremos que Remotely se puede usar con sus propios servidores (servidores públicos) o podemos montarlo en nuestra propia infraestructura. En este post veremos las dos opciones. Como siempre agradecer y ayudar a este tipo de proyectos que mejoran el día a día del mundo IT, su autor es Jared Goodwin, y el sitio web oficial.
Remotely es bastante sencillo, dispondremos de un portal web, donde los usuarios remotos podrán conectarse para descargarse el software ‘ligero’ de conexión remota; o donde nosotros como administradores del sitio podamos entrar y controlar remotamente algún equipo que hayamos añadido previamente a nuestra cuenta.
Si queréis probar su servidor público bastará acceder aquí para probar: https://app.remotely.one
Otra opción será como dijimos instalarlo bajo nuestro propio servidor, que es la interesante, pero esta se bifurca otra vez, parece un juego de aventuras 🙂 Al grano, a la hora de instalarla en local podremos elegir utilizar paquetes ya precompilados, esto es el servidor será totalmente funcional, pero hay cosas como que el software cliente no se podrá customizar, ni con los logos/colores de la empresa ni con la URL, el usuario tendría que escribirlo a mano. Es una opción. Y la otra sería bastante más larga pero interesante, ya que tendríamos que tener una cuenta en GitHub, hacer un fork del proyecto y alguna cosilla más, pero tendríamos más customizada la solución.
Así que si os parece vamos a ver las dos opciones, primero con los paquetes ya precompilados y así luego podemos comparar y cada uno se queda con lo que le interese. Empezamos! Necesitamos un Ubuntu Server, en mi caso usé un 21.04, que esté actualizado, recién instalado, con IP estática; también pensaremos un FQDN para el sitio web, por ejemplo: soporte.midominio.eso y abriremos en el firewall/router el 443tcp HTTPS y 80tcp HTTP contra la máquina, este último para LetsEncript.
Instalación predeterminada
Empezamos la instalación:
wget https://github.com/lucent-sea/Remotely/releases/latest/download/Remotely_Server_Installer chmod +x Remotely_Server_Installer sudo ./Remotely_Server_Installer
Y durante la instalación el asistente nos preguntará si queremos usar paquetes precompilados o no, le indicamos que sí, así como el path para el sitio web y usaremos Nginx como servicio web:
Download pre-built package (yes/no)? If no, a customized server package will be created through GitHub Actions. Enter Response: yes Which directory should the server files be extracted to (e.g. /var/www/remotely/)? Enter Response: /var/www/remotely What is your server's public URL (e.g. https://app.remotely.one)? Enter Response: https://soporte.midominio.eso Which web server will be used? [0] - Caddy on Ubuntu [1] - Nginx on Ubuntu [2] - Caddy on CentOS [3] - Nginx on CentOS [4] - IIS on Windows Server 2016+ Enter Response: 1 ...
Tras unos segundos ya tendremos el sitio montado, abrimos un navegador contra nuestro FQDN o IP de Remotely. Sin loguearnos podremos simplemente pulsar en Downloads para descargar los distintos softwares para conexión remota de Windows, Linux o Mac. Así que la primera vez nos crearemos un usuario nuevo para trabajar como administradores del sitio, pulsamos en “Register”,
Indicamos un mail y una contraseña & “Register”,
Y bueno tendremos acceso a más posibilidades, darle un paseo que es muy sencillito y completo, a lo largo de este post iremos descubriendo las opciones que tenemos.
Por hacer la primera prueba y no seguir más con este entorno preestablecido, si en la zona de Downloads nos descargamos el cliente ligero, al ejecutarlo veremos que hay que escribir manualmente la URL de nuestro sitio, esto es, a la persona remota entregaremos un EXE y al abrirlo deberá de escribir siempre la URL. No gusta. Y luego ya el tema del Logo o los colores, pues que este sería el default.
Una vez se conectó contra la URL ya tendremos un ID de conexión,
Que se lo daremos a nuestro agente/técnico, desde el menú lateral “Remote Control” podrá escribirlo y conectarse a la sesión del cliente.
Y no sólo lo que nos esperabamos de un control remoto, si no que la sesión se puede grabar en video, podremos mandar ficheros, chat, privilegios de lectura… ¡muy elegante!
Instalación personalizable
Bueno, vistas algunas de sus posibilidades y su potencia vamos a darle a la instalación personalizable, esto es, que no sólo podamos cambiar Logos, colores, URL embebida… si no que también los idiomas o lo que nos interese, ya que tendremos el código para nosotros.
Antes de nada, necesitamos tener una cuenta en GitHub, así que si no la tienes, regístrate!
Luego, si tampoco lo tenemos hecho, deberemos copiar la clave pública de nuestro equipo a nuestra cuenta de Github, ya que posteriormente accederemos a un repo nuestro. Bueno, con el siguiente comando la creamos y la vemos:
ssh-keygen -t rsa -b 4096 -C "Equipo remotely" cat /root/.ssh/id_rsa.pub ssh-rsa AAAAAAAAAAAAAAAAAAAAAAAAAADDDDDDDDDDDDDDDDdfdsfsdfxxxxxxxxxxxxxdssadlkjasdksaljdalksjdalskdjakdsjaskdljasdhfffffffffffffffffffffffffffffffasddddddddddddddddddddddddddddddddddddddddassxcxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxsssssssssssssssssssssssssssssssssssqqqqqqqqqqqqqqqqqqqqqqqwwwwwwwwwwwwwwwwwwwwweeeeeeeeeeeeeeeeeeeeeeerrrrrrrrrrrrrrrrrrrttttttttttttttttttttyyyyyyyyyyyyyyyyyyyyyuuuuuuuuuuuuuuuuuuuuuiiiiiiiiiiiiiiiiiiiiiiiiiioooooooooooooopppppppppppppppppp== Equipo remotely
En Github, vamos a nuestros Settings > SSH and GPG Keys > New SSH Key… indicamos un nombre y la pegamos.
Vamos a https://github.com/lucent-sea/Remotely y pulsamos en “Fork”, vamos a bifurcar el proyecto y vamos a copiarnos exactamente una copia del original en nuestra cuenta.
Y luego desde la shell podremos descargarnos el proyecto a nuestra máquina, podría ser un buen momento si queremos hacerle alguna modificación (idioma…), y tras ello hacemos un pull & un push:
git clone [email protected]:USUARIO_GITHUB/remotely cd ./remotely git remote add upstream https://github.com/lucent-sea/remotely git pull upstream master git push origin master
Necesitaremos también un Personal Access Token, así que vamos a https://github.com/settings/tokens > “Generate new token”
Ponemos nombre descriptivo para qué lo usaremos, caducidad, marcamos únicamente el tick de ‘repo’ y abajo pulsamos en “Generate token”,
Y nos copiamos en un lugar seguro nuestro Token, lo necesitaremos.
Una última cosina, dentro de nuestro repo de Remotely, vamos a Actions y pinchamos en “I understand…”, necesitaremos que funcionen algunas acciones de los workflows para la instalación de Remotely.
Ahora ya de verdad que podremos comenzar con la instalación, y esta vez indicaremos que no queremos usar paquetes precompilados, eso sí, a cambio nos pedirá nuestro usuario de GitHub y el Token entre otros, os dejo los pasos para su instalación final:
wget https://github.com/lucent-sea/Remotely/releases/latest/download/Remotely_Server_Installer chmod +x Remotely_Server_Installer sudo ./Remotely_Server_Installer
Y donde amablemente deberemos cambiar nuestras respuestas, os dejo cómo proceder con el asistente:
Download pre-built package (yes/no)? If no, a customized server package will be created through GitHub Actions. Enter Response: no Which directory should the server files be extracted to (e.g. /var/www/remotely/)? Enter Response: /var/www/remotely What is your server's public URL (e.g. https://app.remotely.one)? Enter Response: https://soporte.misitio.eso Which web server will be used? [0] - Caddy on Ubuntu [1] - Nginx on Ubuntu [2] - Caddy on CentOS [3] - Nginx on CentOS [4] - IIS on Windows Server 2016+ Enter Response: 1 What is your GitHub username? Enter Response: USUARIO_GITHUB What GitHub Personal Access Token should be used? Enter Response: ghp_XXXXXXXXXXXXXX_TOKEN_XXXXXXXXXXXXXX Create new build (yes/no)? If no, the latest existing build artifact on GitHub will be used. Enter Response: yes Which version would you like to build? [0] - Latest official release [1] - Preview changes (i.e. master branch) [2] - Specific release Enter Response: 1 ...
Por cierto, si os atascáis en algún paso, os dejo este video de su tutorial de instalación: https://remotely.one/Tutorials
Y listo! ya tendremos el portal levantado! Recordar (igual que antes) crear una cuenta con privilegios administrativos desde “Register”. Recuerda que sólo se puede por defecto registrarse una primera vez en el sitio, nadie más sin nuestro consentimiento lo podrá hacer.
E indicarle unos credenciales,
Antes de nada me voy al tema, tenemos un apartado llamado “Branding” donde podemos personalizarnos la imagen del software cliente, indicando el logo de nuestra empresa, un título, colores, tema claro/oscuro…
Quedaría algo así cuando el cliente lo abre, precioso, y sin que tengan que meter ninguna URL. Al agente (técnico de soporte) le podemos copiar y mandar el link o directamente dictarle el ID de sesión. Ya que el agente podrá entrar también desde el portal web de Remotely desde “Remote Control”,
Cuando el agente introduzca el código del ID de la sesión, al usuario final le saldrá un mensaje para aceptar la sesión remota.
Y lo dicho, tendríamos un control remoto de manera puntual con alguien que lo necesite.
Por último con lo del tema, tenemos dos ficheros CSS que nos ayudarán también a customizar el frontal web, os los dejo por si queréis hacerlo un pelín más corporativo: /var/www/remotely/wwwroot/css/Themes/yeti.min.css y /var/www/remotely/wwwroot/Remotely_Server.styles.css. Bueno y os dejo este ejemplo de pantallazo donde se ven las descargas que se pueden hacer desde el lado del cliente, podrá descargarse el portable instantáneo de Windows, Linux o Mac. Así como la opción instalable, para que no se lo tengan que andar instalando, pero ojo, este no es el de la opción desatendida, que también la tenemos llamado Resilent Agent, y es el que veremos a continuación.
Este agente que nos podremos descargar una vez nos hayamos logueado con nuestra cuenta administrativa y podremos instalarlo donde queramos, en un servidor remoto para administrarlo más tarde, en un equipo de salto, de un cliente/empresa/usuario que nos interese… Pulsamos en “Install” no hay que cumplimentar ningún dato ya que vendrá todo embebido.
… esperamos unos segundos mientras instala…
“Close”,
Y ya tendremos en el menú “Home” los equipos que hemos ido añadiendo el agente de conexión desatendida, para conectarnos a cualquiera de ellos será pinchar en él y en las opciones lo veremos.
Y el tema de Scripts también existe, la posibilidad de ejecutar algún comando en alguna de estas máquinas, o de programarlo en algún horario… Esto personalmente me llama menos, cubre menos la necesidad que tenía.
¡Ah! Y espera que todavía no hemos acabado! ¿Te preocupa la seguridad? pues nada, te recuerdo que deberías habilitar el doble factor de autenticación en tu cuenta administrativa, así que desde el menú lateral “Account” habilitaremos 2FA o Two-factor authentication. Nos saldrá un asistente donde deberemos escanear el típico código QR y añadirlo a nuestra app del móvil y copiar los códigos de seguridad por si la perdemos.
Espero que os haya parecido chulo, la verdad que es una pasada, habrá que ver cómo crece el proyecto, pero no me digáis que no es una solución buenísima para hacer conexiones remotas con usuarios torpes o con tus clientes para algún soporte/necesidad que tengan de ti. Queda corporativa total y funcional, cumple con lo que se le pediría de sobra.
Un abrazo a tod@s, y como siempre agradeceros a los que movéis este tipo de contenido en las redes sociales, por los likes, retuits, recomendaciones… ¡salu2!
Posts recomendados:
Cualquier necesidad que tengas, no dudes en contactar conmigo, os intentare ayudar siempre que pueda, compartir es vivir 😉 . Disfrutar de los documentos!!!
Fuente obtenida de: https://www.bujarra.com/instalando-remotely-control-remoto-open-source/