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

Obtener mi ip publica con curl

En mi caso necesita obtener mi dirección ip que estaba utilizando en internet para configurar un ddns
Wikipedia 
El DNS dinámico (DDNS) es un servicio que permite la actualización en tiempo real de la información sobre nombres de dominio situada en un servidor de nombres. El uso más común que se le da es permitir la asignación de un nombre de dominio de Internet a un dispositivo con dirección IP variable (dinámica). Esto permite conectarse con la máquina en cuestión sin necesidad de tener conocimiento de que dirección IP posee en ese momento.
El DNS dinámico hace posible utilizar un software de servidor en un dispositivo con dirección IP dinámica (como la suelen facilitar muchos ISP) para, por ejemplo, alojar un sitio web en la PC de nuestra casa, sin necesidad de contratar un hosting de terceros; pero hay que tener en cuenta que las PC caseras posiblemente no estén tan bien dotadas como los servidores de un Datacenter, ni tengan toda la infraestructura que poseen estos lugares. 
Buscando encontré que utilizando el comando curl, era posible saber mi dirección pública y añadirlo a un script, que actualizaría mi ip en mi servidor DDNS:

curl ifconfig.me

Cancelar todos los trabajos de la cola de impresión

Lance por error un trabajo a una de las impresoras que tengo. Cada vez que encendía el ordenador me notificaba que el trabajo no había sido realizado pero no encontraba la aplicación gráfica para acceder a la cola de impresión para cancelar el trabajo en Linux Mint.
Buscando, descubrí el comando
cancel
NAME
       cancel - cancel jobs

SYNOPSIS
       cancel  [ -E ] [ -U username ] [ -a ] [ -h hostname[:port] ] [ -u user‐
       name ] [ -x ] [ id ] [ destination ] [ destination-id ]

DESCRIPTION
       The cancel command cancels print jobs.  If  no  destination  or  id  is
       specified,  the  currently  printing  job on the default destination is
       canceled.

OPTIONS
       The following options are recognized by cancel:

       -a   Cancel all jobs on the named destination, or all jobs on all  des‐
            tinations if none is provided.
Y con la opción -a cancelo todos los trabajos pendientes
cancel -a 

Abrir simbolo del sistema en Windows

En alguna ocasión necesitaremos abrir el Símbolo del Sistema o el interprete de comandos de Windows.
La forma más rápida de invocarlo es buscando en el cajón de búsqueda
cmd

Si deseamos:

  • Anclar a Inicio
  • Anclar a a barra de tareas
  • Abrir en ventana nueva
  • Ejecutar como administrador
  • Abrir ubicación de archivo



  • Pulsaremos con el botón derecho sobre el icono elegiremos cualquiera una de la opciones

    Instalar Packet Tracer de Cisco

    Packet Tracer es un simulador de redes con el que crear, practicar, interactuar y programar.
    Es una herramienta de Cisco para su Networking Academy.
    La aplicación es multi-plataforma y en este caso explicaré como instalarlo bajo plataforma Linux resulta siempre 😔 más complicado.

    La inscripción en gratuita, pero obligatoria para descargar la aplicación y su posterior utilización.


    Descomprimimos descargado:
    tar -xzvf Packet Tracer 7.2 for Linux 64 bit.tar.gz -C /cisco
    Accedemos a la carpeta cisco y  ejecutamos el instalador:
    ./install
    Welcome to Cisco Packet Tracer 7.2 Installation
    Read the following End User License Agreement "EULA" carefully. You must accept the terms of this EULA to install and use Cisco Packet Tracer.
    Press the Enter key to read the EULA.

                                                    Cisco Packet Tracer
                                                 Software License Agreement
    IMPORTANT: PLEASE READ THIS CISCO PACKET TRACER SOFTWARE LICENSE AGREEMENT (THE
    "AGREEMENT") CAREFULLY.  DOWNLOADING, INSTALLING OR USING THE CISCO PACKET TRACE
    R SOFTWARE CONSTITUTES ACCEPTANCE OF THIS AGREEMENT.  IF YOU DO NOT AGREE TO ALL
     OF THE TERMS OF THIS AGREEMENT, THEN CISCO SYSTEMS, INC. ("CISCO") IS UNWILLING
     TO LICENSE THE SOFTWARE TO YOU AND YOU ARE NOT AUTHORIZED TO DOWNLOAD, INSTALL
    OR USE THE SOFTWARE.
    I. DISTRIBUTION RIGHTS.  The terms in this Section I (Distribution Rights) 
    Deberemos aceptar los terminos de uso de la aplicación ⇪

    Por defecto colocará nuestra instalación en el directorio...
    Nos solicitará privilegios de administración si confiamos en realizar la instalación en la ubicación predeterminada.
    You have accepted the terms to the EULA. Congratulations. Packet Tracer will now be installed.
    Enter location to install Cisco Packet Tracer or press enter for default [/opt/pt]:
    [sudo] contraseña para <usuario>:         
    Installing into /opt/pt
    Not able to create and copy files to /opt/pt
    Should we try to gain root access with sudo? [Yn] y
    Installing into /opt/pt
    Copied all files successfully to /opt/pt
    Creará un enlace  simbólico para facilitar el arranque de la aplicación
    Should we create a symbolic link "packettracer" in /usr/local/bin for easy Cisco Packet Tracer startup? [Yn] y
    Paso final:
    Type "packettracer" in a terminal to start Cisco Packet Tracer
    Writing PT7HOME environment variable to /etc/profile
    Writing QT_DEVICE_PIXEL_RATIO environment variable to /etc/profile
    Cisco Packet Tracer 7.2 installed successfully
    Please restart you computer for the Packet Tracer settings to take effect

    Para poder utilizar la aplicación Packet Tracer tenemos que satisfacer sus pendencias instalando la librería libpng 12
    wget http://security.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.50-1ubuntu2.14.04.3_amd64.deb
    wget http://security.ubuntu.com/ubuntu/pool/main/libp/libpng/libpng12-0_1.2.50-1ubuntu2.14.04.3_i386.deb 

    Realizamos la instalación de acuerdo con la arquitectura de nuestro dispositivo 32 ó 64 bits
    dpkg -i libpng12-0_1.2.50-1ubuntu2.14.04.3_amd64.deb
    Una vez reiniciemos nuestro equipo lanzaremos la aplicación:
    packettracer

    Como cambiar servidor DNS en linux

    Si tenemos la necesidad de cambiar o actualizar la información de los servidor de DNS  de nuestro equipo, modificaremos el fichero  /etc/resolv.conf
    Podremos utilizar el editor nano.

    sudo /etc/init.d/networking restart

    La lectura del archivo sería:

    # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
    # DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
    nameserver 9.9.9.9
    nameserver 8.8.8.8

    En cada línea seguido de namesever indicaremos la dirección ip de nuestro servidor DNS.

    Guardaremos nuestra edición Control+O y saldremos del editor con Ctrl+X
    Reiniciamos el servicio de red de nuestro equipo:

    sudo /etc/init.d/networking restart

    Acceder a otra maquina utilizando protocolo ssh

    Podemos acceder al terminal de otra maquina utilizando el protocolo ssh

    sudo ssh <ip maquina a la que queremos conectarnos> -l <nombre del usuario con el cual nos queremos conectar>

    Utilizando sudo nos permitirá aceptar la certificación de la maquina a la que queremos conectarnos aunque esta sea desconocida.
    Al agregar la opción -l indicamos con que usuario nos queremos conectar. Si omitimos esta opción se nos preguntará con que usuario nos queremos hacer login

    Matar una ventana que no responde

    No solo en Windows se quedan colgadas las ventanas. También nos puede ocurrir en nuestra distribución Linux cuando trabajamos en modo gráfico.

    Un comando util en estas ocasiones es xkill.

    Ejecutada la orden en nuestro terminal nos aparecerá un icono con una calavera, o una X. La ventana sobre la que pulsemos será detenida y eliminada.

    xkill