Mostrando entradas con la etiqueta raspberry. Mostrar todas las entradas
Mostrando entradas con la etiqueta raspberry. Mostrar todas las entradas

No tiene suficiente espacio libre en /var/cache/apt/archives/

 No tiene suficiente espacio libre en /var/cache/apt/archives/


sudo du -sh /var/cache/apt/archives

Quedarse sin espacio no es lo más habitual si utilizas grandes computadoras. Pero es problema muy común en ordenadores antiguos, o como es el caso en una Raspberry a la hora de actualizar el sistema operativo.

Primero vamos a averiguar que cantidad de memoria está ocupando los archivos en la caché. Utilizaremos el comando du (Uso de Disco) con el argumento -sh

  • -s, pantalla Resumir sólo un total para cada argumento.
  • -h, tamaños de impresión. Formato legible por el hombre (por ejemplo, 1K 234M 2G)

sudo du -sh /var/cache/apt/archives


sudo apt clean

En mi caso el espacio ocupado por la caché de los repositorios es de 85Mb. Y después de utilizar el comando apt clean reducimos al tamaño de una carpeta vacía.
sudo apt clean

sudo apt-get clean

 

 




Conectar a servidor base de datos MariaDB

Puede ser el caso que además de gestionar una base de datos SQL en local, necesitamos gestionarla en remoto. En la mayoría de los servidores de hospedaje web, no nos permiten conectarnos a la servidor de base de datos en remoto, tenemos que hacerlo en local. Una de las herramientas más utilizadas es PhpMyAdmin. Este caso en concreto he instalado un servidor de base de datos MariaDB Server en una Raspberry. Tengo muy oxidado el lenguaje SQL como para acceder al servidor a través de SSL y realizar todas las tareas de instalación de rablas y mantenimiento desde el cliente de MariaDB. Quiero gestionarla en un entorno más amigable, pero no quiero instalar a mayores un servidor Apache con PHP para poder utilizar PhpMyAdmin.

Logo MariaDBMariaDB  es un sistema de gestión de bases de datos derivado de MySQL con licencia GPL (General Public License). Es desarrollado por Michael (Monty) Widenius —fundador de MySQL—, la fundación MariaDB y la comunidad de desarrolladores de software libre.1​ Introduce dos motores de almacenamiento nuevos, uno llamado Aria —que reemplaza a MyISAM— y otro llamado XtraDB —en sustitución de InnoDB—. Tiene una alta compatibilidad con MySQL ya que posee las mismas órdenes, interfaces, API y bibliotecas, siendo su objetivo poder cambiar un servidor por otro directamente.
Aunque el tutorial es para MariaDB, este puede ser extensible si así fuera un servidor de MySQL.

De forma predeterminada y por seguridad no permiten el acceso remoto, solo se permite acceso atraves de localhost.

Una vez instalada el servidor y el cliente en nuestra distribución. Aseguramos la instalación lanzando el comando:

sudo mysql_secure_installation 

 Enter current password for root (enter for none): Pulsa enter Introduzca la contraseña actual para root (ingrese para none): Pulse Enter
 Set root password? [Y/n]: Y ¿Establecer contraseña del root? [Y/n]: Y
 New password: Enter password Nueva contraseña: Introduzca contraseña
 Re-enter new password: Repeat password Reescribir nueva contraseña: Repetir contraseña
 Remove anonymous users? [Y/n]: Y¿ Borrar usuarios anónimos? [Y/n]: Y
 Disallow root login remotely? [Y/n]: Y¿No permitir el acceso al root desde remoto? [Y/n]: Y
 Remove test database and access to it? [Y/n]:  Y ¿Borrar Bases de datos Test y su acceso? [Y/n]: Y
 Reload privilege tables now? [Y/n]:  Y ¿Recargar privilegios a las tablas ahora? [Y/n]: Y

No vamos a permitir al root acceder desde remoto, no es considerado de una buena praxis de seguridad que el administrador se pueda conectar en remoto. Por el contrario vamos a crear un usuario nuevo y le vamos a dar privilegios de acceso desde remoto. En este caso indicaremos que el usuario se puede conectar desde cualquier equipo de nuestra LAN. Con 192.168.100 indicamos que subred se puede conectar usando el carácter % como comodín para indicarle que cualquier equipo de esta. También podríamos limitar aun más indicando la dirección ip del equipo desde el que únicamente puede acceder en remoto. Creando un entorno aun más seguro

CREATE USER 'nuevo usuario'@'192.168.100.%';
 
GRANT ALL PRIVILEGES ON *.* TO 'nuevo usuario'@'192.168.100.%' IDENTIFIED BY 'nueva contraseña' WITH GRANT OPTION;

Seguidamente configuraremos de forma manual, no solo el acceso en local, si no el acceso en remoto.
Deberemos localizar los archivos de configuración de MySQL o de MariaDB.
  • /etc/my.cnf                         
  • $MYSQL_HOME/my.cnf
  • /etc/mysql/my.cnf                      
  • SYSCONFDIR/my.cnf                     
  • DATADIR\my.ini                           Windows
Editando el archivo de configuración /etc/mysql/my.cnf

sudo nano /etc/mysql/my.cnf
 

# The MariaDB configuration file
#
# The MariaDB/MySQL tools read configuration files in the following order:
# 1. "/etc/mysql/mariadb.cnf" (this file) to set global defaults,
# 2. "/etc/mysql/conf.d/*.cnf" to set global options.
# 3. "/etc/mysql/mariadb.conf.d/*.cnf" to set MariaDB-only options.
# 4. "~/.my.cnf" to set user-specific options.
#
# If the same option is defined multiple times, the last one will apply.
#
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.

#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

# Import all .cnf files from configuration directory
!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mariadb.conf.d/

Nos indica los directorios donde se encuetra el archivo que estamos buscando para editarlo. 50-server.cnf

sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf

Buscaremos la sección [mysqld]  donde editaremos los valores que nos permitan conexiones externas. Este es un ejemplo real de configuración que me ha permitido conectarme al servidor desde otro equipo.

[mysqld]

#
# * Basic Settings
#
user                    = mysql
pid-file                = /run/mysqld/mysqld.pid
socket                  = /run/mysqld/mysqld.sock
port                    = 3306
basedir                 = /usr
datadir                 = /var/lib/mysql
tmpdir                  = /tmp
lc-messages-dir         = /usr/share/mysql
#skip-external-locking

# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address            = 127.0.0.1
bind-address            = 0.0.0.0

.......................................................

 # * Security Features
#
# Read the manual, too, if you want chroot!
#chroot = /var/lib/mysql/
#
# For generating SSL certificates you can use for example the GUI tool "tinyca".
#
#ssl-ca = /etc/mysql/cacert.pem
#ssl-cert = /etc/mysql/server-cert.pem
#ssl-key = /etc/mysql/server-key.pem
#
# Accept only connections using the latest and most secure TLS protocol version.
# ..when MariaDB is compiled with OpenSSL:
ssl-cipher = TLSv1.2
# ..when MariaDB is compiled with YaSSL (default in Debian):
#ssl = on

Te explico de forma más detallada las lineas a editar para un correcto funcionamiento. 

  •  port                    = 3306 Es el puerto por defecto, no es necesario cambiarlo, pero si fuera necesario podríamos especificar otro puerto de accesos.
  • #skip-external-locking Comentamos esta linea para permitir que el servidor sea accesible desde el exterior. Comentamos añadiendo el carácter #
  • #bind-address            = 127.0.0.1 Tambien aañadimso el caracter # para comentar esta linea.
  • bind-address            = 0.0.0.0 Añadiremos una linea con los parametros indicados.
  • ssl-cipher = TLSv1.2 Esta parte hay que tenerla en cuenta si tenemos problemas a la hora de concetar con los certificados. Al utilizar OpenSSL descomentamos esta linea
  • #ssl = on Y comentamos esta otra. Que era la que estaba activa de forma predeterminada pero, que en mi caso no me permitía conectarme.
Una vez modificado las lineas señalas. Guardamos y salimos del editor de textos. Y reiniciamos el servicio.

sudo systemctl restart mariadb.service

Tenemos que tener en cuenta, si en nuestro servidor, tenemos instalado y corriendo un cortafuegos, debemos permitir las conexiones a través del puerto 3306, si lo hemos dejado por defecto, o el puerto que asignemos al servicio. Para añadir el permiso abrir el mencionado puerto utlizando ufw seria:

sudo ufw allow 3306/tcp

Y si solo vamos a permitir el acceso en remoto a un equipo, con una dirección ip en concreto:

 sudo ufw allow from 192.168.100.2 to any port 3306

Servicio multimedia con Plex

Una alternativa para organizar nuestros archivos multimedia es instalando un servidor Plex. Plex es un software privativo, que podremos utilizar de forma gratuita con algunas limitaciones, para embellecer nuestra bibilioteca multimedia y añadir portadas y metadatos, que si utilizamos un servidor DLNA Por ejemplo en el cliente para Smartphone solo nos permite ver un minuto en streaming. En este caso vamos a instalar su servidor en una Raspberry en la que hemos conectado un disco duro, donde se encuentran alojados nuestros archivos. Pero también podremos instalarlo en nuestro ordenador o en un NAS. Esta aplicación es multiplataforma y es posible instalar el servidor y/o su cliente en múltiples dispositivos y plataformas. La APP se encuentra disponible en el catálogo de las principales Smart TV.




Para tener la garantía de que nuestro servidor se encuentre actualizado en todo momento, añadiremos su repositorio en en nuestra lista.

echo deb https://downloads.plex.tv/repo/deb public main | sudo tee /etc/apt/sources.list.d/plexmediaserver.list

Añadiremos las fimras del nuevo repositorio
 
curl https://downloads.plex.tv/plex-keys/PlexSign.key | sudo apt-key add

Refrescaremos las lista de repositorios:

 sudo apt-get update

Y una vez que acabe la operación de actualización realizaremos la instalación de nuestro servidor Plex

 sudo apt-get install plexmediaserver

Instalar Plex server
 
Al final de la instalación nos pedira confirmación para reescribir el archivo que hemos creado al principio donde incluimos donde se encuentra los repositorios de Plex. Confirmaremos la acción por omisión que sera N.

Y ya tendremos  instalado nuestro servidor multimedia. La configuración la realizaremos desde el servicio web creado por le servidor.


En tudireccionip pondremos la dirección ip donde hemos instalado nuestro servidor multimedia Plex.



 La utilización de Plex requiere el registro de una cuenta. Si disponemos de ella podemos vincularlo a nuestro servidor, si no es asi deberemos crear una cuenta nueva.




Nos recuerdan que podremos aumentar las prestaciones si pagamos por el servicio premium.




Daremos nombre a nuestro servidor y añadiremos bibliotecas vinculadas a las carpetas donde se encuentren nuestros archivos mutiltimedia. Caundo más organicemos seamos más elegante será nuestra biblioteca y más facil sera acceder a aquello que queremos reproducir.




Hay muchas opciones de configuración, que resulta muy interesante de investigar para sacarle el maximo rendimiento. Al vincular nuestra cuenta si queremos volver a la configuración de nuestro servidor, podemos volver desde el navegador a través de l a dirección web

 
Ya solo nos quedaría instalar el cliente de Plex en nuestro reporductor multimedia y disfrutar de nuestra biblioteca.



TeamViewer salvavidas para cuñados

En los tiempos que nos toca vivir, pasando la cuarentena en casa. Resulta muy difícil acercarnos a la casa del amigo o cuñado a repararle ese problema que tiene con el ordenador o con el smartphone.
Aunque TeamViewer es privativo podemos, con limitaciones usarlo de forma gratuita.
  • Fácil de instalar y usar
  • Multiplataforma
  • No es necesario registrarse
  • La comparticion del escritorio se realiza con encriptacion
TeamViewer

 

TeamViewer es una solución todo en uno de acceso remoto rápido y seguro a ordenadores y redes, que ofrece toda una serie de potentes funciones de acceso remoto que facilitan el control remoto, permiten celebrar reuniones y proveer un servicio de asistencia técnica en la nube. Para aprovechar todo el potencial de TeamViewer, dispone de un sinfín de recursos que le muestran exactamente cómo hacerlo. Con los útiles manuales de usuario, los documentos de primeros pasos y las guías de instrucciones generales aprenderá cómo sacar el máximo partido de TeamViewer. Tanto si utiliza esta solución completa en calidad de departamento de TI o como proveedor de servicios gestionados, tiene a su disposición funciones intuitivas como Wake-on-LAN, el acceso no presencial y la asignación de tickets.

En el video vamos a controlar de forma remota el escritorio de un sistema Windows desde un ordenador con sistema Linux. La mecánica es muy sencilla, una vez descargado el programa e instalado arrancamos la aplicación, tanto en el sistema maestro como en el que vamos a controlar. En la pantalla incial ya no muestra un ticket, un número único que identificará a nuestro equipo y permitirá que sea controlado;y una contraseña. Con dos estos dos elementos identificativos es lo que utilizaremos como referencia para poder conectarlo para ser controlado de forma remota. Una vez establecida la conexión nos abrirá una nueva ventana donde veremos el escritorio a controlar y en el que podremos realizar acciones que se ejecutaran como si nos encontramos físicamente en el ordenador del amigo, familiar o cliente.
Es una herramiente muy potente, pudiendo controlar ordenadores en remoto incluso desde nuestro smartphone.
Al poder usarlo de forma gratuita nos puede salvar de un apuro. Pero si lo queremos usar profesionalmete deberemos pasar por caja.


Duck DNS servicio gratuito de DDNS

Aunque desde hace tiempo se implementó la ipv6 las operadoras de acceso a Internet no lo implementan en los hogares, aun continuamos con la ipv4 y por tanto nuestros router's aún tienen direcciones públicas dinámicas.
Para el "internet de las cosas", servidores VPN, servidores web, Nubes personales, nuestra propia red de vigilancia de cámaras..... Es complicado no tener una ip estática a la que acceder.

Entre las DDNS que nos ofrecen, de forma gratuita, acceso estable a nuestra ip dinámica, es DuckDNS.
Su página minimalista y muy simple. 




Una vez que nos hemos dado de alta nos mostrará el token que nos han asignado y podremos crear un subdominio que utilizaremos para acceder a nuestra ip dinámica.


Asignamos un nombre. Puesto que vamos a utilizar este para acceder desde internet a un servicio, o servidor que tengamos instalado en nuestra casa o empresa, no debería ser fácilmente reconocible, e incluso deberia ser ofuscado y complejo. Y por puesto no compartirlo de forma pública.

Al crear nuestro subdominio, automáticamente reconoce nuestra dirección ip. Accediendo al dirección creada el servidor DNS redirigirá a nuestro navegador a la ip registrada. Podemos crear hasta cinco subdominios con distintos nombre y podremos asignarles cinco direcciones diferentes.

DuckDNS dispone de herramientas para poder actualizar la dirección ip dinámica de nuestro servidor.


Tenemos distintos scripts,  programas para instalar, dependiendo de nuestro sistema operativo. También podemos implementarlo en nuestro router.

Si por ejemplo disponemos una Raspberry y la utilizamos como servidor, tambien la podemos utilizar para comunicar a DuckDNS nuestra nueva dirección pública.

Accederemos a nuestra Raspberry a través de la pasarela ssh

ssh pi@raspberrypi

Creamos un directorio, accedemos a él y creamos un nuevo archivo llamado duck.sh.

mkdir duckdns
cd duckdns
nano duck.sh

Copiamos el script que le informará a nuestro DDNS de nuestra dirección actual. Si hemos registrado un subdominio nos personaliza el script con dicho subdominio, nuestro TOKEN y solo tendremos que copiar y pegar.

echo url="https://www.duckdns.org/update?domains=exampledomain&token=a7c4d0ad-114e-40ef-ba1d-d217904a50f2&ip=" | curl -k -o ~/duckdns/duck.log -K -

Guardamos crtl+o y salimos del editor crtl+x . Y le otorgamos privilegios de ejecución.

chmod 700 duck.sh

Añadimos una línea en el cron que ejecutará nuestro script cada cinco minutos, manteniendo la relación de nuestro subdominio con la ip de nuestro servidor actualizada

crontab -e

*/5 * * * * ~/duckdns/duck.sh >/dev/null 2>&1

Probamos que que todo está correcto, ejecutando nuestro archivo y comprobando que nuestro archivo de eventos ha recogido el ok.

cat duck.log

Raspberry Pi Imager

Nueva forma para poder instalar en nuestra Raspberry el sistema basado en Debian. U otro sistema operativo compatible con este popular pequeño ordenador.
La nueva forma de implementar nuestro sistema operativo en la tarjeta micro-sd es mucho más sencilla y más limpia que utilizando NOOBS


Instalaremos nuestro instalador de imágenes en nuestro ordenador y montaremos la micro-sd, formateada con el sistema FAT32, sobre la que queremos montarla.

 Raspberry Pi Imager

Elegiremos el sistema operativo dentro del catalogo propios o de terceros. Sin necesidad de realizar ninguna descarga.

Catalogo sistemas operativos

O también podemos instalar otra imagen que nos resulte útil con el formato img compatible con la arquitectura ARM 

Utilidades

El proceso de instalación resulta muy sencillo y efectivo. En pocos minutos tendremos nuestro sistema operativo, servidor corriendo en nuestra Raspberry

Proceso de instalación

Instalación finalizada

Pi-Hole Aumentando nuestra seguridad y privacidad

Un servidor DNS es aquel que nos da información de la dirección ip (números raros, pero fundamentales para la comunicación a través de internet) donde se encuentra el dominio que hemos escrito en nuestro navegador.

ping google.es

En el caso que queramos acceder a www.google.es, nuestro navegador solicitará a un servidor DNS que dirección tiene este dominio y donde se encuentra
Dominio www.google.es Dirección IP 172.217.168.163

 Pi-Hole es: Bloqueo de anuncios en toda la red Pi-hole®

Página web Pi-Hole

La idea es que nuestros dispositivos realicen las peticiones DNS a Pi-Hole y este filtre las direcciones que resulten dañinas y/o contienen publicidad. Y realice la petición de las direcciones a un servidor principal siempre y cuando no se encuentre registrado en su caché acelerando el tiempo de carga de la solicitud.
En definitiva este servidor DNS caché "casero" nos filtrará el contenido publicitario, muchas veces molesto, y acelerará la carga de las páginas que vemos habitualmente en nuestro navegador.

En este caso instalaremos Pi-Hole en una Raspberry para todos los dispositivos que tenemos en casa se conecten a nuestro filtro de publicidad.

Teniendo en cuenta que nuestra Raspberry tenga una dirección estática accederemos a su terminal a través del protocolo ssh y ejecutaremos el comando
curl -sSL https://install.pi-hole.net | bash
Lanzará la instalación

Instalando Pi-Hole



Advertencia instalación


  • Nos advierte que nuestro servidor ha de tener una dirección estática.


Dirección estática servidor Pi-Hole


  • Nuestro servidor ha de solicitar la informador a un DNS primario, en este apartado elegiremos uno de la lista.Yo os recomendaría Quad9. Servidor DNS creado por IBM, que nos ofrece una alta velocidad de resolución de peticiones, no guardará registro y bloqueará direcciones peligrosas


Servidores DNS

En https://firebog.net/ podremos encontrar más catalogos de blacklist. Si nos bloquean el acceso de una pagina y consideramos que no es maliciosa, siempre podremos incluirla en la whitelist.


Servidores listas negras de páginas publicidad

  • Que versión de IP, ipv4 ipv6, queremos que sean filtradas. Lo más normal es dejar marcadas las dos, nos filtrará las direcciones ip antiguas y las que puedan incorporarse en un futuro.


Filtrar ipv4 ipv6

  • ¿Deseamos instalar el interface de administración web? Es recomendable para una administración más visual y nos permite ver estadísticas de páginas permitidas y bloqueadas por cada dispositivo que se conecte a nuestro servidor DNS.


¿Deseamos instalar el interface de administración web?
¿Instalar lighttpd necesario para el interface web?


  • ¿Crear un archivo log con todos los eventos y errores que ocurran?




  • Definir el tipo de privacidad. Puede que no estés interesado en saber o que otras personas sepan qué páginas visitas y las navegaciones queden registradas.


Definir privacidad


  • Información final sobre la dirección DNS, donde se van a guardar el registro de eventos y, en qué dirección se encuentra la administración web del servidor que hemos creado: http://pi.hole/admin y su contraseña inicial que podremos cambiar más adelante.



Ya tendremos nuestro servidor DNS caché instalado. Solo nos quedaría cambiar las direcciones DNS de los dispositivos que queramos proteger y/o filtrar a nuestro recién instalado servidor Pi-Hole


Nuestros equipos quedarán protegidos y mucha de la publicidad que se muestra en páginas web y videos a partir de ahora no se mostrará. En mi caso 9,4% de las peticiones web que se realizan mientras navego han sido bloqueadas, menos publicidad más privacidad.


Bloqueo de anuncios en toda la red Pi-hole® 

Montar disco duro usb en linux

En está ocasión quería montar un servidor dlna en una Raspberry. Para ello tenía que montar un disco duro externo en un sistema basado en Linux.
Antes de nada hay actualizar nuestro sistema para que reconozca el sistema de archivos utilizado por Windows NTFS, por que es el sistema en el que esta formateado mi disco duro y no quiero formatearlo para no perder datos.

sudo apt-get install ntfs-3g
Luego deberemos averiguar si nuestro sistema ha reconocido nuestro disco duro y donde se encuentra localizado para poder montarlo

sudo blkid

/dev/sda2: LABEL="Seagate Expansion Drive" UUID="9026****626679C4A" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="74fd**27-****-483e-bc23-******0"

/dev/mmcblk0: PTUUID="b78***38" PTTYPE="dos"

/dev/sda1: PARTLABEL="Microsoft reserved partition" PARTUUID="fca0fbe2-***-49b4-8e51-***ec23"
En mi caso el disco duro se encuentra en el directorio:

/dev/sda2

Crearemos un directorio donde montaremos nuestra unidad usb y donde accederemos a su contenido.

sudo mkdir /media/discousb

  Le indicaremos a nuestro sistema operativo que monte de forma automática nuestro disco duro en la carpeta que hemos creado. Para ello deberemos editar el archivo fstab que se encuentra en el directorio etc

nano /etc/fstab

proc /proc proc defaults 0 0

/dev/mmcblk0p6 /boot vfat defaults 0 2

/dev/mmcblk0p7 / ext4 defaults,noatime 0 1

/dev/sda2 /media/discousb ntfs defaults 0 0

# a swapfile is not a swap partition, no line here

# use dphys-swapfile swap[on|off] for that
  •  /dev/sda2 Donde se encuentra nuestro dispositivo usb en el sistema
  • /media/discousb  Carpeta donde montaremos nuestra unidad externa
  • Tipo de sistema para ntfs: vfat, ext4 o fat32
Reiniciar el sistema y ya podremos acceder a nuestro duro externo

sudo reboot

Actualizar nuestro sistema Linux

Mantener nuestro sistema actualizado nos brinda más funcionalidad, corrección de posibles errores en versiones previas y sobre todo mayor seguridad.
En este caso vamos a actualizar una Raspberry, la cual no tiene conectado ningún periférico y tenemos administrarlo de forma remota.
Accedemos mediante ssh
ssh <dirección ip raspberry> -l <nombre usuario>
Los siguientes pasos son similares, para nuestra administración en local o en remoto
Actualizamos los repositorios que se encuentran listados en el archivo /etc/apt/sources.list. Realizamos la comprobación si nuestros paquetes tienen una versión mejorada.
sudo apt-get update
Aun no hemos actualizado nuestro sistema. Esta tarea la realizaremos con el comando:
sudo apt-get dist-upgrade
Actualizando paquetes instalados en Raspberry
Actualizando paquetes instalados en Raspberry

Otra forma seria
sudo apt-get upgrade 
Entre las dos opciones que tenemos,  dist-upgrade nos facilitará la actualización resolviendo posibles conflictos con las dependencias.
upgrade
upgrade is used to install the newest versions of all packages
currently installed on the system from the sources enumerated in
/etc/apt/sources.list. Packages currently installed with new
versions available are retrieved and upgraded; under no
circumstances are currently installed packages removed, or packages
not already installed retrieved and installed. New versions of
currently installed packages that cannot be upgraded without
changing the install status of another package will be left at
their current version. An update must be performed first so that
apt-get knows that new versions of packages are available.


dist-upgrade
dist-upgrade in addition to performing the function of upgrade,
also intelligently handles changing dependencies with new versions
of packages; apt-get has a "smart" conflict resolution system, and
it will attempt to upgrade the most important packages at the
expense of less important ones if necessary. The dist-upgrade
command may therefore remove some packages. The
/etc/apt/sources.list file contains a list of locations from which
to retrieve desired package files. See also apt_preferences(5) for
a mechanism for overriding the general settings for individual
packages.

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

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

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

Montar carpeta remota FTP carpeta local en linux

En Linux hay varios programas para acceder de forma remota a nuestro servidor FTP.
Pero en esta ocasión me resultaba interesante montar una carpeta en local con acceso directo al disco duro compartido colocado en el router de la ISP y compartido mediante el protocolo FTP.
Buscando la manera más fácil y eficaz me encontré con este tutorial Montar carpeta remota FTP en Linux que utiliza el comando curlftpfs

curlftpfs(1) CurlFtpFS Manual curlftpfs(1)
NAME
curlftpfs - mount a ftp host as a local directory
SYNOPSIS
curlftpfs [options] host path
DESCRIPTION
The program curlftpfs is a tool to mount remote ftp hosts as local
directories. It connects to the host FTP server and maps its directory
structure to the path directory.
curlftpfs is powered by libcurl for all transfer-related features. See
libcurl(3) for details. The filesystem part is implemented on top of
FUSE. See http://fuse.sourceforge.net/ for details.
De forma predeterminada no estará nuestro sistema. Realizamos la instalación con el script:
sudo apt-get install curlftpfs
Crearemos la carpeta donde montaremos nuestra localización remota:

mkdir /home/usuario/ftp

Ejecutaremos el siguiente script que montara nuestra carpeta remota en local

sudo curlftpfs -o allow_other usuarioftp:contraseña@servidor.com /home/usuario/ftp -v

Con -v nos mostrará en pantalla la respuesta del servidor. Nos servirá para corregir posibles errores
Cuando comprobemos que funciona correctamente cargaremos nuestro script en el inicio de nuestro equipo