Laboratorio
Básico
cableando
Primeros pasos con un servidor Linux

Primeros pasos con un servidor Linux

Básico

Los pasos marcados en azul cambian según tu sistema.

Acabas de estrenar un servidor: un VPS recién contratado, un equipo viejo reconvertido o una Raspberry Pi en el armario. Antes de instalar nada, dedica diez minutos a estos pasos. Lo dejarán más seguro y más cómodo de usar, y serán la base de todo lo que montes después.

Vamos a actualizar el sistema, crear un usuario para el día a día con permisos de administración, activar un cortafuegos y preparar el acceso por SSH para ese usuario. Los pasos sirven para Ubuntu, Debian, AlmaLinux y Rocky Linux: elige tu sistema en el desplegable de arriba y verás sus comandos.

Entrar como root

Para conectarte necesitas la IP pública del servidor y la contraseña o la clave SSH de la cuenta de administración que te haya dado tu proveedor (o la que pusiste al instalar el sistema). Si todavía no te has conectado nunca por SSH, echa un vistazo antes a SSH a fondo.

Desde tu ordenador, conéctate como root cambiando la IP de ejemplo por la de tu servidor:

ssh root@203.0.113.10

Acepta el aviso sobre la identidad del servidor si aparece y escribe la contraseña de root, o la frase de paso de tu clave si usas una. Si es la primera vez que entras con contraseña, puede que el sistema te pida cambiarla en ese momento.

Algunos proveedores no te dan root, sino un usuario como ubuntu, debian o almalinux que ya puede usar sudo. En ese caso, conéctate con ese usuario y escribe sudo -i para trabajar como root durante esta guía.

Por qué no quedarse en root

Con root el sistema no te pone ningún freno: un rm con una ruta equivocada y no hay vuelta atrás. La costumbre sana es trabajar con tu propio usuario y anteponer sudo solo a lo que de verdad lo necesita. Te obliga a pararte un segundo antes de cada cambio importante y deja rastro de quién hizo qué.

Actualizar el sistema

Las imágenes de los proveedores y los instaladores suelen quedarse atrás en actualizaciones de seguridad. Lo primero es ponerse al día:

Ubuntu

apt update && apt upgrade -y

Debian

apt update && apt upgrade -y

AlmaLinux / Rocky

dnf upgrade -y

Si se ha actualizado el kernel, reinicia (reboot) y vuelve a conectarte antes de seguir.

Crear un usuario

Ahora crea la cuenta con la que trabajarás a partir de hoy. En el ejemplo se llama ana; usa el nombre que quieras.

Ubuntu

adduser ana

Te pedirá una contraseña y, después, algunos datos opcionales (nombre completo, teléfono…). Puedes dejarlos en blanco pulsando Intro.

Debian

adduser ana

Te pedirá una contraseña y, después, algunos datos opcionales (nombre completo, teléfono…). Puedes dejarlos en blanco pulsando Intro.

AlmaLinux / Rocky

En AlmaLinux y Rocky, adduser crea la cuenta sin preguntar nada. Ponle una contraseña después:

adduser ana
passwd ana

Elige una contraseña larga: aunque vayas a entrar con clave SSH, la necesitarás cada vez que uses sudo.

Darle permisos de administración

El usuario nuevo tiene permisos normales. Para que pueda administrar el servidor sin tener que entrar como root, dale acceso a sudo: así podrá ejecutar cualquier comando como administrador escribiendo sudo delante.

Ubuntu

En Ubuntu, los miembros del grupo sudo pueden usar sudo:

usermod -aG sudo ana

Debian

En Debian, los miembros del grupo sudo pueden usar sudo. Si instalaste el sistema con contraseña de root, puede que sudo no venga instalado; instálalo primero:

apt install -y sudo
usermod -aG sudo ana

AlmaLinux / Rocky

En AlmaLinux y Rocky, los miembros del grupo wheel pueden usar sudo:

usermod -aG wheel ana

Activar el cortafuegos

Un cortafuegos deja pasar solo las conexiones a los servicios que tú decidas. Lo importante ahora es dejar abierto SSH, o la próxima vez no podrás entrar.

Ubuntu

Ubuntu trae UFW, un cortafuegos pensado para manejarse con órdenes cortas. Algunos programas dejan en él un perfil con sus puertos al instalarse; el de SSH se llama OpenSSH:

ufw app list
Available applications:
  OpenSSH

Permite las conexiones SSH y activa el cortafuegos:

ufw allow OpenSSH
ufw enable

Escribe y y pulsa Intro para confirmar. Comprueba el estado:

ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Debian

Debian no trae cortafuegos activado. Instala UFW, un cortafuegos sencillo de manejar:

apt install -y ufw

Permite las conexiones SSH y activa el cortafuegos:

ufw allow OpenSSH
ufw enable

Escribe y y pulsa Intro para confirmar. Comprueba el estado:

ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

AlmaLinux / Rocky

AlmaLinux y Rocky usan firewalld, que en una instalación normal ya viene activo y con SSH permitido. Asegúrate de que está en marcha (algunas imágenes de VPS no lo traen):

dnf install -y firewalld
systemctl enable --now firewalld

Comprueba que SSH está permitido:

firewall-cmd --list-services
cockpit dhcpv6-client ssh

Si ssh no aparece en la lista, añádelo:

firewall-cmd --permanent --add-service=ssh
firewall-cmd --reload

Desde ahora el cortafuegos bloquea todo lo que no sea SSH. Cuando instales otros servicios tendrás que abrirles paso. Por ejemplo, para una web:

Ubuntu

ufw allow 80/tcp
ufw allow 443/tcp

Debian

ufw allow 80/tcp
ufw allow 443/tcp

AlmaLinux / Rocky

firewall-cmd --permanent --add-service=http --add-service=https
firewall-cmd --reload

Tienes más ejemplos en el tutorial del cortafuegos con UFW.

Preparar el acceso por SSH para tu usuario

Solo falta que puedas entrar por SSH directamente con el usuario nuevo.

No cierres todavía la sesión de root. Hasta que compruebes que puedes entrar y usar sudo con el usuario nuevo, mantenla abierta: si algo falla, podrás arreglarlo desde ahí.

Cómo hacerlo depende de cómo has entrado como root: con contraseña o con clave SSH.

Si entraste como root con contraseña

Si entraste con contraseña, el servidor acepta contraseñas por SSH y puedes conectarte ya. Abre otra terminal en tu ordenador:

ssh ana@203.0.113.10

Entrarás con la contraseña de ana. Aun así, es mucho más seguro entrar con claves: sigue los pasos de SSH a fondo para crear las tuyas, copiarlas al servidor y, después, desactivar las contraseñas.

Si entraste como root con clave SSH

Si entraste con clave, lo normal es que el servidor no acepte contraseñas. Tu clave pública ya está en el authorized_keys de root, así que basta con copiar la carpeta .ssh al usuario nuevo y darle la propiedad:

Ubuntu

cp -r ~/.ssh /home/ana/
chown -R ana:ana /home/ana/.ssh

Debian

cp -r ~/.ssh /home/ana/
chown -R ana:ana /home/ana/.ssh

AlmaLinux / Rocky

En AlmaLinux y Rocky, además, hay que devolver a los archivos copiados su contexto de SELinux; si no, SSH no podrá leerlos:

cp -r ~/.ssh /home/ana/
chown -R ana:ana /home/ana/.ssh
restorecon -R /home/ana/.ssh

Ahora, en otra terminal de tu ordenador, conéctate con el usuario nuevo:

ssh ana@203.0.113.10

Deberías entrar sin contraseña. Comprueba que sudo funciona:

sudo whoami
root

La primera vez en cada sesión, sudo te pedirá la contraseña de tu usuario. Si todo va bien, ya puedes cerrar la sesión de root.

Actualizaciones de seguridad automáticas

Un servidor que no se actualiza acaba siendo vulnerable. Para no depender de acordarte, deja que instale solo los parches de seguridad:

Ubuntu

Ubuntu trae unattended-upgrades activado por defecto. Compruébalo:

sudo systemctl status unattended-upgrades

Si no estuviera instalado, actívalo con sudo apt install unattended-upgrades y sudo dpkg-reconfigure -plow unattended-upgrades.

Debian

Instala y activa unattended-upgrades:

sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure -plow unattended-upgrades

Responde «Sí» a la pregunta de si quieres descargar e instalar automáticamente las actualizaciones estables.

AlmaLinux / Rocky

Instala dnf-automatic y configúralo para aplicar solo las actualizaciones de seguridad:

sudo dnf install -y dnf-automatic
sudo sed -i 's/^upgrade_type = .*/upgrade_type = security/; s/^apply_updates = .*/apply_updates = yes/' /etc/dnf/automatic.conf
sudo systemctl enable --now dnf-automatic.timer

Siguientes pasos

Tu servidor ya tiene una base sólida: un usuario con sudo para el día a día, un cortafuegos que solo deja pasar lo que tú decides, acceso por SSH y parches de seguridad automáticos.

A partir de aquí:

  • Endurece SSH: entra solo con claves y desactiva las contraseñas, con SSH a fondo.
  • Frena a los bots que prueban contraseñas con Fail2Ban.
  • Aprende a abrir y cerrar servicios con el cortafuegos UFW.

Y, sobre todo, apunta en un lugar seguro la IP, los usuarios y cualquier cambio que hagas: tu yo del futuro te lo agradecerá.

X LinkedIn
¿Te ha resultado útil?

Sigue leyendo

Tu servidor web con Nginx

Tutorial / Sistemas

Tu servidor web con Nginx

Publica tu web desde tu propio servidor: instala Nginx, abre el cortafuegos, crea tu primer sitio con dominio y úsalo de puerta a tus apps.

/7 min

HTTPS gratis con Let’s Encrypt

Tutorial / Sistemas

HTTPS gratis con Let’s Encrypt

Cifra tu web en cinco minutos y olvídate: certificado gratuito de Let's Encrypt con Certbot y Nginx, que se renueva solo cada 90 días.

/5 min

SSH a fondo: claves, servidor y túneles

Tutorial / Sistemas

SSH a fondo: claves, servidor y túneles

Entra en tus servidores sin contraseñas, blinda sshd en unas pocas líneas y usa túneles para llegar a lo que no quieres exponer.

/16 min