Mi caja de herramientas de bolsillo (parte II)
Herramientas software para sobrevivir al día a día de un SysAdmin
Si has llegado a este artículo sin haber visto la primera parte, puedes leerla a través del siguiente enlace:
Mi caja de herramientas de bolsillo (parte I)
El objetivo
No debemos de perder el objetivo principal, y este no es usar el teléfono como un equipo de trabajo habitual, pero si tenerlo como opción de “supervivencia” en situaciones críticas o de emergencia en la que requerimos ciertas herramientas y acceso a servidores y no disponemos de otro equipo.
Es probable que muchas de las herramientas que te muestre o cite ya las conozcas, o puede que sean totalmente inservibles para tus necesidades. Es simplemente una referencia y no tienen por qué ser las únicas soluciones.
Modo Escritorio alternativo
En el anterior artículo hablaba del Modo Escritorio de Huawei y, de que no todos los dispositivos tienen esta opción. Pero si tu teléfono tiene las capacidades de USB OTG siempre puedes optar por algunas soluciones de terceros.
En este caso, el mismo fabricante del lapdock que mencionaba, Sentio Superbook, tiene una app que se encarga de realizar dicha función.
Esta App se ofrece como complemento a su lapdock, y supuestamente debería de funcionar con cualquier otro lapdock conectado a Android. En esta caso, con el Motorola funciona, pero la experiencia de uso es bastante decepcionante; no aprovecha la máxima resolución, tampoco toda el área de pantalla -dejando un marco negro-, y no todas las aplicaciones funcionan.
Acceso a la configuración de Android
Al conectar el lapdock desaparece el acceso a la configuración de Android desde este, aunque se puede seguir haciendo desde el teléfono. Esto hay que tenerlo en cuenta por que es probable que necesitemos acceder a la configuración para algunos aspectos. Aunque sí que tenemos acceso al Centro de Notificaciones haciendo click sobre los iconos de batería o wifi de la parte inferior que nos puede facilitar algunas operaciones.
Configuración del Teclado
En este caso, dado que conectamos un teclado externo (el del lapdock) conviene tener en cuenta algunas cosas:
- La disposición del teclado y las letras acentuadas, y hacernos con la ubicación de ciertos caracteres especiales o configurar el teclado adecuadamente.
- Desactivar el teclado virtual en pantalla. Algunas aplicaciones no detectan el teclado físico y fuerzan a que aparezca el teclado virtual en pantalla.
De hecho, tengo instalados varios teclados virtuales, pero para trabajar desde el lapdock, siempre utilizo Gboard, ya que no interfiere mostrando el teclado virtual al usar el físico del lapdock. Usando teclados alternativos como SwiftKey de Microsoft (que es mi teclado habitual), aunque se desactive el teclado virtual, en algunas aplicaciones aparece en pantalla dificultando el trabajo.
Teniendo en cuenta estos puntos, las limitaciones son pocas, y este mismo artículo se ha redactado y maquetado en gran parte desde el lapdock y usando el navegador Firefox. La única opción que hay que tener en cuenta es que en la configuración del sitio a visualizar por el navegador hay que seleccionar la opción “Sitio de Escritorio”.
Mis herramientas
Paso a detallar las diferentes herramientas que tengo instaladas y he usado en múltiples ocasiones.
En algunos casos se mostrarán capturas de pantalla usando el lapdock y en otras no. El software usado es independiente de esto. Es simplemente que se han tomado las capturas en diferentes circunstancias.
Intentaré separar las herramientas (Apps) por grupos, aunque en algunos casos alguna App pueda incluirse en más de un grupo o categoría.
Las dividiré en las siguientes categorías:
- Desarrollo y Edición de código / texto
- Navegación
- Acceso Remoto y VPN
- Acceso a Bases de Datos
- Monitorización de peticiones HTTP
- Emulación de Terminal y otras distros de Linux
- Servicios en la nube
- Exploración de red y otras utilidades
Desarrollo y Edición de código y/o texto
Si desarrollas, si haces scripts para automatizar tareas en servidores, si te toca “parchear”, si te toca arreglar esas “cositas” para las que te dicen: “esto para ti son 5 minutos”, y luego te tiras toda una tarde, necesitas un editor de texto.
Por descontado, que siempre tendrás que acabar diciendo: “En cuanto tenga acceso a mi equipo me lo miro y lo arreglo”. Pero pasa lo que pasa. Que, si “esto era para ayer”, que “la producción está parada”, que “nadie se puede esperar”, que “estamos perdiendo dinero”, etc., así que no será para después y tendrás que editar con lo que tengas.
Yo tengo varios editores. Me gusta probar diferentes opciones, con el tiempo si veo que alguno no me acababa de convencer lo desinstalo. Pero siempre tengo más de uno instalado. Nunca se sabe el momento que un editor, por lo que sea, no te sirve y recurres a otro. Tampoco voy a entrar en todos los detalles de cada uno. Simplemente expondré los que uso actualmente y si tienen algo a destacar.
Turbo Editor
Sencillo, con resaltado de sintaxis, soporta múltiples codificaciones y es Open Source. Se puede descargar del siguiente enlace: https://github.com/vmihalachi/turbo-editor
Code Editor (Editor de Código)
Gran variedad de estilos visuales. Tiene un gestor de almacenamiento que permite acceder directamente a archivos por FTP, WebDAV, Dropbox, Google Drive, OneDrive, GitHub y GitLab.
Aparte de esto, y siendo estéticamente más vistosa, hay que tener en cuenta que muestra publicidad, la cual se puede desactivar con el pago de una pequeña cantidad.
Spck Editor
Orientado a proyectos JavaScript, con autocompletado y plantillas de proyectos. Un diseño muy cuidado, pero bastante más específico para según en que se trabaje. Permite conectar con GitHub, y para editar otros lenguajes, como Python, no he tenido problemas.
Dcoder
Este editor, además de instalar un teclado propio tiene una filosofía diferente, ya que se ofrece como un IDE en el que se puede trabajar con más de 35 lenguajes, donde además de tener coloreado de sintaxis permite compilar en los lenguajes que se requiera. Aparte de la App en Android también está para iOS y en entorno Web, pues es un hibrido que trabaja juntamente con la creación de una cuenta y almacenamiento en la nube.
Si conocéis plataformas como Heroku, Netlify o Replit os resultará familiar. Desde mi punto de vista creo que se acerca más a Replit.
VHEditor
Llegamos a lo que, para mí, es un editor de “punto y aparte”. Es la experiencia de tener el editor VSCode dentro de Android. Para ello, VHEditor, hace una instalación propia de Termux (que comento más adelante), en el que instala un servidor virtual (Android VSCode Server) donde corre el editor dentro de un contenedor al que se accede a través de un puerto al que se conecta la app, aunque también se puede acceder con cualquier navegador.
Desde el terminal del editor accederemos a la consola de Termux donde podremos ajustar configuraciones e instalar otros paquetes necesarios para complementarlo, como git.
La instalación no es trivial (aún hay cosas que se me resisten a funcionar correctamente) pero la posibilidad de tener VSCode en el teléfono me gusta y me abre un mundo de posibilidades.
De hecho, como lo que se instala en el teléfono es un servidor al cual accedemos desde un cliente http, si activamos que escuche en todos los interfaces, sabiendo la IP de nuestro teléfono, podremos acceder al editor a través de la misma red WiFI desde cualquier otro equipo.
Como curiosidad está bien. Sobre todo, está bien conocer no solo las posibilidades de lo que tengamos instalado, sino también como funciona y saber a qué nos exponemos si tenemos instalado un servicio en el teléfono el cual es accesible desde la misma red.
En este caso, no nos interesa, pero nunca se sabe.
Navegación
No voy a entrar muy a fondo en esta sección, no considero que sea vital, aunque sí que tengo varios navegadores de internet (o exploradores, o browsers, o como los quieras llamar). Básicamente por acceder a los sitios utilizando diferente navegador según necesidades del perfil (y separar perfiles). Destacaría a Opera y Opera Mini, por sus opciones de ahorro de datos y compresión, bloqueo de anuncios y VPN incorporados. Y TOR Browser, por sus características de privacidad y acceso a ciertos sitios restringidos.
Estoy seguro que debe de haber muchas otras opciones, pero no es un tema al que haya dedicado mucho tiempo para buscar alternativas mejores o con características excepcionales.
Acceso Remoto y VPN
Trabajar con el teléfono móvil implica que vas a acceder remotamente a algún servidor. Eso se da por entendido. Y en muchos casos es probable que pasemos por otras redes de terceros, o conexiones WiFi de empresas, hoteles u otros sitios públicos, que por muy cifradas que estén, tú no tienes el control. Así que mientras más capas de seguridad pongamos a nuestras comunicaciones, mucho mejor.
En este punto te diría que extremes siempre la seguridad al máximo y evites conectarte a través de conexiones WiFi que no sean de confianza. En esos casos mejor tirar de datos, pero nunca está de más añadir capas de protección, aunque uses tu conexión de datos. El único problema es la posible afectación a la velocidad y la latencia.
Por un lado, utilizo 1.1.1.1 Faster & Safer Internet de Cloudflare, conocida también como WARP. Es una VPN de Cloudflare que tiene opción gratuita y de pago.
Por otro lado, para acceder a ciertos servidores, tengo mis propios accesos por VPN usando OpenVPN, algo imprescindible. Para acceder a servidores en producción o sitios críticos, siempre, siempre VPN.
Una vez conectado donde deseamos, entramos en el resto de herramientas necesarias, y aquí pueden ser muy diversas, pero para conexión de consola la reina es SSH, y para esta hay una herramienta única y específica para mí. Es JuiceSSH, de la cual puedo decir que merece mucho la pena tener la versión de pago.
A parte de poder hacer una conexión rápida, la ventaja es poder gestionar diversas conexiones e identidades, además de que tiene diferentes plugins opcionales e útiles, como por ejemplo Port Knocker.
Otras opciones de conexión remota que tengo para otros casos de emergencia y más puntuales son el Escritorio Remoto de Google, AnyDesk, y Remote Desktop Client de Microsoft.
Con todas estas opciones cubro mis necesidades principales de conectividad.
Acceso a Base de Datos
Aquí también tenemos decenas de opciones y, de hecho, las que tengo las he usado pocas veces. Normalmente con el acceso remoto o con la conexión SSH suelo tener suficiente, pero nunca se sabe.
Tengo solo dos clientes instalados. MySQL Viewer, y RemoDB SQL Client.
Emulación de Terminal y otras distros de Linux
Aquí empieza un apartado tan interesante como complejo y versátil. Android es un sistema basado en Linux, pero siempre ha habido esta espinita clavada en los desarrolladores de que no disponga de una consola de comandos incluida. No era su objetivo, y menos pensado en el usuario en general. Pero siempre hay desarrolladores dispuestos a ofrecernos algunas maravillas.
Este apartado se reduce a dos aplicaciones:
Termux
Para mí, es una de las principales herramientas y más útiles, aunque todo depende del momento y las necesidades.
Termux es un emulador de terminal que nos permite hacer un sinfín de operaciones. Es el terminal por excelencia para Android. Cuidado, no serás root (al menos en un teléfono estándar) y no lo requiere. Yo no lo necesito, pero tienes opción de rootear el teléfono o bien instalar herramientas que simulen privilegios de root como T-root.
Se pueden instalar diversos paquetes, herramientas, y casi cualquier cosa (digo casi porque sería muy atrevido decir todo) que corra en Linux. También usar SSH para conectar a otros equipos, con lo que casi nos ahorramos JuiceSSH.
Termux me ha permitido hacer desde un escaneo y reconocimiento de red con nmap, pasando por analizar un código ofuscado en php y ejecutar pequeñas partes para estudiar su comportamiento, hasta reversear un binario usando radare2.
Una vez instalado Termux, es cuestión de instalar y personalizar las herramientas que se necesiten, como haríamos en cualquier otra distribución de Linux. Yo tengo instalado php, python, git, curl, nmap, hexcurse, radare2, y decenas de herramientas y utilidades más.
Y los que estén más puestos en el entorno de INFOSEC y CIBERSEGURIDAD, ya sabrán que también se puede instalar la distribución móvil de Kali Linux, la llamada Kali Nethunter.
Y como no, instalar un compilador de C, crear código y compilarlo.
El abanico de posibilidades es muy amplio y encontrarás gran cantidad de información en la completa Wiki disponible.
No todo se reduce a Termux, a pesar de ser tan versátil. Tengo otra herramienta.
UserLAnd
UserLAnd es una aplicación de código abierto que permite ejecutar varias distribuciones de Linux como Alpine, Arch, Ubuntu, Debian y Kali.
A diferencia de Termux, instala toda una distribución, con sus usuarios, consola e incluso entorno gráfico. Conectaremos con esta distribución bien por ssh o por VNC.
A todo esto, hace unos días me propuse a modo experimental ver si sería posible instalar Ghidra, la herramienta de ingeniería inversa de la NSA, dentro de una distro de Linux en UserLAnd.
A pesar de tener algunos errores al principio, la instalación es posible, y carga correctamente teniendo en cuenta las limitaciones del dispositivo móvil.
Es posible crear un nuevo proyecto y desensamblar el código.
Por supuesto, todas estas aplicaciones pueden funcionar al mismo tiempo como en cualquier otro equipo de sobremesa o notebook, tal y como se puede apreciar en la siguiente imagen.
Servicios en la nube
A todo esto, y ateniéndonos que no siempre vamos a llevar todos los datos en nuestro teléfono móvil, también me apoyo en servicios en la nube, entre ellos Dropbox, Mega, GDrive o OneDrive. En cada uno de estos puedo tener ciertos datos, pero nunca datos importantes, sensibles o como única copia. Para ello tengo mi propia nube privada usando SeaFile. Se que en la actualidad puede haber otras soluciones mejores que SeaFile, pero el cliente para Android me funciona bien y me ha permitido tener siempre a mano datos importantes que están en mis propios servidores.
Exploración de red y otras utilidades
También son necesarias otras herramientas complementarias como el administrador de archivos Total Commander, un cliente SAMBA, AndSMB, o un cliente FPT como AndFTP.
O herramientas para escaneo de red como Port Authority, Fing, o Wifi Analyzer, entre otras.
Esas que se usan poco, pero a veces cuando estas conectado en una red desconocida las puedes necesitar para buscar algún equipo, servicio, o ver la cobertura WiFi en el caso de Wifi Analyzer. También es cierto que para escanerar la red podría abrir Termux y usar nmap. 😏
Ya para finalizar, pondré una que es indispensable para mi dentro de todo este entramado de herramientas. La gestión de las contraseñas se puede volver un problema grande y complejo cuando el número de cuentas de acceso a diferentes sistemas va aumentando. Más si cabe, en el caso de tener que gestionar contraseñas de diferentes clientes. Por supuesto, no habrás pensado que las iba a guardar en un bloc de notas, o en Google Keep, ¿no? ¿o sí? 🙄
Claro que no. Es algo que no se puede tomar a la ligera. Para ello uso KeePass, en el caso de Android KeePassDroid. Combinando para ello un archivo cifrado con una contraseña fuerte y almacenado en mi nube privada, me permite tener las contraseñas organizadas y sincronizadas entre todos mis dispositivos.
Finalizo este resumen con la certeza de que me dejo algunas Apps en lista, pero que alargarían ya innecesariamente el objetivo de este artículo.
El lector debe de ser consciente que el teléfono móvil que lleva en el bolsillo es miles de veces más potente que el ordenador de la nave Apolo que llevó el hombre a la Luna. Así que, no menos tengas este equipo y sácale provecho.