Shared posts

26 Aug 12:13

La riqueza de lo simple en la era de lo innecesario

Sólo basta con usar un poco más la cabeza - La riqueza de lo simple en la era de lo innecesario Este es un artículo de opinión algo personal, distinto a lo que suelo compartir en este rinconcito digital. Pero hay algo que me viene dando vueltas en la cabeza desde hace tiempo y que, aunque vivo y trabajo en...
26 Aug 12:07

BHDynamics. Filosofía espacial abierta

by Luis GuLo

🇪🇸 Tecnología espacial con sello español

BHDynamics. Filosofía espacial abierta

En el emergente ecosistema del NewSpace, donde la exploración espacial se democratiza gracias al hardware abierto y la colaboración internacional,

España cuenta con un actor singular: BHDynamics, y con su co-fundador: José Luis Tajada Herráiz.
Desde su laboratorio en Albacete, BHDynamics diseña y fabrica sistemas electrónicos avanzados para picosatélites y PocketQubes, con un enfoque educativo, modular y accesible.

José Luis Tajada: ciencia, divulgación y espacio

José Luis Tajada es un perfil atípico y fascinante.

Técnico superior en electrónica, investigador en nanotecnología, asesor en biotecnología y divulgador científico en medios como Espacio en Blanco (RNE), ha combinado su experiencia técnica con una pasión por la exploración espacial.

  • Fundador de BHDynamics, empresa dedicada al desarrollo de hardware libre para aplicaciones científicas y espaciales.
  • Ha trabajado en instituciones como el Centro Nacional de Biotecnología (CNB-CSIC) y el Institut Català de Nanociència i Nanotecnologia (ICN2).
  • Divulga ciencia en su canal Tajada’s de Ciencia, donde explica desde física cuántica hasta ingeniería aeroespacial.

Su visión: hacer que el espacio sea comprensible, accesible y emocionante para todos.

Picosatélites y PocketQubes: el espacio en la palma de la mano

BHDynamics se especializa en el diseño de picosatélites, satélites de menos de 1 kg que pueden lanzarse en órbita baja (LEO) como parte de misiones científicas, educativas o tecnológicas. Su enfoque combina:

  • Hardware modular
  • Firmware abierto y programable
  • Modelo educativo basado en la experimentación
BHDynamics. Filosofía espacial abierta
Un picosatélite

🛰️ DynOSSAT-EDU: el satélite que enseña

Uno de sus desarrollos más destacados es el DynOSSAT-EDU, un kit educativo que simula una misión espacial real.

Incluye:

  • OBC (On-Board Computer) con microcontrolador ATSAMD51J20A-AU (Cortex-M4F, 120 MHz)
  • Sensores integrados:
    • ICM-20948 (IMU de 9 ejes)
    • MCP9808 (temperatura)
    • SGP30 (calidad del aire)
  • Comunicación sub-GHz (FSK, 30 dBm)
  • Almacenamiento en microSD
  • Conectividad USB-C, I2C, SPI, UART
  • Compatible con Arduino IDE y CircuitPython
  • Licencia libre: CERN OHL v1.2

Este satélite no solo vuela: enseña.

Está diseñado para que estudiantes, makers y profesionales puedan experimentar con programación, sensores, comunicaciones y gestión energética como si estuvieran diseñando una misión real.

🛰️ NessieSAT: modularidad y diversión

Otro proyecto es el NessieSAT, un satélite educativo con módulos intercambiables:

  • Cámara
  • LEDs programables
  • Sensores de albedo
  • Módulos de propulsión y orientación

Inspirado por la filosofía del NewSpace, NessieSAT convierte el aprendizaje técnico en una experiencia lúdica y creativa.

Tecnología con propósito

BHDynamics no solo fabrica hardware: fabrica conocimiento.

Sus desarrollos están pensados para:

  • Formación técnica en universidades y centros educativos
  • Prototipado rápido para misiones científicas
  • Investigación en entornos extremos (espacio, biotecnología, nanotecnología)
  • Divulgación científica accesible

Además, sus sistemas pueden integrarse con redes como SatNOGS, lo que permite recibir telemetría en tiempo real desde estaciones terrestres abiertas.

Filosofía abierta y colaborativa

BHDynamics comparte la visión de organizaciones como Libre Space Foundation:

  • Uso de licencias libres (CERN OHL, GPL)
  • Documentación pública de hardware y firmware
  • Invitación a la colaboración global

Aunque no existe una colaboración formal entre ambas entidades, sus caminos convergen en la idea de que el espacio no debe ser exclusivo, sino inclusivo.

Disponen de su propio repositorio del que podeis descargar todo lo que han compartido con caracter educativo:

BH Dynamics
BHDynamics is a passion-driven electronic design company, focused on IoT and NewSpace. - BH Dynamics
BHDynamics. Filosofía espacial abiertaGitHub
BHDynamics. Filosofía espacial abierta

Conclusión: España en la vanguardia del espacio libre

BHDynamics representa una nueva forma de hacer ciencia y tecnología espacial en España: accesible, educativa, modular y abierta.

Bajo la dirección de José Luis Tajada, la empresa combina rigor técnico con pasión divulgativa, y convierte el espacio en un aula, un laboratorio y un juego.

En un mundo donde el acceso al espacio está cambiando, BHDynamics demuestra que la innovación no necesita millones, sino visión, conocimiento y voluntad de compartir.

26 Aug 11:54

Libre Space Foundation: Democratizando el acceso al espacio

by Luis GuLo

🛰️ Qúe es la Libre Space Foundation

Libre Space Foundation: Democratizando el acceso al espacio

La Libre Space Foundation (LSF) es una organización sin ánimo de lucro con sede en Grecia, fundada en 2015 por los creadores del proyecto SatNOGS.

Su misión es clara y ambiciosa: hacer que el espacio sea accesible para todos mediante el uso de tecnologías libres y abiertas.

¿Qué significa “libre” en este contexto?

LSF promueve el uso de software libre y hardware abierto en el desarrollo de tecnologías espaciales. Esto implica que cualquier persona puede estudiar, modificar, compartir y utilizar sus diseños sin restricciones comerciales. En lugar de depender de grandes corporaciones o agencias gubernamentales, LSF apuesta por la colaboración global, la transparencia y la innovación abierta.

¿Qué les hace únicos?

  • Acceso universal: democratizan el espacio eliminando barreras económicas y técnicas.
  • Hardware abierto: sus satélites y estaciones terrestres están diseñados con componentes accesibles y documentados públicamente.
  • Comunidad activa: fomentan una red global de colaboradores, desde radioaficionados hasta ingenieros aeroespaciales.
  • Educación y divulgación: organizan talleres, hackatones y colaboran con universidades para formar a la próxima generación de exploradores espaciales.

En resumen, LSF no solo construye tecnología espacial: construye comunidad y conocimiento compartido.
Puedes visitar su página web en:

Libre Space Foundation
The non-profit foundation for open source hardware and software in space.
Libre Space Foundation: Democratizando el acceso al espacioLibre Space Foundation
Libre Space Foundation: Democratizando el acceso al espacio

Tecnología y proyectos destacados

Aquí entramos en terreno técnico. LSF ha desarrollado una impresionante gama de proyectos que abarcan desde satélites hasta cohetes, pasando por redes de comunicación y herramientas de análisis de datos.

Libre Space Foundation: Democratizando el acceso al espacio

Satélites y misiones espaciales

UPSat

  • Primer satélite griego y el primero en el mundo hecho completamente con software y hardware libre.
  • Fue lanzado en 2017 como parte de la misión QB50 para estudiar la termosfera terrestre.
  • Utilizó licencias como CERN-OHLv2 para hardware y GNU GPLv3 para software.

QUBIK y PicoBus

  • Serie de PocketQubes (satélites diminutos) diseñados por LSF.
  • PicoBus es el primer desplegador de satélites de código abierto.
  • Aunque algunos lanzamientos no alcanzaron órbita, demostraron la viabilidad de sistemas abiertos en misiones reales.

PHASMA

  • Proyecto en colaboración con la ESA con un presupuesto de 2 millones de euros.
  • Consta de tres CubeSats que usarán inteligencia artificial para monitorizar el espectro electromagnético, detectar interferencias y analizar señales de navegación como GPS y Galileo.

SatNOGS: la red global de estaciones terrestres

  • Más de 500 estaciones activas en todo el mundo.
  • Permite recibir telemetría de satélites y compartirla en tiempo real.
  • Utiliza software definido por radio (SDR) y componentes accesibles como motores paso a paso y placas Arduino.

Otros proyectos técnicos

Proyecto Descripción breve
SIDLOC Sistema para identificar y localizar satélites usando el efecto Doppler
Cronos Cohete de combustible híbrido diseñado por estudiantes griegos
OpenSatCom Evaluación de modelos abiertos en telecomunicaciones satelitales
Polaris Herramienta de machine learning para analizar telemetría satelital
SDR MakerSpace Plataforma para proyectos SDR en colaboración con la ESA
MetaSat Esquema de metadatos para vincular datos, software y hardware de misiones

Repositorios en GitHub

LSF mantiene más de 20 repositorios públicos en GitHub. Algunos destacados:

  • upsat-obc-software: software del ordenador de a bordo de UPSat.
  • upsat-comms-hardware: diseño del sistema de comunicaciones.
  • upsat-plotter: script en Python para visualizar telemetría.
  • g5500-ardushield: shield Arduino para controlar antenas rotatorias.

Estos repositorios no solo documentan el trabajo técnico, sino que invitan a la colaboración abierta.
Puedes acceder a todo el repositorio en:

librespacefoundation · GitLab
Libre Space Foundation repositories for open source space technologies - https://libre.space
Libre Space Foundation: Democratizando el acceso al espacioGitLab
Libre Space Foundation: Democratizando el acceso al espacio

Algunos de sus proyectos están diseñados con el software open source KiCad y podeis verlos en la página de este software:

Space
A Cross Platform and Open Source Electronics Design Automation Suite
Libre Space Foundation: Democratizando el acceso al espacioKiCad Website
Libre Space Foundation: Democratizando el acceso al espacio
Libre Space Foundation: Democratizando el acceso al espacio
Libre Space Foundation: Democratizando el acceso al espacio
Libre Space Foundation: Democratizando el acceso al espacio

Noticias y eventos

Eventos recientes

  • En octubre de 2022, LSF volvió al espacio con el lanzamiento de QUBIK-3 y QUBIK-4 en el cohete Firefly Alpha.
  • En 2023, se anunció el proyecto PHASMA con la ESA, marcando un hito en la monitorización del espectro espacial.
  • Participación activa en el Google Summer of Code, mentorando proyectos como Polaris y gr-satnogs.
  • Organización del Open Source CubeSat Workshop, un evento anual que reúne a expertos y entusiastas del espacio libre.

Reflexión final

La Libre Space Foundation representa una revolución silenciosa pero poderosa en la exploración espacial.
En lugar de competir por supremacía tecnológica, propone colaborar por conocimiento compartido.
En lugar de ocultar sus avances, los publica.
En lugar de excluir, invita.

📡 En un mundo donde el espacio parece reservado para unos pocos, LSF nos recuerda que la curiosidad, la ciencia y la colaboración no tienen fronteras.

26 Aug 11:26

Blender 5.0: Vulkan no será el render por defecto… por ahora

Pero llega soporte HDR experimental en Linux con Wayland - Blender 5.0 tenía planes de habilitar por defecto el backend Vulkan para el renderizado, manteniendo igualmente la compatibilidad con OpenGL. Sin embargo, esos planes podrían cambiar: todo apunta a que OpenGL seguirá siendo el render por defecto cuando la nueva versión se libere a finales de este año. En Blender...
25 Aug 18:56

Debian 13 Trixie: Servidor PC

by Lordpedal

Debian

En esta sección pretendo hablar de como optimizar y adaptar la distribución Debian Trixie a un uso diario como Servidor doméstico, desde mi propia experiencia de usuario.

El recomendar Debian es poder usar la combinación de un Sistema Operativo Libre y alternativo con una gran comunidad de soporte detrás del proyecto.

En la web de descargas podremos elegir la distribución que más se adapte a nuestras necesidades.

Para el caso de esta guía vamos a emplear la plataforma AMD64, que es la más recomendable para uso en un PC con Procesador 64bits Descarga directa

Adicionalmente en la propia web podemos encontrar unas excelentes guías de instalación donde el proceso de instalación es guiado con todo tipo de detalles.

Resumiendo el procedimiento a grandes rasgos:

  1. Grabamos la ISO descargada en un CD/DVD o USB según capacidad y necesidad.
  2. Seleccionamos la opción de arranque desde el nuevo dispositivo en la configuración de nuestra UEFI/BIOS. Obligatorio deseleccionar opción de arranque rápido en Windows en caso de tenerlo activo y/o instalado.
  3. Ejecutamos el asistente de instalación.
  4. Importante tildar para instalar en sistema durante asistente instalación: Entorno de escritorio Debian + MATE + SSH server + Utilidades estándar del sistema Debian, el resto de opciones recomiendo descartarlas.
  5. Disfrutar de las bondades de un gran sistema operativo y una gran comunidad asociada al mismo.

La opción Debian Blend agrega paquetes preconfigurados, ampliar información

No recomiendo instalar ninguno en el servidor, tan solo debemos de continuar

Sistema Base

El usuario de sistema sobre el que realizare la guía es pi para seguir en la linea del blog, recordad sustituir dicho usuario por el que habéis creado durante la instalación.

Planteado el guión inicial vamos a personalizar nuestra instalación, pero antes recordando que los ajustes en su mayor parte los ejecutaremos desde una terminal de sistema.

Configurando: SUDO

Lo primero con lo que comenzamos es añadiendo nuestro usuario al grupo sudo del sistema, para ello ejecutamos en la terminal:

su

Se nos solicitara la contraseña de root que previamente le dimos en la instalación. Procedemos a instalar la aplicación:

apt-get update && apt-get -y install sudo nano

A continuacion debemos de añadir nuestro usuario a los principales grupos del sistema, entre ellos sudo:

cd /sbin && \
./usermod -aG audio pi && \
./usermod -aG video pi && \
./usermod -aG dialout pi && \
./usermod -aG plugdev pi && \
./usermod -aG tty pi && \
./usermod -aG sudo pi

Si no es así haz caso omiso, el fallo reside en el PATH del Sistema que durante el resto de configuraciones del server se corrige.

Vamos a repasar los principales atajos de teclado que encontramos en el editor nano:

Acción Resultado
Control + O Guardar fichero
Control + X Salir del editor
Control + X Salir del editor
Control + C Muestra número linea donde se encuentra cursor
Control + K Cortar linea
Control + U Pegar linea
Control + W Buscar en el fichero
Control + W + R Buscar y reemplazar en el fichero

Añadimos privilegios sudo a nuestro usuario editando la configuración:

nano /etc/sudoers

Y agregamos la siguiente sentencia al final del archivo:

# MOD
pi ALL=(ALL) NOPASSWD: ALL

Guardamos los cambios, salimos del editor de texto y salimos de la sesión root.

exit

Y ya tendremos configurado debidamente el perfil sudo en nuestro usuario de sistema.

Ajustando: Repositorios Sistema

El gestor de paquetes Apt/Aptitude/Synaptic de nuestra distribución se basa en un listado de fuentes de instalación. Primero haremos un backup de las actuales y crearemos una personalizada:

cd /etc/apt && \
sudo mv sources.list sources.pi && \
sudo nano sources.list

En el documento en blanco que se nos abre, añadimos las nuevas personalizadas:

# Oficiales
deb http://deb.debian.org/debian/ trixie main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian/ trixie main contrib non-free non-free-firmware

# Seguridad
deb http://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware
deb-src http://security.debian.org/debian-security trixie-security main contrib non-free non-free-firmware

# Actualizaciones Sistema
deb http://deb.debian.org/debian/ trixie-updates main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian/ trixie-updates main contrib non-free non-free-firmware

# Actualizaciones Sistema Backports
deb http://deb.debian.org/debian trixie-backports main contrib non-free non-free-firmware
deb-src http://deb.debian.org/debian trixie-backports main contrib non-free non-free-firmware

Guardamos los cambios, salimos del editor de texto y actualizamos el listado de paquetes de software y posibles actualizaciones del mismo:

sudo apt-get clean && \
sudo apt-get autoclean && \
sudo apt-get -y autoremove && \
sudo apt-get update && \
sudo apt-get -y upgrade && \
sudo apt-get -y dist-upgrade

Tras finalizar la actualización tendremos el sistema actualizado y con las últimas novedades/parches instalados.

Utilidades Sistema

Posiblemente tendrás algún controlador pendiente de actualizar y/o instalar el driver necesario para poder interactuar con el y no esta compilado en el kernel. Una solución sencilla es instalar un paquete con algunos de los principales drivers (3Com, Atheros, Radeon, …), y si además queremos maximizar la eficiencia de nuestro procesador instalaremos este parche:

AMD 64bits & INTEL 64bits

sudo apt-get update && \
sudo apt-get -y install firmware-linux-nonfree \
amd64-microcode intel-microcode

Si necesitamos des/comprimir algún fichero de nuestro sistema y no se encuentra dentro de los formatos más habituales de GNU/Linux, deberemos de darle soporte para poder interactuar:

sudo apt-get update && \
sudo apt-get -y install rar unrar zip unzip unace bzip2 lzop p7zip \
p7zip-full p7zip-rar sharutils lzip xz-utils mpack arj cabextract

Otro conjunto de utilidades adicionales a instalar que necesitaremos para futuros usos son:

sudo apt-get update && \
sudo apt-get -y install mc htop curl bc git wget curl dnsutils exfat-fuse ntfs-3g hfsprogs \
hfsplus build-essential automake libtool uuid-dev psmisc linux-source yasm lsof \
autoconf g++ subversion linux-source tofrodos git-core subversion dos2unix \
make gcc automake cmake git-core dpkg-dev fakeroot pbuilder dh-make debhelper devscripts \
patchutils quilt git-buildpackage pristine-tar git yasm cvs mercurial libexif* libid3tag* \
libavutil* libavcodec-dev libavformat-dev libjpeg-dev libsqlite3-dev libexif-dev libid3tag0-dev \
libogg-dev libvorbis-dev libflac-dev ffmpeg libssl-dev libgnutls-openssl-dev \
linux-headers-`uname -r`

Configurando Idioma Sistema

Ejecutaremos un pequeño asistente con la orden de terminal:

sudo dpkg-reconfigure locales

Para poner nuestro sistema en español, tenemos que marcar las siguientes opciones en el asistente configuración de locales y deseleccionar cualquier otra que pudiese estar activa:

  • en_GB.UTF-8 UTF-8
  • es_ES.UTF-8 UTF-8

Para la configuración regional predeterminada seleccionamos:

  • es-ES.UTF-8

Ejemplo salida comando:

pi@overclock:~ $ sudo dpkg-reconfigure locales
Generating locales (this might take a while)...
  es_ES.UTF-8... done
Generation complete.

Y a continuación configuro franja horaria sistema con el asistente:

sudo dpkg-reconfigure tzdata

Ejemplo salida comando:

pi@roverclock:~ $ sudo dpkg-reconfigure tzdata

Current default time zone: 'Europe/Madrid'
Local time is now:      Sat Jul 15 18:00:20 CEST 2023.
Universal Time is now:  Sat Jul 15 16:00:20 UTC 2023.

Configurando TTY

Este paso aunque no es obligatorio en un entorno de Servidor, si lo considero que es altamente recomendado para optimizar recursos de sistema. Lo que vamos a hacer es deshabilitar el autoinicio del entorno gráfico instalado MATE

Lo que debemos de hacer a continuacón es adaptar el sistema a un arranque sin gestor de inicio sesiones LightDM

Para ello instalamos y configuramos la siguiente dependencia:

sudo apt-get -y install xserver-xorg-legacy

Vamos a reconfigurarla debidamente, previo backup de su configuración:

sudo mv /etc/X11/Xwrapper.config /etc/X11/Xwrapper.bak && \
sudo nano /etc/X11/Xwrapper.config

Agregamos el siguiente contenido al fichero que estamos editando:

# Xwrapper.config (Debian X Window System server wrapper configuration file)
#
# This file was generated by the post-installation script of the
# xserver-xorg-legacy package using values from the debconf database.
#
# See the Xwrapper.config(5) manual page for more information.
#
# This file is automatically updated on upgrades of the xserver-xorg-legacy
# package *only* if it has not been modified since the last upgrade of that
# package.
#
# If you have edited this file but would like it to be automatically updated
# again, run the following command as root:
#   dpkg-reconfigure xserver-xorg-legacy
needs_root_rights=yes
allowed_users=anybody

Guardamos los cambios y salimos del editor de texto. Ahora vamos a reconfigurar SystemD para el arranque en terminal:

sudo systemctl set-default multi-user.target

Llegado a este punto el sistema tras un reinicio o encendido del PC nos solicitaria el usuario: pi y su contraseña: **** para hacer login en terminal.

Autologin TTY

Podemos configurar un autologin que no lo recomiendo pero lo dejo a modo informativo.

sudo mkdir -p /etc/systemd/system/getty@tty1.service.d && \
sudo nano /etc/systemd/system/getty@tty1.service.d/override.conf

Agregamos el siguiente contenido al fichero que estamos editando:

[Service]
Type=simple
ExecStart=
ExecStart=-/sbin/agetty --autologin pi --noclear %I 38400 linux

Guardamos los cambios y salimos del editor de texto.

Configurando RC.LOCAL

Si no queremos crear un script único para la ejecución de un comando o un script cada vez que iniciamos un sistema tipo Unix (BSD, Gnu/Linux, etc) tenemos la posibilidad de llamarlo desde el fichero /etc/rc.local.

Cualquier comando que coloquemos o script al que llamemos en dicho fichero será ejecutado al final del arranque, es decir, cuando todos los scripts que tenemos en el runlevel correspondiente hayan sido ejecutados.

Esta opción no viene habilitada por defecto en Debian 13 y para ello tendremos que habilitarla, creamos el servicio para Systemd:

sudo nano /etc/systemd/system/rc-local.service

Agregamos el siguiente contenido al fichero que estamos editando:

[Unit]
Description=Script /etc/rc.local
ConditionPathExists=/etc/rc.local

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target

Guardamos los cambios, salimos del editor de texto, ahora pasamos a crear el fichero rc.local

sudo nano /etc/rc.local

Agregamos el siguiente contenido al fichero que estamos editando:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

# SALIR
exit 0

Guardamos los cambios, salimos del editor de texto, debemos de darle permisos de ejecución al ficher creado:

sudo chmod +x /etc/rc.local

Habilitamos el servicio para que se ejecute al inicio del sistema y lo lanzamos para comprobar el correcto funcionamiento:

sudo systemctl enable rc-local && \
sudo systemctl start rc-local.service && \
sudo systemctl status rc-local.service

Llegado a este punto de configuración del servidor recomiendo un reset al sistema:

sudo reboot

ZRAM

Ampliar información en esta entrada

Tras el reinicio el sistema arrancara en TTY. Adjunto cuadro resumen con los principales comandos terminal:

Comando terminal Resultado
startx Arrancar entorno gráfico (MATE)
exit Salir/Cerrar sesión TTY
sudo su Iniciar sesion como ROOT
sudo reboot Reiniciar sistema
sudo poweroff Apagar sistema

Alías

En informática alias es una orden disponible en varios intérpretes de comandos tales como los shells de Unix, 4DOS/4NT y Windows PowerShell, que permite reemplazar una palabra o serie de palabras con otra. Su uso principal es el de abreviar órdenes o para añadir argumentos de forma predeterminada a una orden que se usa con mucha frecuencia. Los alias se mantienen hasta que se termina la sesión en la terminal, pero normalmente se suelen añadir en el fichero de configuración del intérprete de órdenes para de esta forma siempre están disponibles para todas las sesiones de terminal.

Un ejemplo clarifica este tema de forma sencilla, en TTY un alías que suelo usar es reiniciar, que ejecuta la orden sudo reboot.

Para configurar los alías editaremos el fichero de configuración de nuestra distro para que tanto el usuario root como pi tengan acceso a ellos:

sudo nano /etc/bash.bashrc

Y añadiremos al final del fichero los alías que definamos:

#
# Alias
#
alias reiniciar="sudo reboot"
alias apagar="sudo poweroff"
alias instalar="sudo apt-get -y install"
alias desinstalar="sudo apt-get -y purge"
alias actualizar="sudo apt-get autoclean && sudo apt-get clean && sudo apt-get -y autoremove && sudo apt-get update && sudo apt-get -y upgrade && sudo apt-get -y dist-upgrade && sudo apt-get moo"
alias limpiarcache="sudo ldconfig && sudo sync && sudo sysctl -w vm.drop_caches=2 && sudo sync"
alias win="startx"
alias enlaces="sudo nano /etc/bash.bashrc"
alias grubfix="sudo nano /etc/default/grub && sudo update-grub"

Guardamos los cambios, salimos del editor de texto y para activarlos tendremos que volver a abrir la sesión TTY para ello solo basta con salir de ella:

exit

Y cuando tengamos de nuevo la TTY operativa con lanzar el comando actualizar se nos actualizara el Sistema Operativo a las última versión disponible.

Dejo un extracto de la ejecución del comando:

pi@overclock:~$ actualizar
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Leyendo la información de estado... Hecho
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Leyendo la información de estado... Hecho
0 actualizados, 0 nuevos se instalarán, 0 para eliminar y 0 no actualizados.
Obj:1 http://deb.debian.org/debian trixie InRelease
Des:2 http://deb.debian.org/debian trixie-updates InRelease [36,8 kB]
Obj:3 http://security.debian.org/debian-security trixie-security InRelease
Descargados 36,8 kB en 3s (11,9 kB/s)
Leyendo lista de paquetes... Hecho
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Leyendo la información de estado... Hecho
Calculando la actualización... Hecho
0 actualizados, 0 nuevos se instalarán, 0 para eliminar y 0 no actualizados.
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Leyendo la información de estado... Hecho
Calculando la actualización... Hecho
0 actualizados, 0 nuevos se instalarán, 0 para eliminar y 0 no actualizados.
                 (__) 
                 (oo) 
           /------\/ 
          / |    ||   
         *  /\---/\ 
            ~~   ~~   
..."Have you mooed today?"...

Optimizar SSD

Si contamos con más de 4GB de RAM, podemos hacer que la carpeta temporal del sistema no use el disco duro. Es la carpeta donde escriben muchas aplicaciones que estamos usando. Son datos que se borran al apagar el ordenador, con lo que no nos importa que se escriban en RAM. Para activarlo editamos nuevamente fstab:

sudo nano /etc/fstab

Y agregamos la siguiente sentencia al final del fichero:

# MODS SSD
tmpfs   /tmp   tmpfs  noatime,nodiratime,nodev,nosuid,mode=1777,defaults    0   0

Guardamos los cambios y salimos del editor de texto. Adjunto como queda mi fichero fstab:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
# / was on /dev/sdc2 during installation
#
# SSD
UUID=ea691ed1-9a94-47b3-8534-3e00c7f0922f   /   ext4    noatime,nodelalloc,i_version,inode_readahead_blks=64,errors=remount-ro  0   1
# SWAP 
UUID=b64de4e0-eedf-4e31-aeeb-e460ef6ac57c   none    swap    sw  0   0
#
# Lector DVD
#/dev/sr0   /media/cdrom0   udf,iso9660 user,noauto 0   0
#
# NAS
UUID=2f42917d-7c1f-4b7f-bff0-963f19b9dcf5   /media/rednas   ext4    defaults,relatime  0    0
#
# MODS SSD
tmpfs   /tmp    tmpfs   noatime,nodiratime,nodev,nosuid,mode=1777,defaults  0   0

La partición swap, como ya sabéis es una partición cuyo fin principal es su uso cuando la RAM está llena, pero la cual no está vacía aunque tengas la RAM a la mitad.

Por ello es recomendable decirle al sistema que la use lo menos posible, sólo si es estrictamente necesario, para ellos crearemos el fichero de configuración:

sudo nano /etc/sysctl.d/overclock.conf

Y agregamos al fichero las siguientes variables:

#
# MODS
#
vm.overcommit_memory=1
vm.swappiness=10
vm.vfs_cache_pressure=50
vm.dirty_writeback_centisecs=1500
kernel.dmesg_restrict=0
net.core.rmem_max=16777216
net.core.wmem_max=4194304
kernel.unprivileged_userns_clone=1
fs.inotify.max_user_watches=100000

Guardamos los cambios y salimos del editor de texto.

Has de saber que cuando borramos un fichero, el sistema operativo lo marca como espacio utilizable.

Los discos SSD pueden encargarse de controlar dichos bloques de espacio y reagruparlos, con lo que a través de la controladora del disco, la gestión del espacio será más rápida.

Para que la controladora se encargue, le solicitamos que analice el disco desde el sistema operativo con el comando fstrim.

Vamos a programar esta tarea, para que la realice a diario:

sudo nano /etc/cron.daily/fstrim

Y agregamos el siguiente contenido:

#!/bin/sh
/sbin/fstrim --all || true

Guardamos los cambios, salimos del editor de texto y le damos permisos de ejecución:

sudo chmod +x /etc/cron.daily/fstrim

Solamente nos queda reiniciar el Servidor para activar las nuevas mejoras:

sudo reboot

Adicionalmente me gusta agregar que tras 10 reinicios el sistema compruebe errores:

sudo tune2fs -c 10 /dev/sda1

Modding

Antes de empezar con la parte de Modding, necesitamos instalar una dependencia, que nos dara información sobre la temperatura de nuestro sistema.

sudo apt-get update && \
sudo apt-get -y install lm-sensors

A continuación debemos de ejecutar un script instalado que nos detecta la configuración de nuestro Servidor y…

sudo sensors-detect

le damos continuamente a la tecla INTRO para que tome la respuesta por defecto que es siempre que sí y de esta forma buscará todos los chips que podría analizar.

Contiuamos hasta que nos salga la siguiente pregunta:

Do you want to add these lines to /etc/modules automatically? (yes/NO)

En este momento copiad y guardad en un documento de texto temporal lo que tenéis por encima entre los dos cut here (por ejemplo a mí me ha salido lo siguiente):

#----cut here----
# Chip drivers
coretemp
#----cut here----

Le damos nuevamente a INTRO para que no añada esas líneas automáticamente al fichero de modulos ya que las agregaremos manualmente para evitar posibles fallos de incompatibilidad, para ello editamos el fichero:

sudo nano /etc/modules

Y agregamos la siguientes lineas al final del fichero:

# Chip drivers
coretemp

Guardamos los cambios y salimos del editor de texto. Muestro como ha quedado mi fichero:

pi@overclock:~$ cat /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
#
# Chip drivers
coretemp

Recomiendo reiniciar el Servidor para activar los cambios:

sudo reboot

Tras el reinicio ya podremos ver la información que hemos configurado:

sensors

En mi caso la información devuelta es la siguiente:

pi@overclock:~$ sensors
acpitz-virtual-0
Adapter: Virtual device
temp1:        +27.8°C  (crit = +119.0°C)
temp2:        +29.8°C  (crit = +119.0°C)

coretemp-isa-0000
Adapter: ISA adapter
Physical id 0:  +33.0°C  (high = +84.0°C, crit = +100.0°C)
Core 0:         +30.0°C  (high = +84.0°C, crit = +100.0°C)
Core 1:         +30.0°C  (high = +84.0°C, crit = +100.0°C)
Core 2:         +29.0°C  (high = +84.0°C, crit = +100.0°C)
Core 3:         +27.0°C  (high = +84.0°C, crit = +100.0°C)

$USER/.BASHRC

El fichero .bashrc es un archivo script que se ejecuta cada vez que una nueva sesión de terminal server se inicia en el modo interactivo. Esto es lo que ocurre cuando se inicia TTY o simplemente abrir una nueva pestaña de terminal. Este fichero contiene una serie de configuraciones para la sesión de terminal. Vamos a editarlo para mejorarlo:

cd /home/$USER && nano .bashrc

Buscamos la variable #force_color_prompt=yes y la descomentamos quedando en el fichero sin la # de la siguiente forma:

force_color_prompt=yes

Nos movemos con el editor al final del fichero y añadimos el siguiente script:

# MOTD
show_temp(){
    sensors | grep -oP 'Core 0.*?\+\K[0-9]+'
}
let upSeconds="$(/usr/bin/cut -d. -f1 /proc/uptime)"
let secs=$((${upSeconds}%60))
let mins=$((${upSeconds}/60%60))
let horas=$((${upSeconds}/3600%24))
let dias=$((${upSeconds}/86400))
UPTIME=`printf "%d dias, %02dh%02dm%02ds" "$dias" "$horas" "$mins" "$secs"`
read one five fifteen rest < /proc/loadavg
echo "$(tput setaf 2)
`date +"%A, %e %B %Y, %r"`
`uname -srmo`$(tput setaf 1)
Tiempo de actividad..: ${UPTIME}
Memoria RAM..........: `cat /proc/meminfo | grep MemFree | awk {'print $2'}`kB (Free) / `cat /proc/meminfo | grep MemTotal | awk {'print $2'}`kB (Total)
Promedios de carga...: ${one}, ${five}, ${fifteen} (1, 5, 15 min)
Procesos activos.....: `ps ax | wc -l | tr -d " "`
IP conexion por SSH..: $(echo $SSH_CLIENT | awk '{ print $1}')
Temperatura Sistema..: $(show_temp)ºC
$(tput sgr0)"

Guardamos los cambios, salimos del editor de texto y creamos el siguiente archivo:

nano .inputrc

Con el siguiente contenido:

# Flecha arriba
"\e[A":history-search-backward
# Flecha abajo
"\e[B":history-search-forward

Guardamos los cambios, salimos del editor de texto y reiniciamos para ver los cambios.

reiniciar

Adjunto resultado de lo que veremos tras el reinicio:

Linux debian 6.12.38+deb13-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.12.38-1 (2025-07-16) x86_64

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
You have mail.
Last login: Sun Ago 10 10:00:00 2025 from 192.168.1.112

domingo, 10 agosto 2025, 12:39:55 
Linux 6.1.0-10-amd64 x86_64 GNU/Linux
Tiempo de actividad..: 0 dias, 00h03m47s
Memoria RAM..........: 27151572kB (Free) / 32831084kB (Total)
Promedios de carga...: 0.08, 0.09, 0.09 (1, 5, 15 min)
Procesos activos.....: 236
IP conexion por SSH..: 192.168.1.112
Temperatura Sistema..: 32.0ºC

pi@overclock:~$

Redes

Tras haber configurado nuestro sistema Base, vamos a configurar y segurizar nuestra red doméstica.

Identificando RED

La primera tarea que debemos de realizar es encontrar el nombre de nuestro identificador de red y el rango de la misma.

Este comando nos dara la información esperada:

ip a

Y entre los valores que muestra el comando me quedo con la siguiente información:

2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master state UP 
        group default qlen 1000
        link/ether xx:xx:xx:xx:xx:xx brd xx:xx:xx:xx:xx:xx
        inet 192.168.1.250/24 brd 192.168.1.255 scope global ens33
        valid_lft forever preferred_lft forever

Ahora se que mi dispositivo de red cableada esta identificado como ens33 y que la IP en mi red es 192.168.1.250 rango DHCP

Configurando RED

Vamos a habilitar la redicción de puertos sobre IPv4 que posteriormente usaremos para entre otros configurar debidamente la VPN.

sudo nano /etc/sysctl.d/overclock.conf

Agregamos al final del fichero estas variables:

# IPV4
net.ipv4.ip_forward=1
# IPV6
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1
net.ipv6.conf.lo.disable_ipv6=1
net.ipv6.conf.tun0.disable_ipv6=1

Guardamos los cambios, salimos del editor de texto y pasamos a configurar una red Bridge con IP estática:

sudo apt-get update && \
sudo apt-get -y install bridge-utils net-tools ifupdown && \
sudo mv /etc/network/interfaces /etc/network/interfaces.bak && \
sudo nano /etc/network/interfaces

En el documento en blanco que se nos abre, lo configuro con mi nombre de red ens33 y la ip estática que le voy a configurar 192.168.1.90:

# LO
auto lo
iface lo inet loopback

# Interfaz ens33
allow-hotplug ens33
iface ens33 inet manual

# Bridge
auto br0
iface br0 inet static
	address 192.168.1.90
	netmask 255.255.255.0
	network 192.168.1.0
	gateway 192.168.1.1
	bridge_ports ens33
	bridge_stp off
	bridge_fd 0
	bridge_maxwait 0

# Bridge IPV6
iface br0 inet6 auto
	accept_ra 1

Guardamos los cambios, salimos del editor de texto y nos queda corregir un posible fallo aunque no es común, en el fichero de resolución de DNS:

sudo mv /etc/resolv.conf /etc/resolv.conf.bak && \
echo "nameserver 1.1.1.1" | sudo tee -a /etc/resolv.conf

Para evitar que NetworkManager entre en juego editaremos su configuración, para deshabilitar que juegue con redes configuradas:

sudo nano /etc/NetworkManager/NetworkManager.conf

Y dejamos el fichero con el siguiente contenido:

[main]
plugins=ifupdown,keyfile
dns=none

[ifupdown]
managed=false

Guardamos los cambios, salimos del editor de texto y a continuación debemos de reiniciar el servidor para aplicar los nuevos cambios producidos en el dispositivo de red:

sudo reboot

Tras reiniciar nuevamente comprobamos la nueva configuración de red:

ip a

Y vemos los cambios realizados:

3: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP
        group default qlen 1000
        link/ether xx:xx:xx:xx:xx:xx brd xx:xx:xx:xx:xx:xx
        inet 192.168.1.90/24 brd 192.168.1.255 scope global br0
        valid_lft forever preferred_lft forever</pre>

A partir de este momento nuestra red cableada la identificaremos con el nombre de br0 y la IP de nuestro servidor en casa sera 192.168.1.90.

@Lordpedal BOT

Adicional al Canal de Telegram donde público enlaces de interés, también dispongo en la red de un BOT que podeis usar para notificar eventos en vuestro sistema con ayuda de unos scripts.

En Telegram podeís encontrarlo con el alías @Lordpedalbot

Cuando lo arranques te dará la bienvenida y te notificará el ID que tienes en la red Telegram, este ID debes de anotarlo, porque será una variable que uses en los scripts que modificaremos a continuación.

NOTA: El token de referencia que se va usar en los scripts no tiene validez, haz de usar tu propio bot u otro token conocido. Para ello debes de reemplazar el valor 289352425:AAHBCcKicDtSFaY2_Gq1brnXJ5CaGba6tMA por otro.

Protección TSHH

La función de este bash script es la de informarte vía Telegram de una anomalía en la temperatura del sistema y proceder a un apagado del mismo de forma controlada. Vamos a crear el script:

mkdir -p $HOME/scripts && \
cd $HOME/scripts && \
nano tshh.sh && \
chmod +x tshh.sh

Y le agregamos el siguiente contenido:

#!/bin/bash
#
# https://lordpedal.github.io
# Another fine release by Lordpedal
#
# Fichero Log
data=`date`
usu=`uname`
ini=`echo "Script alarma de temperatura ejecutada con éxito"`
rutalog=/home/$USER
# ID Telegram
telegram=79593223
# Temperatura máxima
overheat=70
# Calcula temperatura y crea temporales de calculo
sensors | grep -oP 'Core 0.*?\+\K[0-9]+' > termopar
# Ejecuta alarma y aviso por telegram
while read tempactual
do
if [ "$tempactual" -ge "$overheat" ]
then
echo "$data - $usu - $ini. Ejecutada protección de temperatura. Alcanzados $tempactualºC" >> $rutalog/tshh.log
/usr/bin/curl --silent --output /dev/null --data-urlencode "chat_id=$telegram" --data-urlencode "text=Temperatura del Sistema:$tempactualºC. Por seguridad ejecutado el protocolo de apagado sistema" "https://api.telegram.org/bot289352425:AAHBCcKicDtSFaY2_Gq1brnXJ5CaGba6tMA/sendMessage"
# Apaga el sistema
sudo poweroff
else
echo "Temperatura de sistema: $tempactualºC"
fi
done<termopar
# Borra los temporales generados
rm termopar

NOTA: Recuerda que el valor del ID de Telegram debes de sustituirlo por el tuyo propio y el valor overheat cambialo según rangos de temperatura de tu procesador obtenido tras ejecutar: sensors, en mi caso el rango que obtenía era de (high = +84.0°C, crit = +100.0°C) por eso defino 70°C como valor más conservador.

Guardamos los cambios, salimos del editor de texto y programamos el sistema para que el script sea ejecutado cada 15 segundos:

crontab -e

Al ser la primera ejecución del comando nos solicitara con que editor queremos trabajar, recomiendo nano :

pi@overclock:~$ crontab -e
no crontab for pi - using an empty one
Select an editor.  To change later, run select-editor again.
  1. /bin/nano        <---- easiest
  2. /usr/bin/mcedit
  3. /usr/bin/vim.tiny
  4. /bin/ed

Choose 1-4 [1]: 1

Y añadimos al final el fichero, recuerda sustituir pi por tu usuario:

*/1 * * * * /home/pi/scripts/tshh.sh >/dev/null 2>&1
*/1 * * * * sleep 15 && /home/pi/scripts/tshh.sh >/dev/null 2>&1
*/1 * * * * sleep 30 && /home/pi/scripts/tshh.sh >/dev/null 2>&1
*/1 * * * * sleep 45 && /home/pi/scripts/tshh.sh >/dev/null 2>&1

Guardamos los cambios, salimos del editor de texto y listo ya tendriamos la protección activa. El fichero en mi caso queda de la siguiente forma:

pi@overclock:~$ crontab -l
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
#
*/1 * * * * /home/pi/scripts/tshh.sh >/dev/null 2>&1
*/1 * * * * sleep 15 && /home/pi/scripts/tshh.sh >/dev/null 2>&1
*/1 * * * * sleep 30 && /home/pi/scripts/tshh.sh >/dev/null 2>&1
*/1 * * * * sleep 45 && /home/pi/scripts/tshh.sh >/dev/null 2>&1

Notificación Arranque Servidor

La función de este bash script es la de informarte vía Telegram de que el Servidor esta online. Vamos a crear el script:

mkdir -p $HOME/scripts && \
cd $HOME/scripts && \
nano overspeed.sh && \
chmod +x overspeed.sh

Y le agregamos el siguiente contenido:

#!/bin/bash
#
# https://lordpedal.github.io
# Another fine release by Lordpedal
#
# ID Telegram
telegram=79593223
# Mensaje Online
mensaje='Overclock Server Online ... Another fine release by Lordpedal'
# Inicia bucle chequeo de Red
while true
do
    # Comprueba disponibilidad de Red
    if ping -c 1 -W 5 google.com 1>/dev/null 2>&1
    then
        # Red disponible
        echo "Conexion establecida..."
        /usr/bin/curl --silent \
                --output /dev/null \
                --data-urlencode "chat_id=$telegram" \
                --data-urlencode "text=$mensaje" \
                "https://api.telegram.org/bot289352425:AAHBCcKicDtSFaY2_Gq1brnXJ5CaGba6tMA/sendMessage"
        # Termina bucle disponibilidad de Red
        break
    else
        # Red no disponible
        echo "Conexion no establecida..."
    fi
    # Espera 1s y reinicia bucle
    sleep 1
done

NOTA: Recuerda que el valor del ID de Telegram debes de sustituirlo por el tuyo propio y el valor mensaje cambialo por tu mensaje personalizado.

Guardamos los cambios, salimos del editor de texto y programamos el sistema para que el script sea ejecutado tras reinicio de sistema y disponibilidad de red:

crontab -e

Y añadimos al final el fichero, recuerda sustituir pi por tu usuario:

@reboot /home/pi/scripts/overspeed.sh >/dev/null 2>&1

Guardamos los cambios, salimos del editor de texto y listo ya tendriamos la notificación activa. El fichero en mi caso queda de la siguiente forma:

pi@overclock:~$ crontab -l
# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command
#
*/1 * * * * /home/pi/scripts/tshh.sh >/dev/null 2>&1
*/1 * * * * sleep 15 && /home/pi/scripts/tshh.sh >/dev/null 2>&1
*/1 * * * * sleep 30 && /home/pi/scripts/tshh.sh >/dev/null 2>&1
*/1 * * * * sleep 45 && /home/pi/scripts/tshh.sh >/dev/null 2>&1
@reboot /home/pi/scripts/overspeed.sh >/dev/null 2>&1

P3DNS

Es un docker-compose que integra las siguientes herramientas:

  • Pi-hole: Aplicación centrada en bloqueo de publicidad y entornos maliciosos de la red.

  • DNScrypt-Proxy: Aplicación proxy de cifrado mediante diferentes protocolos de criptografía de las peticiones DNS.

  • Cloudflared: Aplicación de cifrado DoH (DNS over HTTPS) de las peticiones DNS.

Antes de continuar debemos de realizar estos pasos:

  1. Instalamos y configuramos: Docker
  2. Configuramos e instalamos: P3DNS

Configurando DNS Pública

Como sabras tu IP doméstica no es tu IP pública y al igual que en un comienzo tu IP doméstica era DHCP lo mismo ocurre con la IP pública. Por tanto para poder redireccionar servicios, necesitamos disponer de IP pública estática. La forma más sencilla es usar un proveedor de DNS públicas de calidad como por ejemplo DuckDNS

Entramos en la web y creamos una cuenta gratuita en la cual registraremos nuestro dominio, ejemplo: lordpedal.duckdns.org.

Adjunto enlace tutorial oficial:

Tutorial de configuración en GNU/Linux vía programador de tareas cron

Aunque recomiendo usar la versión Docker: DuckDNS publicada en este blog.

Luego tenemos que configurar nuestro hosts para agregar nuestra DNS Pública:

sudo nano /etc/hosts

Buscamos la línea:

127.0.0.1       localhost 

Y la modificamos con nuestra cuenta en DuckDNS:

127.0.0.1       localhost lordpedal.duckdns.org 

Guardamos los cambios y salimos del editor de texto.

VPN´s

Una red privada virtual es una tecnología de red de ordenadores que permite una extensión segura de la red de área local sobre una red pública o no controlada como Internet. Permite que el ordenador en la red envíe y reciba datos sobre redes compartidas o públicas como si fuera una red privada, con toda la funcionalidad, seguridad y políticas de gestión de una red privada. Esto se realiza estableciendo una conexión virtual punto a punto mediante el uso de conexiones dedicadas, cifrado o la combinación de ambos métodos.

Wireguard (Recomendada)

Ampliar información en esta entrada

OpenVPN (Opcional)

Teniendo ya fijada una DNS Pública, una IP estática interna y la redirección de puertos, ya podemos proceder a configurar de forma sencilla el acceso mediante VPN

Vamos a bajar un cliente asistente donde configuramemos nuestra red VPN:

cd ~/ && \
wget https://git.io/vpn -O openvpn-install.sh && \
chmod 755 openvpn-install.sh && \
sudo ./openvpn-install.sh

Durante la instalación nos solicitara unos parametros de nuestros pasos previos:

  • IPv4 (automatically detected, if not enter the local IPv4 address): 192.168.1.90
  • Public IP (enter your public IP address): lordpedal.duckdns.org
  • Protocol: UDP
  • Port (change to your desired port): 2194
  • DNS: Current system resolvers
  • Client name: Lordpedal

Vamos a afinar la configuración de la VPN con capas extras de personalización, ahora debemos de conocer la IP de la nuestra red virtual TUN0

sudo ifconfig tun0 | grep 'inet'

En mi caso el valor de referencia es: 10.8.0.1. Vamos a editar la configuración del servidor de OpenVPN

sudo nano /etc/openvpn/server/server.conf

Buscamos la linea donde el codigo empieza por (suele ser una única línea en según que casos alguna duplicada):

push "dhcp-option DNS

Y sustituimos la linea o si existen varias dejamos una sola que haga referencia al codigo push dhcp-option con lo siguiente:

push "dhcp-option DNS 10.8.0.1"

Guardamos los cambios, salimos del editor de texto y reiniciamos el servicio OpenVPN:

sudo systemctl restart openvpn

Recordad que el fichero OVPN generado en nuestro caso se llamaba Lordpedal lo tendremos que pasar a nuestra carpeta de usuario.

sudo cp /root/Lordpedal.ovpn /home/pi && \
sudo chown pi:pi /home/pi/Lordpedal.ovpn

Ahora ya podremos pasar el fichero OVPN a nuestro Smartphone/Tablet/Pendrive/… para poder conectarnos en remoto previa configuración router. Recuerda abrir el Puerto 2194 a la IP 192.168.1.90 con Protocolo UDP si has seguido la configuración que detallo paso a paso.

SSH

SSH es un protocolo de comunicación que encripta los datos que se intercambian, y es virtualmente imposible romper la privacidad de la comunicación. El acrónimo ssh viene del inglés: Secure SHell.

El protocolo ssh es muy versátil, tiene un software cliente que posibilita el acceso a la línea de comandos, permite la transferencia de archivos y la creación de túneles seguros con soporte de comunicación para otros protocolos.

Los clientes ssh se dividen en dos grupos:

  • Terminal SSH Es un emulador de terminal que permite acceder de forma remota desde un equipo a la línea de comandos del equipo remoto, utilizando el protocolo SSH.
  • Cliente SFTP Se trata de un cliente para transferencia de archivos que utiliza el Protocolo de Transferencia Segura de Archivos. Sus siglas significan en inglés (Secure File Transfer Protocol (SFTP)

Entrando en materia, si durante la instalación de Debian no instalamos SSH podemos activarlo de la siguiente forma:

instalar openssh-server openssh-client

Realizado este punto o ya instalado anteriormente, sabemos que remotamente podremos acceder a nuestro Server desde nuestra red local con el siguiente comando, recuerda sustituir usuario pi e ip por tus datos:

ssh pi@192.168.1.90

Pero recomiendo dar un paso más en la seguridad de nuestro sistema, por ello ahora nos toca securizarlo en la medida de la posible cambiando puerto por defecto 22, usuario root, …

Para ello editaremos el fichero de configuración SSH:

sudo nano /etc/ssh/sshd_config

Adjunto mi fichero de configuración con los mods de seguridad activos:

# This is the sshd server system-wide configuration file.  See
# sshd_config(5) for more information.

# This sshd was compiled with PATH=/usr/bin:/bin:/usr/sbin:/sbin

# The strategy used for options in the default sshd_config shipped with
# OpenSSH is to specify options with their default value where
# possible, but leave them commented.  Uncommented options override the
# default value.

Port 69
#AddressFamily any
#ListenAddress 0.0.0.0
#ListenAddress ::

#HostKey /etc/ssh/ssh_host_rsa_key
#HostKey /etc/ssh/ssh_host_ecdsa_key
#HostKey /etc/ssh/ssh_host_ed25519_key

# Ciphers and keying
#RekeyLimit default none

# Logging
SyslogFacility AUTH
LogLevel INFO

# Authentication:

LoginGraceTime 2m
PermitRootLogin no
#StrictModes yes
MaxAuthTries 3
MaxSessions 5

#PubkeyAuthentication yes

# Expect .ssh/authorized_keys2 to be disregarded by default in future.
#AuthorizedKeysFile     .ssh/authorized_keys .ssh/authorized_keys2

#AuthorizedPrincipalsFile none

#AuthorizedKeysCommand none
#AuthorizedKeysCommandUser nobody

# For this to work you will also need host keys in /etc/ssh/ssh_known_hosts
#HostbasedAuthentication no
# Change to yes if you don't trust ~/.ssh/known_hosts for
# HostbasedAuthentication
#IgnoreUserKnownHosts no
# Don't read the user's ~/.rhosts and ~/.shosts files
#IgnoreRhosts yes

# To disable tunneled clear text passwords, change to no here!
#PasswordAuthentication yes
PermitEmptyPasswords no

# Change to yes to enable challenge-response passwords (beware issues with
# some PAM modules and threads)
ChallengeResponseAuthentication no

# Kerberos options
#KerberosAuthentication no
#KerberosOrLocalPasswd yes
#KerberosTicketCleanup yes
#KerberosGetAFSToken no

# GSSAPI options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
#GSSAPIStrictAcceptorCheck yes
#GSSAPIKeyExchange no

# Set this to 'yes' to enable PAM authentication, account processing,
# and session processing. If this is enabled, PAM authentication will
# be allowed through the ChallengeResponseAuthentication and
# PasswordAuthentication.  Depending on your PAM configuration,
# PAM authentication via ChallengeResponseAuthentication may bypass
# the setting of "PermitRootLogin without-password".
# If you just want the PAM account and session checks to run without
# PAM authentication, then enable this but set PasswordAuthentication
# and ChallengeResponseAuthentication to 'no'.
UsePAM yes

#AllowAgentForwarding yes
#AllowTcpForwarding yes
#GatewayPorts no
X11Forwarding yes
#X11DisplayOffset 10
#X11UseLocalhost yes
#PermitTTY yes
PrintMotd no
#PrintLastLog yes
#TCPKeepAlive yes
#UseLogin no
#UsePrivilegeSeparation sandbox
#PermitUserEnvironment no
#Compression delayed
#ClientAliveInterval 0
#ClientAliveCountMax 3
#UseDNS no
#PidFile /var/run/sshd.pid
#MaxStartups 10:30:100
#PermitTunnel no
#ChrootDirectory none
#VersionAddendum none

# no default banner path
#Banner none

# Allow client to pass locale environment variables
AcceptEnv LANG LC_*

# override default of no subsystems
Subsystem       sftp    /usr/lib/openssh/sftp-server

# Example of overriding settings on a per-user basis
#Match User anoncvs
#       X11Forwarding no
#       AllowTcpForwarding no
#       PermitTTY no
#       ForceCommand cvs server

Guardamos los cambios, salimos del editor de texto y reiniciamos el servicio:

sudo systemctl restart ssh

Y a partir de este momento para conectarnos por SSH lo haremos de la siguiente forma:

ssh pi@192.168.1.90 -p 69

Fail2BAN

Fail2ban es una herramienta de seguridad escrita en Python fundamental para cualquier servidor.

La principal función de Fail2ban es securizar un servidor del siguiente modo:

  1. Evitando accesos indeseados a nuestro equipo o servidor.
  2. Evitando ataques de fuerza bruta para que un tercero averigüe nuestra contraseña o tumbe el servidor.

Por un lado está monitorizando las autenticaciones que una determinada IP hace a un determinado/s puerto/s y servicio/s. Para ello está consultando permanente los logs de autenticación de nuestro sistema como por ejemplo el /var/log/auth.log. Vamos a proceder a instalarlo:

sudo apt-get update && \
sudo apt-get -y install fail2ban

Una vez instalado vamos a configurarlo:

cd /etc/fail2ban && sudo nano jail.conf

Adjunto a modo resumen las opciones a buscar y modificar:

ignoreip = 127.0.0.1/8
bantime  = 600
maxretry = 5

Y segundo como las dejaremos, en mi caso la IP es de rango 192.168.1.0:

ignoreip = 127.0.0.1/8 192.168.1.0/24
bantime  = 3600
maxretry = 3

Una vez finalizada la edición, guardaremos los cambios, saldremos del editor de texto y lo activaremos en local:

sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Ahora vamos a crear una configuración específica para aprovecharnos de notificaciones vía Telegram:

cd /etc/fail2ban/action.d && sudo nano telegram.conf

Y le agregamos el siguiente contenido:

# Fail2Ban configuration file
#
# Author: Lordpedal
#

[Definition]

# Option:  actionstart
# Notes.:  command executed once at the start of Fail2Ban.
# Values:  CMD
#
actionstart = /etc/fail2ban/scripts/fail2ban-telegram.sh start 

# Option:  actionstop
# Notes.:  command executed once at the end of Fail2Ban
# Values:  CMD
#
actionstop = /etc/fail2ban/scripts/fail2ban-telegram.sh stop

# Option:  actioncheck
# Notes.:  command executed once before each actionban command
# Values:  CMD
#
actioncheck = 

# Option:  actionban
# Notes.:  command executed when banning an IP. Take care that the
#          command is executed with Fail2Ban user rights.
# Tags:    See jail.conf(5) man page
# Values:  CMD
#
actionban = /etc/fail2ban/scripts/fail2ban-telegram.sh ban <ip>

# Option:  actionunban
# Notes.:  command executed when unbanning an IP. Take care that the
#          command is executed with Fail2Ban user rights.
# Tags:    See jail.conf(5) man page
# Values:  CMD
#
actionunban = /etc/fail2ban/scripts/fail2ban-telegram.sh unban <ip>

[Init]

init = 21121981

Guardamos los cambios, salimos del editor de texto y crearemos el script de notificación:

cd /etc/fail2ban && \
sudo mkdir scripts && \
cd scripts && \
sudo nano fail2ban-telegram.sh && \
sudo chmod +x fail2ban-telegram.sh

Agregamos el siguiente bash script:

#!/bin/bash
#
# https://lordpedal.github.io
# Another fine release by Lordpedal
#
while true
do
    if ping -c 1 -W 3 google.com 1>/dev/null 2>&1
    then
        echo ""
        break
    else
        echo ""
    fi
    sleep 1
done
# Opciones ejecucion
info=`hostname -f`
function show_uso {
  echo "Fail2ban Telegram by Lordpedal"
  echo ""
  echo "Usar: $0 opcion <ip>"
  echo ""
  echo "Opcion: start      (Inicia notificaciones)"
  echo "        stop       (Detiene notificaciones)"
  echo "        ban <ip>   (Banea IP especificada) Ej: ban 192.168.1.2"
  echo "        unban <ip> (Desbanea IP especificada) Ej: unban 192.168.1.2"
  echo ""
  exit
}

# Notificacion
function send_msg {
  # ID Telegram
  telegram=79593223
  # Enlace BOT
  url="https://api.telegram.org/bot289352425:AAHBCcKicDtSFaY2_Gq1brnXJ5CaGba6tMA/sendMessage"
  # Envia mensaje
  curl -s -X POST $url -d chat_id=$telegram -d text="$1"
  exit
}

# Chequea argumentos de script
if [ $# -lt 1 ]
then
  show_uso
fi

# Ejecuta una accion depende del argumento
if [ $# -lt 1 ]
then
  show_uso
fi

# Ejecuta una accion depende del argumento
if [ "$1" = 'start' ]
then
  msg="Seguridad+Fail2ban+ha+sido+iniciada+en+el+host+$info"
  send_msg $msg...
25 Aug 12:48

Mazanoke: Docker

by Lordpedal

Docker

Mazanoke es una aplicación web auto-hospedable para optimizar imágenes directamente en tu navegador, sin necesidad de conexión a internet ni envío de archivos a servidores externos. Es ideal para quienes buscan una alternativa privada y sencilla a herramientas online que pueden comprometer la privacidad.

Características principales:

  • Optimización local: todo el procesamiento ocurre en tu dispositivo.
  • Privacidad total: no rastrea, no sube archivos, no requiere conexión.
  • Conversión de formatos: JPG, PNG, WebP, ICO, HEIC, AVIF, TIFF, GIF, SVG.
  • Control de calidad: ajusta compresión, tamaño objetivo, dimensiones máximas.
  • Modo oscuro/claro y diseño responsive.
  • Instalable como PWA (Aplicación Web Progresiva).

Instalación

Vamos a realizar unos pasos previos para preparar el entorno, para ello en primer lugar creamos las carpetas donde alojar el proyecto:

mkdir -p $HOME/docker/mazanoke && \
cd $HOME/docker/mazanoke

Ahora llega el turno de crear el fichero de configuración docker-compose.yml lanzando el siguiente comando:

cat << EOF > $HOME/docker/mazanoke/docker-compose.yml
#version: '3'
services:
  mazanoke:
    image: ghcr.io/civilblur/mazanoke:latest
    container_name: Mazanoke
    ports:
      - "1336:80"
    restart: always
EOF

Vamos a repasar los principales parámetros que hemos añadido sobre la anterior base, para poder adaptarlos a nuestro sistema y configuración especifica:

Parámetro Función
1336:80 Puerto de acceso interfaz Web :1336
restart: always Habilitamos que tras reiniciar la maquina anfitrion vuelva a cargar el servicio

Una vez configurado, levantamos el servicio para ser configurado y ejecutado:

docker compose up -d

En mi caso, el servicio estaría disponible en la dirección web http://192.168.1.90:1336

Y listo!

25 Aug 12:42

it-tools: Docker

by Lordpedal

Docker

IT-Tools es una colección de herramientas web útiles para desarrolladores y profesionales de TI, empaquetadas como una aplicación web que puedes auto-hospedar fácilmente usando Docker.

  • Herramientas útiles como:
    • Generador de contraseñas
    • Conversor de código
    • Generador de códigos OTP
    • Constructor de consultas SQL
    • Analizador de JWT
    • … y muchas más.
  • Interfaz web moderna y fácil de usar
  • Código abierto bajo licencia GNU GPLv3

Tiene la función de poder marcar tus herramientas favoritas para tener un acceso rápido a ellas.

Vamos a crear el servicio en nuestro servidor de forma sencilla.

Instalación

Vamos a realizar unos pasos previos para preparar el entorno, para ello en primer lugar creamos las carpetas donde alojar el proyecto:

mkdir -p $HOME/docker/it-tools && \
cd $HOME/docker/it-tools

Ahora llega el turno de crear el fichero de configuración docker-compose.yml lanzando el siguiente comando:

cat << EOF > $HOME/docker/it-tools/docker-compose.yml
#version: '3'
services:
  it-tools:
    image: sharevb/it-tools:latest
    container_name: It-tools
    ports:
      - "1334:8080"
    restart: always
EOF

Vamos a repasar los principales parámetros que hemos añadido sobre la anterior base, para poder adaptarlos a nuestro sistema y configuración especifica:

Parámetro Función
1334:8080 Puerto de acceso interfaz Web :1334
restart: always Habilitamos que tras reiniciar la maquina anfitrion vuelva a cargar el servicio

Una vez configurado, levantamos el servicio para ser configurado y ejecutado:

docker compose up -d

En mi caso, el servicio estaría disponible en la dirección web http://192.168.1.90:1334

Y listo!

25 Aug 12:29

El monitoreo de temperatura para chips Intel queda huerfano en Linux

El maintainer de Intel no trabaja más en la compañía - La reciente ola de despidos y reestructuraciones en Intel sigue dejando secuelas en el ecosistema Linux. Esta vez, el impacto llega a algo tan básico como el monitoreo de temperatura de para chips Intel. El driver coretemp, encargado de proporcionar la lectura de temperatura para prácticamente todos los procesadores Intel...
19 Aug 17:41

🟢 Negra sombra - Rosalía de Castro -- Poemas imprescindibles 3

by Fabián C. Barrio

"Negra sombra", de Rosalía de Castro, es uno de esos poemas que se te agarran al pecho y no te sueltan. Habla de una presencia oscura que sigue al yo poético allá donde va, en la vigilia y en el sueño, en la dicha y en el duelo. Pero esa sombra no es solo dolor, es también una forma de compañía. Hay en sus versos una tristeza antigua, una resignación hermosa, casi mística. Lo estremecedor no es la oscuridad, sino su intimidad: la forma en que se funde con la vida misma. Rosalía escribe desde un abismo silencioso, con una voz que cala sin gritar. Y lo hace en gallego, con un lenguaje que respira.

Esta sección nace con una intención clara: acercar la poesía a una era que la ha olvidado, sin filtros ni etiquetas, sin exigir formación previa ni pedir credenciales de sensibilidad. Aquí caben los poemas inspiradores, los difíciles, los sencillos, los crudos, los tiernos, los oscuros, los brillantes, los que consuelan y los que incomodan. Porque la poesía, lejos de ser propiedad de las élites ni de los eruditos, es un lenguaje universal que puede atravesar a cualquiera de nosotros en el momento justo. Leer poesía es una forma de estar más vivo, de ver lo invisible, de sentir lo que no sabíamos que estaba en nosotros. Por eso quiero acercarte la poesía como un acto de resistencia íntima frente al ruido, la prisa y la trivialidad. La palabra poética —bien lo dijo Gabriel Celaya— es un arma cargada de futuro. Cuando una frase te hiere con belleza, cuando un verso te nombra sin conocerte, entonces algo cambia para siempre. Eso es lo que buscamos: ese temblor.
19 Aug 12:47

El Problema de Ser Demasiado Bueno, con Xavier Guix

by Marcos - Fitness Revolucionario

“A las malas se aprende que ser bueno no hace que te amen, sino que te usen” – Xavier Guix ...

The post El Problema de Ser Demasiado Bueno, con Xavier Guix appeared first on Fitness Revolucionario.

19 Aug 11:47

A Quick Community Update on PinePhone Pro and What’s Next

Hey everyone! As many have noticed, the PinePhone Pro is currently out ot stock on the Pine Store. Unfortunately we have to deliver you the following news: the PinePhone Pro is officially discontinued. We were told it didn’t sell well enough to keep production going. But the good news for current owners are that spare parts will still be made for up to two years, depending on demand. Meanwhile, the trusty PinePhone (A64) is still alive and kicking, and Pine Store plans to keep it rolling for about two more years.

No new PinePhone (Yet), future with RISC-V

Right now, we’ve got no insider info on a brand-new PinePhone, so don’t expect any surprise announcements soon. Pine Store is steering its energy toward other projects (including RISC-V and a little bit of AI), which you’ve probably noticed with the Oz64, STAR64, StarPro64, and Alpha One launches.

And one last thing: later this month there’ll be a small batch of refurbished PinePhone Pros up for grabs — your final shot at owning one of these little powerhouses.

17 Aug 09:36

🦖 DEBIAN 13 a Examen: Lo BUENO, lo MALO y mi DRAMA con NVIDIA

by Karla's Project

¡Por fin está aquí! En este análisis y review en español de Debian 13 "Trixie", vamos a desmenuzar todas las novedades para responder a la pregunta del millón: ¿merece la pena en 2025? No me guardo nada: te cuento lo bueno, lo polémico y hasta mi experiencia personal intentando domar a una gráfica NVIDIA en esta nueva versión.

¿Ha conseguido Debian dejar de ser la distro "aburrida"? ¿Es ahora una opción para novatos y expertos por igual? ¡Agárrate, que te lo cuento todo!

En este vídeo verás:
LO BUENO: ¡El lavado de cara! Nuevo look con KDE Plasma 6.3, APT 3.0 con colores, adiós a Neofetch y hola a Fastfetch.
LO POLÉMICO: El gran debate del firmware non-free. ¿Se ha vendido Debian? ¡Te doy mi opinión sin filtros!
LO FRIKI: Las tripas de Trixie. Adiós a los 32 bits, hola a RISC-V, el Kernel 6.16, PipeWire, el bug del año 2038 y mucho más.
LA SEGURIDAD: ¿Por qué ahora APT es un auténtico guardaespaldas para tus paquetes?
A LA CARTA: Las "Debian Blends" que te ahorran horas de configuración.
EL VEREDICTO FINAL: ¿Es para ti? Te digo claramente si deberías instalarlo (y cuándo NO deberías hacerlo).

🎥 Capítulos
0:00 ¡El dinosaurio Trixie!
1:30 Lo BUENO: El lavado de cara
4:15 Lo POLÉMICO: El salseo del firmware non-free
6:20 Lo FRIKI: Las tripas del dinosaurio
8:28 El Guardaespaldas de tus Paquetes (APT)
9:30 Debian a la Carta (Blends)
10:37 EL VEREDICTO FINAL: ¿Es para ti?
11:23 Experiencia Personal
12:20 ¡Tu opinión importa!

💜 Suscríbete https://www.youtube.com/c/karlasproject?sub_confirmation=1

🎩 Apoya el Canal https://www.youtube.com/c/KarlasProject/join

💻 Mi Setup Grabación
🔸 Cámara Principal: MARVUE B5 1080P 24MP
🔸 Webcam 1: Logitech C930e (con lente "Carl Zeiss Tassar")
🔸 Webcam 2: Logitech C922 Pro
🔸 Microfono de solapa: DERICAM Micrófono Lavalier
🔸 Microfono de escritorio: Trust Gaming 21753 GXT
🔸 Pantalla verde: KHOMO GEAR 138 x 208 cm

💻 Mi Setup PC
🔸 CPU: Intel Core i9-10850K (10 cores a 5,20GHz)
🔸 Gráfica: NVIDIA RTX 2060
🔸 RAM: 4x Corsair 8GB DDR4 3200 mHz
🔸 Alimentador: Mars Gaming MPII750
🔸 Cooler: MSI MAG CORELIQUID 240R

⭐ Twitter https://twitter.com/KarlaPerezYT
⭐ Instagram https://www.instagram.com/karlaperezyt
⭐ Grupo Telegram https://t.me/KarlasProject
⭐ Página Web https://karlaperezyt.com

🔺 El objetivo de este vídeo (y del canal) es meramente educativo y/o divulgativo en el que se comparte información relacionada con la tecnología, la informática y software.
Copyright Disclaimer Under Section 107 of the Copyright Act 1976, allowance is made for "fair use" for purposes such as criticism, comment, news reporting, teaching, scholarship, and research. Fair use is a use permitted by copyright statute that might otherwise be infringing. Non-profit, educational or personal use tips the balance in favor of fair use.
16 Aug 07:14

Emuladores de Nes y SNES para Flinux, TDL y Spirit OS

by Locos por Linux

Comienza tu SERVIDOR KVM o WEB HOSTING con Hostinger 👉 https://hostinger.com/locosporlinux
💥 ¡Usa el cupón de descuento LOCOSPORLINUX para obtener un 10% de DESCUENTO!

GRUPO de Loc-OS (Signal): https://signal.group/#CjQKIFpeW4u6-wUj77vVPasE67ei1584iPtiPYXZ3g5WxuznEhANYSt0HuhrK43ePRS7lC-z
CANAL de Loc-OS (Telegram): https://t.me/locoslinux

#tinycorelinux #nintendo #emuladores
15 Aug 18:58

Entrenar en Ayunas: Pérdida de Grasa, Rendimiento Deportivo y Más

by Marcos - Fitness Revolucionario

En este video hablo sobre el entrenamiento en ayunas o bajo en glucógeno. Vemos si ayuda a perder grasa o ...

The post Entrenar en Ayunas: Pérdida de Grasa, Rendimiento Deportivo y Más appeared first on Fitness Revolucionario.

15 Aug 14:28

Como instalar Debian 13 GNU/Linux | PASO A PASO, FÁCIL!

by Locos por Linux

Comienza tu SERVIDOR KVM o WEB HOSTING con Hostinger 👉 https://hostinger.com/locosporlinux
💥 ¡Usa el cupón de descuento LOCOSPORLINUX para obtener un 10% de DESCUENTO!

https://www.debian.org/
https://etcher.balena.io/

GRUPO de Loc-OS (Signal): https://signal.group/#CjQKIFpeW4u6-wUj77vVPasE67ei1584iPtiPYXZ3g5WxuznEhANYSt0HuhrK43ePRS7lC-z
CANAL de Loc-OS (Telegram): https://t.me/locoslinux

#debian13 #linux #xfce
15 Aug 14:17

😬 Ubuntu 25.10 hace algo ARRIESGADO que puede salir MAL ¿Genialidad o locura?

by Karla's Project

Ubuntu 25.10 llega con una apuesta arriesgada: kernel 6.17 RC1, una versión Release Candidate que todavía está “en el horno”. En este vídeo te explico qué implica un RC, qué podría salir mal (Wi-Fi, GPU, audio…) y cuándo sí o no te conviene actualizar.
También comparo el movimiento con Fedora y Arch, y te doy consejos prácticos si eres early adopter o si usas Ubuntu para trabajar.

Mi consejo directo:
Si tu hardware no es muy nuevo, no compensa arriesgarte con un kernel tan reciente para el día a día. Si te gusta vivir al límite, haz copia/USB y cuéntame tu experiencia.

Bug Tracking Épico
¿Instalaste el 6.17 RC1? Déjame tu bug, hardware y pasos para reproducir en comentarios. Hacemos seguimiento entre todos.

Si te gustó, suscríbete y comparte con otro linuxero/a. ¡Gracias por volver a este canal! 🧡

#Ubuntu2510 #Linux #Kernel

🎥 Capítulos
00:00 — Introducción: “se la juega”
00:22 — Canonical apuesta por 6.17-rc1
01:06 — ¿Qué es un RC? (release candidate)
01:20 — Metáfora de los tomates (aún “verdes”)
01:42 — ¿Qué es el “freeze” de Ubuntu?
02:11 — Fedora y Arch: quién empuja el ritmo
02:50 — Fallos típicos en RC: Wi-Fi / GPU / Audio
04:02 — ¿25 millones de testers?
05:25 — Consejos: early adopter vs profesional
06:07 — Bug Tracking Épico

💜 Suscríbete https://www.youtube.com/c/karlasproject?sub_confirmation=1

🎩 Apoya el Canal https://www.youtube.com/c/KarlasProject/join

💻 Mi Setup Grabación
🔸 Cámara Principal: MARVUE B5 1080P 24MP
🔸 Webcam 1: Logitech C930e (con lente "Carl Zeiss Tassar")
🔸 Webcam 2: Logitech C922 Pro
🔸 Microfono de solapa: DERICAM Micrófono Lavalier
🔸 Microfono de escritorio: Trust Gaming 21753 GXT
🔸 Pantalla verde: KHOMO GEAR 138 x 208 cm

💻 Mi Setup PC
🔸 CPU: Intel Core i9-10850K (10 cores a 5,20GHz)
🔸 Gráfica: NVIDIA RTX 2060
🔸 RAM: 4x Corsair 8GB DDR4 3200 mHz
🔸 Alimentador: Mars Gaming MPII750
🔸 Cooler: MSI MAG CORELIQUID 240R

⭐ Twitter https://twitter.com/KarlaPerezYT
⭐ Instagram https://www.instagram.com/karlaperezyt

⭐ Página Web https://karlaperezyt.com

🔺 El objetivo de este vídeo (y del canal) es meramente educativo y/o divulgativo en el que se comparte información relacionada con la tecnología, la informática y software.
Copyright Disclaimer Under Section 107 of the Copyright Act 1976, allowance is made for "fair use" for purposes such as criticism, comment, news reporting, teaching, scholarship, and research. Fair use is a use permitted by copyright statute that might otherwise be infringing. Non-profit, educational or personal use tips the balance in favor of fair use.
15 Aug 10:22

Ventoy, la herramienta indispensable del técnico de sistemas

by Tecnocrática

Si tienes que instalar sistemas en diferentes equipos, hoy te traemos una utilidad indispensable para los técnico: Ventoy.
Podrás llevar decenas de ISOS de sistemas operativos y aplicaciones que se instalan desde una ISO (OPNSense, Pfsense, OpenWrt, etc)
También podrás usarlo para actualizaciones de Firmware, etc
15 Aug 10:03

🟢 Julio VERNE - El adivino optimista -- PROFETAS (4)

by Fabián C. Barrio

Julio Verne fue un hombre que convirtió la curiosidad en brújula y la imaginación en motor. Creía en un futuro moldeado por el ingenio, donde la ciencia no era amenaza sino promesa. Desde su escritorio, cartografió mares, cielos y planetas con la convicción de que el ser humano acabaría conquistándolos. Su optimismo no era ingenuo: estaba alimentado por el estudio minucioso de avances reales, al que sumaba una confianza obstinada en la capacidad de soñar. Para él, cada invento posible era una puerta abierta y cada página escrita, un billete de ida hacia territorios aún sin nombre.
14 Aug 11:34

Una alternativa a 12ft.io. Tu propia web de eliminación de muros de pago, publicidad, cookies.

by victorhck

Veamos cómo poner en marcha un servidor con Python en nuestro propio equipo que haga que podamos sortear los muros de pago, publicidad y cookies de ciertas webs

Captura de pantalla de la web 13ftio que limpia de rastreo páginas web.
Aparece el texto: Introduce el enlace de la web a limpiar. Enlace del sitio web que deseas eliminar el Paywall. Un botón de Enviar.

La web actual se sumerge cada vez más en una «truñificación» que impide navegar con seguridad, y acceder a servicios y webs de manera libre. Banners emergentes, pagar o aceptar el rastreo de miles de empresas a traves de cookies, publicidad agresiva, rastreo, paga por leernos, etc.

Solo las webs pequeñas y los blogs artesanales poseen ese reposo y aire fresco que una vez tuvo internet. Las grandes webs tratan de exprimir cada clic, cada visita de aquellas personas que las visitan.

Hasta hace poco existía, una web llamada 12ft.io que limpiaba todo ese edor que provocan con sus muros de pago, sus anuncios de cookies con oscuros patrones de aceptación, sus banners incómodos, su rastreo. Pero me entero hoy que esa web ha sido cerrada, no se permite tal cosa en el internet actual.

Visitar una web de noticias (no pondré enlaces) puede ser un suplicio en el que desistir (cosa que hago cuando soy tratado tan agresivamente) o claudicar a sus requisitos. Vale, es su web y ponen sus reglas. Y como no me parecen justas, simplemente las rechazo de pleno o justifico el poder circundarlas para no caer en su fango maloliente.

Hasta ahora utilizaba la web 12ft.io para saltarme esos muros de pago, anuncios de cookies, etc. La utilización era muy sencilla, simplemente delante de la url llena de fango que querías visitar anteponías 12ft.io.<url> y la web se encargaba de hacer que pudieras visitar la web sin tener que mancharte de la mierda que destilan.

Pero eso no podía permitirse, así que la maquinaria «truñificadora» se puso en marcha con todos sus recursos para cerrar definitivamente esa herramienta. Pero poco conocen cómo funciona realmente la web y lo difícil que es ponerle puertas al campo.

Gracias al usuario del fediverso, Salva, me entero de una alternativa que existe a esa herramienta, y que se llama 13ft.io cuyo código está en GitHub y que me he procurado en clonar, por si la maquinaria «truñificadora» trata de cortar también este recurso.

Lo bueno de este recurso, es que lo podemos poner en marcha de manera local en nuestro equipo, por lo que es imposible que alguien pueda cerrar la web que ofrece dicho servicio porque es un servidor levantado en nuestro equipo que utilizaremos cuando queramos transitar entre el fango de las webs sin querer mancharnos de la bazofia que esparcen.

Tienes varias formas de hacer funcionar el recurso y poner en marcha el servidor que filtrará todos los muros de pago, cookies, etc. Podemos utilizar Docker, pero en mi caso me he decantado por el script en Python que levanta el servidor necesario y que hará todo el trabajo de filtrado permitiéndonos navegar sin problemas.

Lo primero clonar el repositorio de GitHub. Una vez hecho esto instalamos los paquetes de Python necesarios.

flask
requests
bs4

En mi caso los he instalado desde los repositorios de mi distribución (openSUSE Tumbleweed). El último no lo he encontrado, pero, instalando el primero con todos los paquetes recomendados ha funcionado sin problemas.

Una vez instalado todo, simplemente desde la carpeta app/ ejecutamos el script en python:

python3.13 portable.py  

Y nos dará el siguiente mensaje:

 * Serving Flask app 'portable'
 * Debug mode: off
WARNING: This is a development server. Do not use it in a production deployment. Use a production WSGI server instead.
 * Running on all addresses (0.0.0.0)
 * Running on http://127.0.0.1:5000
 * Running on http://192.168.1.10:5000

Pinchamos en la dirección que nos muestra (direcciones locales de nuestro equipo y en nuestra red) Esto levantará un servidor con una página en la que introduciremos la url que queremos limpiar y visitar.

Después si queremos visitar otras páginas o enlaces dentro de esa web, tendremos que copiar el enlace que queremos visitar y copiarlo en la barra de dirección de nuestro navegador.

http://127.0.0.1:5000/<url_a_visitar>

Siempre que sigamos teniendo levantado el servidor que el script de Python ha levantado. Bastante simple, efectivo y muy útil.

Un buen método, resistente a la censura que servirá para poder accerder a todas esas webs que nos piden muros de pago, pagar o permitir que nos rastreen, etc.

Enlaces de interés

Fotograma de la película 1984 en el que se ve al protagonista sentado en un rincón donde no puede verle el gran hermano, que aparece en una telepantalla gigante que todo lo observa
13 Aug 18:14

El Director de Radio Nacional de España dice que revisará el caso de los bloqueos a AntennaPod

by victorhck

En respuesta a una pregunta de un periodista, Javier Hernández Bravo, director de RNE, dice que se revisará el bloqueo de RNE a la aplicación de podcasts AntennaPod

Ilustración de un camaleón con cara de contento escuchando música con unos auriculares mientras surfea

Nuevo capítulo en la cruzada del bloqueo de Radio Nacional de España al acceso de sus podcasts por parte de algunas aplicaciones, entre ellas AntennaPod, la aplicación de software libre para gestionar tus podcasts en Android disponible en F-droid.

En este caso, quiero traducir un artículo escrito por James Cridland para la web podnews.net donde se hace eco de esta crisis en la que el ente público bloquea algunas aplicaciones de podcasts de acceso libre a su contenido.

Dar las gracias a James Cridland por darme permiso expreso para traducir su artículo que tenéis en inglés en este enlace:

La emisora pública española RTVE está bloqueando los podcasts de su emisora de radio nacional, RNE, de algunas aplicaciones de podcasts de terceros. Pero inusualmente, la compañía todavía publica fuentes RSS abiertas para todos sus programas, por lo que los programas aparecen en todas las aplicaciones de podcast que los usan.

La emisora ha optado por bloquear deliberadamente aplicaciones de podcast específicas para que no descarguen el audio. Una de esas aplicaciones de podcast que RNE está bloqueando es AntennaPod, una aplicación de podcast gratuita en Android.

Es una de las aplicaciones más populares en Android, y en España, el 78,8% de los usuarios españoles de teléfonos móviles usan teléfonos móviles Android.

Los usuarios han descubierto que RNE está bloqueando específicamente AntennaPod, según el agente de usuario de la aplicación, que está configurado correctamente para cada descarga. No está claro por qué: la aplicación no contiene publicidad y es de código abierto. Se puede descargar gratis y actúa de acuerdo con el contrato no escrito entre los editores de podcasts y las aplicaciones.

«Revisaremos el caso de AntennaPod», dijo J. Javier Hernández Bravo de RTVE, en un correo electrónico a Podnews, después de que le pidiéramos comentarios. Nos dijo: «RNE Audio continúa publicando fuentes RSS abiertas y, al mismo tiempo, ha decidido bloquear algunas aplicaciones de podcast de terceros para que no descarguen audio. Muchas de esas plataformas estaban ganando dinero con nuestro contenido».

No hay plataformas de podcast que Podnews conozca que cobren por el acceso a fuentes RSS abiertas. (Siempre estamos agradecidos de saber de alguno). Algunas aplicaciones de podcast contienen publicidad gráfica, pero este no es el caso de AntennaPod.

Bloquear no es el camino a seguir

RNE continúa publicando fuentes RSS abiertas, por lo que los programas de la emisora aparecen en aplicaciones de podcast, pero el audio no está disponible. Esto significa que los programas de RNE aparecen sin ningún problema, pero no se reproducen en algunos de ellos, lo que hace que el público piense que la aplicación, en lugar del editor, tiene la culpa. Como ejemplo, un hilo largo en el foro de soporte de AntennaPod, que está atendido por voluntarios, tratando de depurar el problema.

Apple Podcasts, de donde la mayoría de las aplicaciones obtienen su directorio de podcasts, distribuye direcciones de fuentes RSS abiertas a aplicaciones de podcasts de terceros. Apple ofrece a los editores la opción de optar por no participar en esta distribución: pero RNE no ha utilizado esta función, prefiriendo ofrecer a los oyentes españoles una experiencia rota en otros reproductores.

RNE dice: «Mantenemos acuerdos con las principales plataformas de audio y video como Spotify, YouTube y Apple Podcasts. Creemos que los usuarios afectados son una minoría».

RNE acababa de decirnos que algunas empresas estaban «ganando dinero» con el contenido de RNE, pero luego da tres ejemplos de las que lo hacen.

  • Spotify gana dinero con el contenido de podcasts comercializando agresivamente actualizaciones premium de su aplicación de música y, en algunos casos, reproduciendo publicidad de audio antes y después del audio del episodio.
  • YouTube pone la publicidad frente al contenido del podcast y comercializa una versión premium.
  • Apple Podcasts gana dinero con el contenido de podcasts al estar disponible exclusivamente como una aplicación en iPhones y Macs, que solo Apple vende.

AntennaPod no hace ninguna de estas cosas: entonces, ¿por qué está bloqueado?

Y no bloqueando en absoluto

RNE le dice a Podnews: «Para escuchar nuestro contenido, no es necesario descargar la aplicación RNE Audio; es posible hacerlo directamente desde la URL https://www.rtve.es/play/radio/. También puede encontrar contenido escribiendo directamente su nombre en la barra de búsqueda de su navegador».

De hecho, puede escuchar a través de reproductores web, ya que el agente de usuario proporcionado por un sitio web es el agente de usuario del navegador, no la aplicación. Así, RNE pierde el control total de su contenido en la web, donde la publicidad es fácil de añadir a las páginas, pero es capaz de bloquear las aplicaciones de podcast porque dan información responsable sobre qué aplicación las está descargando.

RNE es una emisora de servicio público. El propietario de RNE, RTVE, recibe dinero de los contribuyentes españoles a través del gobierno español y un impuesto a los operadores de televisión de pago en el país. Sin embargo, esto significa que las mismas personas que pagan por el contenido de RTVE no pueden escuchar en el reproductor de podcasts de su elección.

RNE ha respondido a podnews.net: «Creemos que nuestro compromiso con el servicio público se fortalece al cumplir con la responsabilidad de saber dónde está nuestro contenido y qué se está haciendo con él», lo que no explica por qué están publicando fuentes RSS abiertas, disponibles en cualquier lugar, y solo bloquean específicamente algunas aplicaciones de podcast como AntennaPod.

Y, por supuesto, las estadísticas de descarga están disponibles directamente en los servidores de RNE, dondequiera que haya un podcast disponible.

Tampoco es por derechos

Por último, RNE nos dice, de forma opaca, que «existen limitaciones de derechos de emisión y distribución». El feed RSS abierto es el método de distribución, que no han restringido.

Los archivos de audio de RNE, ya sea que escuche a través de Apple o a través de AntennaPod, son los mismos y se descargan directamente desde los servidores de RNE. Conservan la propiedad total. No entendemos el argumento.

¿Por qué las emisoras de servicio público están tan en contra de que el público escuche?

Con el tremendo éxito del podcasting en todo el mundo (773 millones de horas de podcasts consumidas cada semana solo en los EE. UU.), está claro que el podcasting está teniendo un momento.

Hasta ahora, sin embargo, las emisoras públicas parecen estar luchando contra el podcasting. Hemos visto a la BBC bloquear aplicaciones por motivos espurios; Radio-Canada envía demandas legales engañosas a los podcasters, y Danish Radio elimina programas de RSS abiertos en favor de su propia aplicación.

Los resultados son claros: los usuarios no instalan estas aplicaciones, prefiriendo usar las aplicaciones que ya tienen en su teléfono. Los usuarios de aplicaciones de servicio público apenas están creciendo y envejeciendo. En un momento en que la radiodifusión de servicio público está bajo una renovada presión para obtener financiación, los organismos de radiodifusión están haciendo una elección no forzada a favor de la irrelevancia.

La elección de RNE de publicar a sabiendas fuentes RSS abiertas que no funcionan en algunas aplicaciones, sin consultar con esos desarrolladores de aplicaciones, es uno de los ejemplos más atroces.

En 2023, la emisora recibió 1.070 millones de euros (1.240 millones de dólares) según un informe anual publicado por la empresa. Esa financiación se realiza en virtud de la Ley 17/2006, que obliga a RTVE a «lograr la cobertura universal». Bloquear las aplicaciones de podcast disponibles gratuitamente parecería ir en contra de este requisito. Si RTVE no quiere ser una emisora pública, es bienvenido a devolver ese dinero.


Hasta aquí la traducción del artículo escrito por James Cridland para la web podnews.net, que me ha permitido traducir y publicar en mi pequeño blog, muchas gracias por eso.

En el artículo se ve que los argumentos defendidos por RNE y su «defensora del oyente» que me dió son bastante débiles y no justifican una medida como la que han implementado.

Bloquear algunas aplicaciones de podcasts frente a otras no tiene nada que ver con derechos de autor, ni con conocer los datos reales de las estadísticas de descargar, los argumentos que expuso la defensora del oyente.

Bloquear ciertas aplicaciones frente a otras es un acto sin ninguna base. Y más justificando que se puede hacer desde su web o aplicaciones propias. Le ha faltado decir «Total, sois cuatro gatos los que usáis aplicaciones como esas, por qué no bloquearos».

Espero que RNE reconsidere esta medida desigual y arbitraria basada en argumentos nada sólidos.

Y espero que os haya gustado este artículo en el que el autor ha tenido comunicación con el director de RNE y ha conseguido que de declaraciones oficiales, más allá de la respuesta copia/pega de la «defensora del oyente».

Una ilustración de una calavera con dos tibias cruzadas en señal de peligro sobre un fondo rojo bastante intenso. En el texto se puede leer: DRM toxic
13 Aug 17:48

Ya entre nosotres Debian 13 Trixie

by Gnuxero el canal de Rikylinux

Desde el sábado 9 de agosto tenemos una nueva versión de la madre de todas la distros
Debian 13 Trixie

12 Aug 18:54

Segunda actualización de FLStream | Pequeña demostración en hardware real!

by Locos por Linux

Comienza tu SERVIDOR KVM o WEB HOSTING con Hostinger 👉 https://hostinger.com/locosporlinux
💥 ¡Usa el cupón de descuento LOCOSPORLINUX para obtener un 10% de DESCUENTO!


GRUPO de Loc-OS (Signal): https://signal.group/#CjQKIFpeW4u6-wUj77vVPasE67ei1584iPtiPYXZ3g5WxuznEhANYSt0HuhrK43ePRS7lC-z
CANAL de Loc-OS (Telegram): https://t.me/locoslinux
12 Aug 17:44

Pruebo Debian 13 Trixie GNU/Linux LXQt

by Locos por Linux

Comienza tu SERVIDOR KVM o WEB HOSTING con Hostinger 👉 https://hostinger.com/locosporlinux
💥 ¡Usa el cupón de descuento LOCOSPORLINUX para obtener un 10% de DESCUENTO!

GRUPO de Loc-OS (Signal): https://signal.group/#CjQKIFpeW4u6-wUj77vVPasE67ei1584iPtiPYXZ3g5WxuznEhANYSt0HuhrK43ePRS7lC-z
CANAL de Loc-OS (Telegram): https://t.me/locoslinux
12 Aug 17:22

Comandos Debian: Referencia Avanzada (RSA Ref.2)

by Luis GuLo
Comandos Debian: Referencia Avanzada (RSA Ref.2)

Esta chuleta está centrada en tres áreas clave:

  • Administración remota
  • Contenedores (Docker y Podman)
  • Automatización del sistema

Está organizada por tema y pensada para uso diario, auditoría, despliegues y control de sistemas remotos.


Administración remota por SSH y sistemas distribuidos

Conexión y ejecución remota:

ssh usuario@host                  # Conexión remota
ssh -p 2222 usuario@host          # Puerto personalizado
ssh usuario@host "uptime"         # Ejecutar comando remoto

Copiar archivos entre hosts:

scp archivo.txt usuario@host:/destino/
rsync -avz /local/ usuario@host:/remoto/
rsync -e ssh -av /origen/ host:/destino/  # Canal SSH explícito

Transferencia de clave pública (sin contraseña):

ssh-keygen                        # Genera clave
ssh-copy-id usuario@host          # La copia al host remoto

Comandos remotos encadenados:

ssh usuario@host "cd /proyecto && git pull && ./deploy.sh"

Multiples hosts con Parallel SSH:

pssh -h hosts.txt -l root -i "hostname && df -h"

Administración de contenedores (Docker, Podman)

Docker: gestión básica:

docker ps -a                      # Contenedores activos y detenidos
docker run -d -p 8080:80 nginx    # Ejecución desatendida
docker exec -it contenedor bash   # Shell dentro del contenedor
docker cp contenedor:/archivo ./ # Copiar archivos desde contenedor

Docker: gestión avanzada:

docker inspect nginx | jq .       # Salida estructurada
docker stats                      # Monitorización por contenedor
docker system prune -a            # Elimina todo lo no usado
docker update --restart=always nombre    # Política de reinicio

Podman (sin demonio):

podman run -it alpine sh          # Contenedor sin root
podman ps -a                      # Estado
podman images                     # Imágenes disponibles

Podman + systemd: contenedor como servicio:

podman generate systemd --name web --files --restart-policy=always
cp container-web.service ~/.config/systemd/user/
systemctl --user enable --now container-web.service

Automatización con cron, systemd-timer y scripts

Cron (usuario):

crontab -e                        # Editar tareas
crontab -l                        # Listar

Ejemplo de tarea:

30 2 * * * /usr/local/bin/respaldo.sh

Systemd timer personalizado:

Archivo mi-tarea.service:

[Unit]
Description=Tarea automatizada

[Service]
Type=oneshot
ExecStart=/usr/local/bin/respaldo.sh

Archivo mi-tarea.timer:

[Unit]
Description=Ejecutar cada 15 minutos

[Timer]
OnBootSec=10min
OnUnitActiveSec=15min
Unit=mi-tarea.service

[Install]
WantedBy=timers.target

Activación:

systemctl daemon-reload
systemctl enable --now mi-tarea.timer
systemctl list-timers

Scripts autoauditados: ejemplo:

#!/bin/bash
LOG=/var/log/auditoria_$(date +%F).log
echo "[Inicio $(date)]" >> "$LOG"
uptime >> "$LOG"
df -h >> "$LOG"
ps -eo pid,%cpu,%mem,cmd --sort=-%cpu | head -10 >> "$LOG"
echo "[Fin $(date)]" >> "$LOG"

inotify: ejecutar al cambiar archivo:

inotifywait -m /etc/nginx/nginx.conf -e modify |
  while read; do systemctl restart nginx; done

Comando at (una sola vez):

echo "/usr/local/bin/mensaje.sh" | at now + 10 minutes

Automatización con Ansible

Información del sistema

ansible --version                       # Ver versión instalada
ansible-config list                     # Mostrar configuración activa
ansible-doc -l                          # Listar módulos disponibles
ansible-doc <modulo>                   # Ver ayuda de un módulo

Inventario y conectividad

ansible all -m ping                     # Probar conexión SSH
ansible -i hosts.ini grupo -m ping      # Usar inventario personalizado
ansible-inventory --list -y             # Mostrar inventario estructurado

Comandos ad-hoc (acciones rápidas)

ansible all -m shell -a "uptime"                    # Ejecutar comando remoto
ansible web -m copy -a "src=local.txt dest=/tmp/"   # Copiar archivo
ansible db -m apt -a "name=htop state=present"      # Instalar paquete
ansible all -m reboot                               # Reiniciar remotos

Ejecución de playbooks

ansible-playbook despliegue.yml                   # Ejecutar playbook
ansible-playbook -i hosts.ini servicio.yml        # Inventario personalizado
ansible-playbook -l web main.yml                  # Filtrar grupo de hosts
ansible-playbook --check mantenimiento.yml        # Modo simulación (dry run)

Gestión de claves y secretos

ansible-vault create credenciales.yml            # Crear archivo cifrado
ansible-vault edit credenciales.yml              # Editar
ansible-playbook --ask-vault-pass secreto.yml    # Ejecutar playbook cifrado

Utilidades y depuración

ansible all -m setup                              # Recopilar facts
ansible web -m debug -a "msg='Deploy OK'"         # Mensaje de prueba
ansible-playbook -v script.yml                    # Modo verboso
ansible-playbook --start-at-task="Instalar Apache" archivo.yml
11 Aug 18:15

Comandos Debian: Referencia Básica (RSA Ref.1)

by Luis GuLo


Gestión de paquetes

# apt update                # Actualizar índice
# apt upgrade               # Actualizar paquetes
# apt install paquete       # Instalar paquete
# apt remove paquete        # Eliminar paquete
# apt purge paquete         # Eliminar con configuración
# apt autoremove            # Quitar dependencias obsoletas
# dpkg -i archivo.deb       # Instalar paquete .deb
# dpkg -l | grep nombre     # Ver paquetes instalados
# apt-cache search palabra  # Buscar paquetes por palabra clave

Información del sistema

$ uname -r                  # Versión del kernel
$ lsb_release -a            # Detalles de distribución
$ hostnamectl               # Hostname y SO
$ free -h                   # Memoria libre
$ df -h                     # Uso de disco
$ top / htop                # Procesos activos
$ ps aux                    # Todos los procesos
$ who / w                   # Usuarios activos

Administración de usuarios

# adduser luisgulo              # Crear usuario
# deluser luisgulo              # Eliminar usuario
# passwd luisgulo               # Cambiar contraseña
# usermod -aG sudo luisgulo     # Añadir al grupo sudo
# chage -l luisgulo             # Ver política de contraseña

Archivos y permisos

$ ls -la                    # Ver detalles y ocultos
$ chmod 755 archivo         # Cambiar permisos
$ chown usuario:grupo archivo  # Cambiar propietario
$ find / -name archivo      # Buscar archivo por nombre
$ cp origen destino         # Copiar
$ mv origen destino         # Mover/renombrar
$ rm archivo                # Eliminar
$ touch archivo             # Crear archivo vacío

Red y conexión

$ ip a                      # Ver interfaces
$ ping 8.8.8.8              # Comprobar conectividad
$ ss -tuln                  # Ver puertos abiertos
$ curl http://...           # Solicitud HTTP
$ wget http://...           # Descargar archivo
$ scp archivo usuario@host:~/destino   # Copiar por SSH
$ ssh usuario@host          # Conectarse por SSH

Seguridad básica

# ufw status                # Ver estado del firewall
# ufw enable                # Activar firewall
# ufw allow 22/tcp          # Permitir puerto SSH
# fail2ban-client status    # Estado de protección
# last                      # Últimos accesos
# tail -n 50 /var/log/auth.log   # Registro de autenticación

Mantenimiento

# journalctl -xe            # Ver errores recientes
# dmesg                     # Mensajes del kernel
# systemctl status servicio # Estado de servicio
# systemctl restart nginx   # Reiniciar servicio
# du -sh /carpeta           # Tamaño de carpeta
# df -h                     # Espacio en disco
11 Aug 18:07

Recursos adicionales y documentación (RSA-17)

by Luis GuLo
Recursos adicionales y documentación (RSA-17)

Este apartado recopila recursos clave para ampliar tus conocimientos, resolver dudas específicas, y acceder a documentación oficial y ejemplos prácticos en cada área tratada en la Ruta del SysAdmin de SoloConLinux.


1. Manuales y ayuda integrada

Comandos integrados

man comando              # Manual completo
comando --help           # Ayuda rápida
info comando             # Manual más detallado (GNU)
whatis comando           # Descripción corta
apropos tema             # Búsqueda de comandos por tema

Ejemplo:

man tar
tar --help

2. Documentación oficial por tema

Tema Documentación principal
Linux general https://tldp.org
Comandos bash https://www.gnu.org/software/bash/manual/
man pages (online) https://man7.org/linux/man-pages/
systemd / journald https://freedesktop.org/wiki/Software/systemd/
Debian manual https://www.debian.org/doc/
Arch Wiki https://wiki.archlinux.org
SELinux https://selinuxproject.org/page/Main_Page
Ubuntu Server Guide https://help.ubuntu.com/lts/serverguide/
Fedora Documentation https://docs.fedoraproject.org/
Red Hat System Admin Guide https://access.redhat.com/documentation
OpenSUSE Documentation https://doc.opensuse.org/

3. Cheatsheets y guías rápidas

Ejemplo desde terminal:

curl cheat.sh/tar

4. Comunidades y soporte

Comunidad Enlace
Stack Overflow https://stackoverflow.com
Reddit (Linux) https://reddit.com/r/linux
LinuxQuestions https://linuxquestions.org
Ask Ubuntu https://askubuntu.com
Arch Linux Forum https://bbs.archlinux.org

5. Documentación por servicio

Servicio Documentación oficial
Apache https://httpd.apache.org/docs/
Nginx https://nginx.org/en/docs/
OpenSSH https://www.openssh.com/manual.html
vsftpd https://security.appspot.com/vsftpd.html
Samba https://wiki.samba.org/index.php/Main_Page
BIND (DNS) https://bind9.readthedocs.io/en/latest/
Postfix http://www.postfix.org/documentation.html
Certbot / SSL https://certbot.eff.org/docs/
OpenVPN https://openvpn.net/community-resources/
SELinux https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/9/html-single/using_selinux/index

6. Libros recomendados

  • Linux Pocket Guide – Daniel J. Barrett
  • The Linux Command Line – William Shotts
  • UNIX and Linux System Administration Handbook – Evi Nemeth et al
  • How Linux Works: What Every Superuser Should Know – Brian Ward

→ Muchos de estos están disponibles como edición digital en bibliotecas técnicas, distribuciones educativas o sitios como GitHub.


7. Repositorios y colecciones útiles

→ Incluyen scripts, configuraciones, referencias y herramientas.

11 Aug 18:02

SIEMPRE hay una PRIMERA VEZ

by El Cuetlachtli

Mi primera vez... desviviendo un telefono... toi triste gente, vean mi video y salganse de internet para llorar solo 😭

Cuetlachtli Tech es un canal creado para aprender juntos, el que sabe enseña y el que no sabe pregunta así de simple.

- Toda la musica del canal pertenece a #Tracktribe y a #JeremyBlake

- www.youtube.com/@TrackTribe
- www.youtube.com/@RedMeansRecording
11 Aug 17:51

Instala Debian 13 Trixie para uso de Workstation

by Linux con Last Dragon

En este video se instala el debian 13 con mi sugerencias para un uso productivo que permite que no se rompa, no se infecte de malware, resista ransomware

Video relacionado:
Activar hibernación en Linux
https://www.youtube.com/watch?v=XQcJlW7Uqao

Blog https://www.lastdragon.net/
Foro del canal https://foro.lastdragon.net
Twitter https://twitter.com/LastDragonMX
Patreon https://www.patreon.com/lastdragon
Link de grupo a Telegram https://t.me/lastdragonmex
11 Aug 17:02

La lista Robinson es una cosa

by El canal de Korah
11 Aug 07:27

🟢 Desiderata - Max Ehrmann -- Poemas imprescindibles 2

by Fabián C. Barrio

"Desiderata", atribuido a Max Ehrmann, es un texto breve y sereno que funciona como brújula moral en tiempos de confusión. Habla en voz baja, pero con firmeza, recordando lo que a menudo se olvida: la importancia de la paz interior, la amabilidad con uno mismo y con los otros, la calma en medio del ruido. En lugar de proponer fórmulas mágicas nio finales felices, se centra en proponer una forma digna de caminar el mundo. Su fuerza está en lo simple, en lo esencial, en recordarte que tu vida tiene un valor único aunque el entorno te empuje a compararte o a correr. Es un poema que no exige nada, pero lo dice todo.

Esta sección nace con una intención clara: acercar la poesía a una era que la ha olvidado, sin filtros ni etiquetas, sin exigir formación previa ni pedir credenciales de sensibilidad. Aquí caben los poemas inspiradores, los difíciles, los sencillos, los crudos, los tiernos, los oscuros, los brillantes, los que consuelan y los que incomodan. Porque la poesía, lejos de ser propiedad de las élites ni de los eruditos, es un lenguaje universal que puede atravesar a cualquiera de nosotros en el momento justo. Leer poesía es una forma de estar más vivo, de ver lo invisible, de sentir lo que no sabíamos que estaba en nosotros. Por eso quiero acercarte la poesía como un acto de resistencia íntima frente al ruido, la prisa y la trivialidad. La palabra poética —bien lo dijo Gabriel Celaya— es un arma cargada de futuro. Cuando una frase te hiere con belleza, cuando un verso te nombra sin conocerte, entonces algo cambia para siempre. Eso es lo que buscamos: ese temblor.