Ejecutar aplicaciones modo gráfico a través de una conexión ssh

Es posible que en la administración de otro equipo tengamos que iniciar una aplicación en modo gráfico.
Cuando nos conectemos de forma remota a otro equipo utilizando ssh, añadiremos la opción -X
ssh <dirección ip host> -X -l <nombre usuario al que nos vamos a conectar>
 En este caso podríamos iniciar Firefox y se mostraria en nuestra pantalla pero toda la ejecución se realizaría en el equipo esclavo.
Si no incluimos la opción -X y queremos iniciar una aplicación en modo gráfico nos notificarian un error.
firefox
Error: no DISPLAY environment variable specified

Navegar seguro usando la red Tor

Es evidente que en mundo conectado cualquier paso que des es registrado, almacenado y analizado. En casa alguien busca comida hindú, y a ti en la red social que utilizas habitualmente te muestra un anuncio de un restaurante cerca de ti con ese tipo de comida.
Dentro de las herramientas que podemos utilizar para no ser rastreados en nuestras deambulación por la red de redes se encuentra el navegador Tor.
Podemos descargar el navegador para distintos sistemas operativos, es multiplataforma.
Microsoft WindowsApple MacOSGNU/Linux
En el caso de GNU/Linux, descargaremos la última versión del acorde con la arquitectura de nuestro equipo, ya sea de 32 o 64 bits:
wegt https://www.torproject.org/dist/torbrowser/8.0.6/tor-browser-linux32-8.0.6_es-ES.tar.xz
wegt https://www.torproject.org/dist/torbrowser/8.0.6/tor-browser-linux64-8.0.6_es-ES.tar.xz
Descomprimimos el archivo que hemos descargado con la instrucción  tar -xvJf
tar -xvJf tor-browser-linux32-8.0.6_es-ES.tar.xz
o para 64

tar -xvJf tor-browser-linux64-8.0.6_es-ES.tar.xz
 Accedemos a la carpeta que acabamos de descomprimir
cd tor-browser_es-ES
Y lanzamos el navegador con el comando
./start-tor-browser.desktop




Aquí se nos muestra el poder de la red TOR. Nuestra navegación es descentralizada, se realiza a través de: "...en una red distribuida de relés administrados por voluntarios de todo el mundo: evita que alguien que observa su conexión a Internet aprenda qué sitios visita, impide que los sitios que visita aprendan su ubicación física, y te permite acceder a sitios que están bloqueados."

Realizando la navegación por capas, como si fuera una cebolla, para dificultar e impedir que la pagina que estamos visitando pueda obtener información sobre nuestra ubicación.



Desregistrar iMessage

Un día cae en tus manos  un iPhone, el iPad o el iPod touch; y pruebas todas las propiedades como un niño con un juguete nuevo. Poco a poco vas descartando utilidades y servicios, entre ellos iMessage y FaceTime, simplemente por que nadie de tus conocidos los utiliza.
Puede ser que continúes, o no con un dispositivo de la marca de la manzana mordida y en la factura del mes de tu proveedor de telefonía (Vodafone, Orange, Movistar, Yoigo ...) te llama la atención un cargo de 0,60€ 😱 de un sms internacional, un número que no conoces 004 475 37410220 .
Compruebas que ese mensaje no ha sido enviado ni recibido en tu celular y reclamas a tu compañia que ese cargo se te ha asignado de forma errónea. La amable señorita 😴 (en mi caso la atención al cliente de Vodafone) te informa que esos 0,60€ se los ha embolsado Apple 😠 por un servicio que no has utilizado y no tienes intención de utilizar.
Buscando y buceando encontré una dirección web donde darse de baja de este servicio y te explica como desactivar el uso de iMessage, Desregistrar iMessage.

https://selfsolve.apple.com/deregister-imessage/


Saber el tiempo que hace en terminal

Buscando en la red me encontré con esta publicación Las mejores apps para consultar el tiempo en Linux
Entre ellas destaca Wttr.in. Con un formato simple nos muestra el tiempo, bien desde nuestra ubicación, aunque no es muy precisa, o bien indicando una dirección.
Podemos consultar que tiempo va ha hacer mañana desde nuestro navegador:
http://wttr.in/valladolid

 Podemos realizar peticiones de forma más minimalista si solo queremos saber que temperatura hay:

http://wttr.in/mountainview?format=3



O bien realizar consultas desde nuestro terminal y utilizando el comando curl.
Accederemos a la dirección de esta curiosa estación meteorológica, obteniendo información detallada del tiempo en la ubicación que hemos solicitado, en este caso de Valladolid
curl wttr.in/valladolid



Webmin, salvavidas para los que no somos puritanos de la linea de comandos

No me considero puritano de la línea de comandos, incluso es desesperante 😣😱.
Si que es cierto que para la gestión de nuestro equipo, servidor local o remoto es una herramienta imprescindible; y nos permite un consumo mínimo de recursos.
Pero la carne es debil. Webmin es una herramienta para la gestión sistemas Unix, como GNU/Linux y OpenSolaris basado en web; si podremos utilizar el ratón 😈. Está escrito en Perl, se encuentra en español y como he dicho es vía web, con lo cual es multiplataforma.

Wiki Webmin


En la siguiente página se encuentra los distintos formatos de empaquetado para poder instalarlo en nuestro equipo
http://www.webmin.com/download.html
wegt  https://prdownloads.sourceforge.net/webadmin/webmin_1.900_all.deb
sudo dpkg -i webmin_1.900_all.deb
En mi caso la instalación en una Raspberry con el sistema operativo Raspbian no hubo ningún problema. Pero en Linux Mint 19.1 Cinnamon no resulto tan fácil y tuve que resolver dependencias con un paquete que faltaba.

Una vez instalado, accederemos desde nuestro navegador a la dirección ip que queremos administrar a través de protocolo seguro https y el puerto 10.000:

https://localhost:10000/

Puede ser que tu navegador te recuerde que la conexión no es privada, continuamos de todos modos.


Y solo nos quedará iniciar sesión como root o como el usuario que tengamos como administrador

Resolver dependencias al instalar un paquete

La instalación de paquetes en linux, en algunos casos, suele ser frustrante; sobre todo si el programa que queremos instalar tiene la necesidad de tener instalados previamente en nuestro equipo otros paquetes para que funcione.
Instalaciones incompletas nos bloquea el instalador para nuevos paquetes.
En mi caso instalado el paquete
sudo dpkg -i webmin_1.900_all.deb
Quedo incompleta su instalación, ya que dependía de la instalación de paquetes que no se encontraban en el sistema:
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias     
Leyendo la información de estado... Hecho
Tal vez quiera ejecutar «apt --fix-broken install» para corregirlo.
Los siguientes paquetes tienen dependencias incumplidas:
 webmin : Depende: libauthen-pam-perl pero no está instalado
          Depende: apt-show-versions pero no está instalado
E: Dependencias incumplidas. Intente «apt --fix-broken install» sin paquetes (o especifique una solución).
Ejecutando el comando apt-get
sudo apt-get --fix-broken install
 Leyendo lista de paquetes... Hecho
Creando árbol de dependencias     
Leyendo la información de estado... Hecho
Corrigiendo dependencias... Listo
Se instalarán los siguientes paquetes adicionales:
  apt-show-versions libauthen-pam-perl
Se instalarán los siguientes paquetes NUEVOS:
  apt-show-versions libauthen-pam-perl
0 actualizados, 2 nuevos se instalarán, 0 para eliminar y 0 no actualizados.
1 no instalados del todo o eliminados.
Se necesita descargar 0 B/52,8 kB de archivos.
Se utilizarán 172 kB de espacio de disco adicional después de esta operación.
¿Desea continuar? [S/n] s
Seleccionando el paquete libauthen-pam-perl previamente no seleccionado.
(Leyendo la base de datos ... 367984 ficheros o directorios instalados actualmente.)
Preparando para desempaquetar .../libauthen-pam-perl_0.16-3build5_amd64.deb ...
Desempaquetando libauthen-pam-perl (0.16-3build5) ...
Seleccionando el paquete apt-show-versions previamente no seleccionado.
Preparando para desempaquetar .../apt-show-versions_0.22.7ubuntu1_all.deb ...
Desempaquetando apt-show-versions (0.22.7ubuntu1) ...
Configurando libauthen-pam-perl (0.16-3build5) ...
Configurando apt-show-versions (0.22.7ubuntu1) ...
** initializing cache. This may take a while **
Configurando webmin (1.900) ...
Webmin install complete. You can now login to https://localhost:10000/
as root with your root password, or as any user who can use sudo
to run commands as root.
Fueron satisfechas las dependencias y terminando correctamente la instalación, en este caso, de Wemin

Como asignar un puerto a una VLAN

Una vez que hemos creado nuestras VLAN, distribuiremos los puertos de nuestro switch o router, las distintas redes virtuales.
Utilizaremos los siguientes comandos en el shell del equipo:
Switch>enable
Switch#configure terminal
Switch(config)#interface fastEthernet 0/1
Switch(config-if)#switchport access vlan 1
Utilizando simulador Packet Tracer de Cisco

Como crear redes virtuales VLAN

Com crear redes virtuales o VLAN en switch, conmutadores o routers Cisco a través de la linea de comandos utilizando el protocolo SSH.
Switch>enable
Switch#configure terminal
Switch(config)#vlan 1
Switch(config-vlan)#
Utilizando simulador Packet Tracer de Cisco 

Inicializar nuestro script al inicio del sistema

Resulta interesante arrancar nuestro script cada vez que se inicie nuestro sistema operativo basado en Linux.
Daremos privilegios de ejecución
sudo chmod +x script.sh
Copiaremos nuestro  script, con el comando cp,  a la carpeta /etc/init.d/
sudo cp script.sh /etc/init.d/
Con el comando update-rc.d añadiremos el archivo en el arranque de Linux.
sudo update-rc.d script.sh defaults

Crear un dominio con una ip dinámica con Google Domains en Linux

Si tienes alojado un dominio en Google Domains te permite enlazar dicho dominio o subdomino a una dirección ip dinámica.

Por ejemplo puedes alojar un servidor web oficina en tu casa. El gran inconveniente es que los proveedores de servicios de internet suelen crearte direcciones de acceso a internet que cambian con el tiempo, a no ser que quieras pagar por la opción de obtener una ip estática.

Entre las opciones que te permiten enlazar con una ip dinámica, o DNS dinamico, y con la que conseguí un resultado exitoso es utilizando su API.

La API requiere HTTPS. A continuación, encontrará un ejemplo de solicitud:
https://username:password@domains.google.com/nic/update?hostname=subdomain.yourdomain.com&myip=1.2.3.4
En mi caso escribí un script que cargue en la Raspberry Pi, para enlazar un servidor web.
nano ddns.sh
Le enviaremos a nuestro servidor DDNS a través de la dirección que nos proporcionan utilizando el comando curl. Los datos de acceso son aquellos que nos proporciona Google Domains. Y la dirección ip dinámica publica nos la obtendrá el comando  curl -s ifconfig.me
#! /bin/bash
ip="https://username:password@domains.google.com/nic/update?hostname=subdomain.yourdomain.com&myip=$(curl -s ifconfig.me)"
curl "$ip"
Le daremos a nuestro archivo la capacidad de ser ejecutado
chmod +x ddns.sh  
Lanzaremos nuestro script
./ddns.sh 
Comprobando su correcto funcionamiento


 Si todo es correcto cargaremos nuestro script al inicio de nuestro equipo y nuestro domino enlazará con nuestro hosting web casero