Cómo asegurar Ubuntu recién instalado
¿Por qué importa este artículo
Ubuntu viene con ajustes pensados para facilidad de uso. Esa comodidad puede dejar abierto el sistema a ataques fácilmente evitables. Este artículo explica, paso a paso, cómo reforzar una instalación recién hecha sin necesitar herramientas externas avanzadas.
Definición rápida: memoria compartida — área de RAM accesible por múltiples procesos; si permite ejecución, puede facilitar la explotación de servicios.
Qué cambiar primero
- Establece contraseñas fuertes para todas las cuentas con acceso físico o remoto.
- Protege tu directorio personal (home) para evitar que otros usuarios locales lean tus archivos.
- Evita que cuentas no administrativas ejecuten “su” para elevar privilegios.
- Asegura el montaje de la memoria compartida (/run/shm).
- Si tienes SSH, deshabilita el inicio de sesión directo como root.
Importante: muchos cambios requieren privilegios de superusuario (root). Guarda siempre una copia del archivo de configuración antes de editarlo.
Cómo editar archivos de configuración como root
Puedes abrir y editar archivos como root de varias maneras. Aquí están tres métodos comunes, con ejemplos suponiendo que queremos editar “/file/config”.
Abrir desde terminal usando sudoedit:
sudoedit /file/config
Si usas GNOME, pulsa “Alt + F2” y escribe:
gksudo gedit /file/configSi usas KDE, pulsa “Alt + F2” y escribe:
kdesu kate /file/configNota: en las capturas del ejemplo se usa principalmente la terminal y sudoedit.
Control básico de cuentas y contraseñas
- Usa contraseñas largas y únicas. Una frase de contraseña suele ser más segura y fácil de recordar.
- Si compartes el equipo, crea cuentas separadas. No intercambies contraseñas.
- Si tienes invitados, crea una cuenta Guest con contraseñas o privilegios limitados.
Criterio práctico: si una persona solo necesita navegar por la web, la cuenta debe tener permisos mínimos.
Reconfigurar memoria compartida (/run/shm)
Por defecto, /run/shm se monta con permisos de lectura/escritura y con capacidad de ejecutar binarios. Esto facilita ciertos tipos de exploits contra servicios que escriben y ejecutan en esa área.
Abre el archivo “/etc/fstab”:
sudoedit /etc/fstabAñade esta línea al final del archivo para montarlo como solo lectura:
none /run/shm tmpfs defaults,ro 00Si usas Google Chrome u otras aplicaciones que requieren escritura en /run/shm, monta la memoria compartida con restricciones (lectura/escritura pero sin ejecución ni setuid):
none /run/shm tmpfs rw,noexec,nosuid,nodev 00
Notas:
noexecevita la ejecución de binarios desde ese punto de montaje.nosuidevita la elevación de privilegios mediante bits setuid/setgid.- Tras editar /etc/fstab, aplica cambios con
sudo mount -ao reinicia.
Cuándo NO aplicar: sistemas que ejecutan software que explícitamente requiere ejecutar desde /run/shm y no ofrecen alternativa segura.
Denegar el uso de “su” a cuentas no administrativas
El programa su permite ejecutar comandos como otro usuario, típicamente root. En sistemas con cuentas Guest o con usuarios no administrativos, conviene restringir su uso al grupo administrativo.
Ejemplo para anular la propiedad/permiso de /bin/su y forzar que solo el grupo sudo pueda usarlo:
sudo dpkg-statoverride --update --add root sudo 4750 /bin/suEste comando ajusta permisos de forma persistente en Debian/Ubuntu, haciendo que /bin/su pertenezca a root:sudo con modo 4750 (propietario root con setuid, permisos limitados al propietario y al grupo sudo).
Alternativas:
- Usar PAM (módulos de autenticación) para bloquear
sua ciertos usuarios o grupos. - No permitir cuentas de invitado sin control; usar sudo en su lugar.

Importante: tras este cambio, quien necesite ejecutar tareas administrativas debe pertenecer al grupo sudo (o al grupo que elijas).
Proteger tu directorio personal (home)
Por defecto, otros usuarios locales pueden listar tus archivos. Para impedirlo, ajusta permisos de tu carpeta home.
Comando para proteger completamente (solo tú puedes entrar y listar):
chmod 0700 /home/usernameSi quieres permitir que miembros de tu mismo grupo accedan (útil en entornos de trabajo compartido), usa:
chmod 0750 /home/username
Explicación rápida: 0700 significa lectura, escritura y ejecución para el propietario, y nada para grupo y otros.
Deshabilitar inicio de sesión SSH como root
Ubuntu suele deshabilitar SSH root por defecto, pero si activaste o configuraste una contraseña para root, debes evitar que SSH permita ese acceso.
Comprueba si tienes un servidor SSH instalado intentado conectarte localmente:
ssh localhostSi recibes “Connection refused”, no tienes sshd instalado y puedes ignorar las siguientes instrucciones.
Si tienes un servidor SSH, edita /etc/ssh/sshd_config:
sudoedit /etc/ssh/sshd_configBusca y reemplaza:
PermitRootLogin yespor:
PermitRootLogin noDespués reinicia el servicio SSH:
sudo systemctl restart sshdNotas:
- Para administración remota, usa cuentas normales con
sudoy llaves SSH en lugar de contraseñas. - Considera desactivar la autenticación por contraseña (
PasswordAuthentication no) y usar llaves públicas.
Comprobaciones y pruebas (tests básicos)
- Verifica que
/run/shmesté montado con las opciones deseadas:mount | grep /run/shm. - Comprueba permisos de
/home/username:ls -ld /home/username. - Asegúrate de que
/bin/sutenga gruposudoy permisos 4750:ls -l /bin/su. - Prueba SSH local y remoto tras los cambios: intenta iniciar sesión como root (debe fallar) y como usuario normal con
sudo.
Criterios de aceptación
- /run/shm no permite ejecución de binarios en entornos de escritorio, salvo excepciones justificadas.
- /home/username no es legible por otros usuarios locales.
- El inicio de sesión SSH como root está deshabilitado en hosts con sshd instalado.
- Solo los miembros del grupo administrativo pueden usar
su.
Lista de verificación por rol
Usuario principiante:
- Cambiar contraseña personal.
- Aplicar
chmod 0700a tu home. - Evitar dar acceso físico a cuentas con privilegios.
Administrador del sistema:
- Revisar
/etc/fstaby montar/run/shmconnoexec,nosuid,nodevsi es posible. - Implementar reglas de sudo y PAM que limiten elevación de privilegios.
- Deshabilitar autenticación por contraseña en SSH cuando se usen llaves.
Operaciones/DevOps:
- Documentar cambios en la configuración y en la gestión de imágenes de máquina (IaC).
- Añadir comprobaciones automáticas en el pipeline de integración que verifiquen permisos críticos.
Alternativas y prácticas complementarias
- SELinux o AppArmor: añade control extra sobre qué puede ejecutar cada proceso.
- Firewalls (ufw/iptables/nftables): limita servicios expuestos a la red.
- Auditoría (auditd): registra eventos críticos, ideal para entornos con cumplimiento.
- Gestión de parches y actualizaciones automáticas: mantiene el sistema con menos vulnerabilidades conocidas.
Cuando estas medidas fallan
- Software legítimo que necesita ejecutar desde /run/shm: documenta, evalúa y aplica excepciones puntuales.
- Entornos de desarrollo con permisos abiertos: confínalos en contenedores o máquinas virtuales separadas.
Mini-metodología de implementación (playbook rápido)
- Hacer copia de seguridad de archivos de configuración:
sudo cp /etc/fstab /etc/fstab.bak. - Aplicar el cambio en
/etc/fstaby montar:sudo mount -a. - Ajustar permisos de home y verificar con
ls -ld. - Aplicar dpkg-statoverride para
/bin/suy comprobar permisos. - Editar
sshd_config, reiniciar sshd y verificar intentos de login. - Documentar y monitorizar por 7 días para detectar problemas.
Seguridad adicional y buenas prácticas
- Usa autenticación de dos factores (2FA) en servicios que lo soporten.
- Mantén copias de seguridad cifradas fuera del equipo.
- Revisa los logs periódicamente:
journalctl,/var/log/auth.log. - Limita servicios instalados; menos software = menor superficie de ataque.
Privacidad y consideraciones legales
Si compartes el equipo con otros, informa y pide consentimiento para acceder a datos personales. En entornos empresariales, consulta la política de seguridad y cumplimiento antes de cambiar configuraciones compartidas.
Preguntas frecuentes
¿Puedo revertir los cambios si algo deja de funcionar?
Sí. Guarda los archivos originales antes de modificar (cp archivo archivo.bak) y restaura si es necesario. Para permisos, recuerda el valor anterior o restaura desde la copia.
¿Montar /run/shm como ro rompe aplicaciones?
Algunas aplicaciones (por ejemplo navegadores o procesos que usan IPC intensivamente) pueden requerir escritura. Usa la variante rw,noexec,nosuid,nodev para permitir escritura sin ejecución.
¿Es suficiente esto para proteger un servidor expuesto a internet?
Son pasos importantes, pero en servidores expuestos debes añadir más capas: firewalls, gestión de llaves SSH, auditoría, actualizaciones automáticas y controles de acceso a la red.
Resumen
Has aplicado cambios sencillos y potentes: protección del directorio home, restringir su, endurecer la memoria compartida y evitar el login SSH de root. Estos ajustes reducen riesgos comunes y son compatibles con la mayoría de flujos de trabajo. Documenta los cambios y añade controles automáticos en tus procesos de administración.
Lecturas recomendadas
- Wiki de Ubuntu para guías avanzadas de seguridad.
- Guías de AppArmor/SELinux para control de procesos.
Anuncio breve (publicación)
Refuerza tu Ubuntu recién instalado en minutos: protege tu home, limita su, endurece /run/shm y desactiva SSH root. Sencillo, reversible y efectivo.
Materiales similares
Podman en Debian 11: instalación y uso
Apt-pinning en Debian: guía práctica
OptiScaler: inyectar FSR 4 en casi cualquier juego
Dansguardian + Squid NTLM en Debian Etch
Arreglar error de instalación Android en SD