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/config
Si usas KDE, pulsa “Alt + F2” y escribe:
kdesu kate /file/config
Nota: 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/fstab
Añade esta línea al final del archivo para montarlo como solo lectura:
none /run/shm tmpfs defaults,ro 00
Si 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:
noexec
evita la ejecución de binarios desde ese punto de montaje.nosuid
evita la elevación de privilegios mediante bits setuid/setgid.- Tras editar /etc/fstab, aplica cambios con
sudo mount -a
o 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/su
Este 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
su
a 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/username
Si 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 localhost
Si 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_config
Busca y reemplaza:
PermitRootLogin yes
por:
PermitRootLogin no
Después reinicia el servicio SSH:
sudo systemctl restart sshd
Notas:
- Para administración remota, usa cuentas normales con
sudo
y 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/shm
esté montado con las opciones deseadas:mount | grep /run/shm
. - Comprueba permisos de
/home/username
:ls -ld /home/username
. - Asegúrate de que
/bin/su
tenga gruposudo
y 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 0700
a tu home. - Evitar dar acceso físico a cuentas con privilegios.
Administrador del sistema:
- Revisar
/etc/fstab
y montar/run/shm
connoexec,nosuid,nodev
si 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/fstab
y montar:sudo mount -a
. - Ajustar permisos de home y verificar con
ls -ld
. - Aplicar dpkg-statoverride para
/bin/su
y 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

Arreglar error Windows Installer Package (1722)

Estrategias de opciones para principiantes
Enviar SMS gratis online: 10 servicios y guía

Contraseña local: nunca expira en Windows

Reducir tamaño de fotos en iPhone fácilmente
