Saltar al contenido

Guía de Endurecimiento de Seguridad ​

Esta guía proporciona pasos prácticos para mejorar la seguridad de tu sistema MiniOS. Dado que MiniOS es un sistema en vivo, las principales preocupaciones de seguridad son proteger los datos del usuario en el almacenamiento persistente y controlar el acceso al sistema en ejecución. La configuración predeterminada prioriza la comodidad para el uso portátil, pero puede no ser óptima para todos los escenarios. Las siguientes recomendaciones te ayudarán a configurar el sistema para una mayor seguridad.

Seguridad de las Cuentas de Usuario y Root ​

Por defecto, MiniOS realiza el inicio de sesión automático sin contraseña. Esto proporciona comodidad para el uso portátil, pero puede representar un riesgo de seguridad en algunos escenarios.

Credenciales predeterminadas:

  • Usuario: live / evil
  • Root: root / toor

⚠️ Estas credenciales son de conocimiento público y deben cambiarse inmediatamente para cualquier uso en red o en producción.

Creación de una Contraseña Encriptada ​

Antes de configurar las contraseñas, se recomienda crear un hash de contraseña encriptada:

bash
# The command will prompt you to enter a password and output the hash
mkpasswd -m yescrypt
# Example output: $y$j9T$...(long hash)...$Spig/F.uP

Configuración de Contraseñas ​

Puedes establecer contraseñas de dos maneras: se recomienda encarecidamente usar contraseñas encriptadas.

Importante: La configuración de contraseñas y parámetros de cuentas de usuario mediante parámetros de arranque y archivos de configuración solo tiene efecto en el primer arranque del sistema. Después de eso, las contraseñas solo pueden cambiarse usando los métodos estándar de Linux (passwd, sudo passwd).

Vía Parámetros de Arranque ​

Agrega los parámetros a la línea de comandos del kernel en el menú de arranque (GRUB para UEFI o SYSLINUX para BIOS):

Para contraseñas encriptadas (recomendado):

user-password-crypted='$y$j9T$...(hash).../'
root-password-crypted='$y$j9T$...(hash).../'

Para contraseñas en texto plano (no recomendado):

user-password='your_password'
root-password='root_password'

Importante: Las contraseñas en texto plano son visibles en la línea de comandos del kernel y pueden ser leídas por otros usuarios del sistema.

Vía Archivo de Configuración ​

Edita el archivo minios/config.conf en el directorio raíz de la unidad USB:

Para contraseñas encriptadas:

LIVE_USER_PASSWORD_CRYPTED="$y$j9T$...(hash).../"
LIVE_ROOT_PASSWORD_CRYPTED="$y$j9T$...(hash).../"

Para contraseñas en texto plano:

LIVE_USER_PASSWORD="your_password"
LIVE_ROOT_PASSWORD="root_password"

Cambio de Contraseñas Después del Arranque ​

Después del primer arranque del sistema, las contraseñas pueden cambiarse usando los comandos estándar de Linux:

bash
# Change current user password
passwd

# Change root user password (requires sudo)
sudo passwd root

# Change specific user password (requires sudo)
sudo passwd username

Deshabilitar el Inicio de Sesión Automático ​

Después de establecer contraseñas, desactiva el inicio de sesión automático para requerir autenticación:

Vía Parámetros de Arranque ​

noautologin

Vía Archivo de Configuración ​

LIVE_CONFIG_CMDLINE="components noautologin"

Desactivación parcial del autologin:

  • nox11autologin - desactiva solo el inicio de sesión automático gráfico (el gestor de inicio de sesión requerirá autenticación)
  • nottyautologin - desactiva solo el inicio de sesión automático en consola (ya desactivado por defecto)

Gestión de Privilegios de Usuario ​

Por defecto, el usuario live tiene privilegios de administrador completos sin solicitar contraseña tanto en consola (sudo) como en aplicaciones gráficas (a través de polkit). Esto proporciona comodidad para el uso del sistema en vivo, pero puede requerir ajustes para una mayor seguridad.

Habilitar Solicitud de Contraseña para sudo ​

Para requerir la introducción de contraseña al usar sudo, ejecuta después de iniciar el sistema:

bash
# Change rule to require password
echo "live ALL=(ALL:ALL) ALL" | sudo tee /etc/sudoers.d/live

Después de esto, los comandos sudo solicitarán la contraseña del usuario.

Habilitar Solicitud de Contraseña para Aplicaciones Gráficas ​

Para que los programas administrativos gráficos soliciten contraseña, elimina la regla de polkit:

bash
sudo rm /usr/share/polkit-1/rules.d/sudo_on_live.rules

Después de esto, los instaladores de software, la configuración del sistema y otras aplicaciones administrativas con interfaz gráfica solicitarán contraseña.

Deshabilitación Completa de Derechos Administrativos (noroot) ​

Para máxima seguridad, puedes deshabilitar completamente sudo y el acceso root:

Vía parámetros de arranque:

noroot

Vía archivo de configuración:

LIVE_CONFIG_NOROOT=true

Efecto: El comando sudo no funcionará, el inicio de sesión como root estará deshabilitado y no habrá acciones administrativas disponibles.

Seguridad de Red ​

Configuración SSH Predeterminada ​

Por qué SSH está habilitado por defecto: MiniOS está diseñado como un sistema de recuperación y diagnóstico para reparar hardware defectuoso. SSH está habilitado con configuraciones permisivas para proporcionar acceso remoto cuando la pantalla local no está disponible, está dañada o se trabaja con sistemas sin monitor.

Configuración actual de SSH:

  • El servicio SSH está habilitado y se inicia automáticamente
  • Se permite el acceso root vía SSH
  • La autenticación por contraseña está habilitada

Implicaciones de seguridad: Esta configuración genera riesgos de seguridad en redes no confiables, pero es necesaria para escenarios de recuperación.

Deshabilitar SSH ​

Si no se necesita acceso remoto, desactiva SSH completamente:

Vía parámetros de arranque:

disable-services=ssh,avahi-daemon

Vía archivo de configuración:

DISABLE_SERVICES=ssh,avahi-daemon

Configuración Segura de Acceso SSH ​

Si SSH es necesario, asegúralo usando los siguientes métodos:

1. Establecer Contraseñas Fuertes ​

Utiliza los métodos de configuración de contraseñas descritos anteriormente.

2. Autenticación por Clave SSH ​

Coloca los archivos authorized_keys en el directorio raíz de la unidad USB:

  • authorized_keys.root - para el usuario root
  • authorized_keys.live - para el usuario live
  • authorized_keys.username - para otros usuarios

Un componente del sistema los desplegará automáticamente en los directorios home al arrancar.

3. Endurecimiento de Seguridad SSH ​

Después de iniciar el sistema, edita la configuración de SSH:

bash
sudo nano /etc/ssh/sshd_config.d/minios.conf

Cambia los ajustes por otros más seguros:

PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes

Reinicia el servicio SSH:

bash
sudo systemctl restart ssh

Importante: Siempre prueba el acceso por clave SSH antes de deshabilitar la autenticación por contraseña.

Seguridad de Arranque ​

Secure Boot UEFI ​

MiniOS es totalmente compatible con Secure Boot, ya que utiliza el kernel estándar de Debian con gestores de arranque firmados. Secure Boot proporciona protección contra malware previo al arranque (bootkits) y se recomienda para una mayor seguridad.

Contraseña BIOS/UEFI ​

Para seguridad física, establece una contraseña en la BIOS/UEFI de tu equipo para evitar que usuarios no autorizados arranquen desde otros dispositivos o cambien la configuración de arranque.