Protección de Ubuntu Server: Un enfoque práctico para proteger contenedores y despliegues

watch 7m, 19s
views 2

13:47, 17.08.2026

Contenido del artículo
arrow

  • Pasos de configuración inicial
  • Creación de un nuevo usuario
  • Habilitar la autenticación mediante clave SSH
  • Verificar el usuario «deploy» y configurar Sudo
  • Restringir los inicios de sesión a claves SSH
  • Configuración de un cortafuegos
  • Automatización de las actualizaciones de seguridad
  • Implementación de Fail2Ban
  • Activación de la autenticación de dos factores
  • Configuración de Logwatch
  • Finalización de la configuración

Existen varias medidas útiles que puedes aplicar para proteger el servidor Ubuntu. Por eso, hemos decidido compartir algunas recomendaciones prácticas relacionadas con este tema.

Con solo consultar tu logwatch, puedes detectar cuántos intentos de acceso a tu sistema se han producido y cuáles son. En la visión general que vamos a compartir en este artículo, ofreceremos algunos detalles sobre cómo proteger los servidores para su uso como hosts de Docker.

Pasos de configuración inicial

El paso más inicial y, al mismo tiempo, crucial es la elección de la contraseña para el usuario root. En este caso, debes seleccionar algo más complejo, y un generador de contraseñas puede ser una buena opción para este tipo de situaciones. Con la ayuda del generador de contraseñas, puedes guardar automáticamente la contraseña necesaria en solo un par de segundos y, además, cifrarla con la contraseña maestra. Sea cual sea la herramienta que utilices para generar la contraseña, también deberías plantearte alguna otra forma de cifrado. La contraseña de root podría ser necesaria en caso de que surjan problemas con la contraseña de sudo.

Otro paso importante es actualizar el sistema para disponer de los últimos parches. A continuación te explicamos cómo hacerlo:

apt-get update
apt-get upgrade

Creación de un nuevo usuario

Otra medida importante que debes seguir por motivos de seguridad es no iniciar sesión nunca en el servidor como root. Por ejemplo, en un equipo pequeño de usuarios, se puede utilizar una única cuenta de inicio de sesión para simplificar el proceso sin dejar de garantizar la seguridad. Si el equipo cuenta con más usuarios, la opción más adecuada es otorgar permisos específicos y solo mediante el acceso con «sudo».

# Crear el usuario «deploy»
useradd deploy
# Crear el directorio de inicio para el usuario «deploy»
mkdir -p /home/deploy
# Crear el directorio «.ssh» dentro del directorio de inicio del usuario «deploy»
mkdir -p /home/deploy/.ssh
# Establecer los permisos adecuados para el directorio «.ssh»
chmod 700 /home/deploy/.ssh
# Opcionalmente, cambia la propiedad del directorio de inicio y del directorio «.ssh» al usuario «deploy»
chown -R deploy:deploy /home/deploy

El siguiente paso es configurar el shell necesario con:

usermod -s /bin/bash deploy 

Habilitar la autenticación mediante clave SSH

Otra buena recomendación es evitar el uso de contraseñas para acceder a los servidores. A continuación se indican algunos puntos relacionados con este tema:

  • Las claves SSH son casi imposibles de adivinar, por lo que no se puede acceder al sistema mediante ataques de fuerza bruta, como ocurre con las contraseñas normales.
  • Las claves también son mejores que las contraseñas normales simplemente porque requieren más información.
  • En caso de pérdida o incluso robo del dispositivo, puedes proteger tu clave eliminando la clave pública de authorized_keys. También puedes obtener una capa adicional de protección utilizando una frase de contraseña larga.
  • La importancia de una frase de contraseña segura es crucial.

Ahora copiemos id_rsa.pub1:

vim /home/deploy/.ssh/authorized_keys  

Así es como deben configurarse los permisos correctos:

chmod 400 /home/deploy/.ssh/authorized_keys

chown deploy:deploy /home/deploy -R

Verificar el usuario «deploy» y configurar Sudo

Durante este proceso, mantendremos la conexión SSH como root e intentaremos verificar el usuario «deploy». A continuación, estableceremos una contraseña para «deploy». Para crear una contraseña más segura, utilizaremos una herramienta específica que también añadirá cierto nivel de cifrado.

passwd deploy

A continuación, abre sudo con:

visudo

Ahora, añadiremos el grupo «sudo» debajo del usuario «root»:

root ALL=(ALL) ALL

%sudo   ALL=(ALL:ALL) ALL

Añade el usuario «deploy» al grupo «sudo» con:

usermod -aG sudo deploy

Tras estos pasos, el usuario «deploy» obtiene permisos de sudo. Ahora, puedes volver a iniciar sesión en el shell o utilizar el siguiente comando para acceder a estos permisos:

exec su -l deploy

Restringir los inicios de sesión a claves SSH

La configuración se encuentra aquí:

vim /etc/ssh/sshd_config

En el archivo, tendrás que añadir la IP; el siguiente comando es bastante sencillo; debes estar conectado a tu VPN y autenticado de la siguiente manera:

PermitRootLogin no

PasswordAuthentication no

AllowUsers deploy@(tu-VPN-o-IP-estática)

A continuación, tendrás que reiniciar el servicio SSH:

service ssh restart

Configuración de un cortafuegos

La configuración del cortafuegos se puede realizar con Iptables o bien puedes utilizar una opción simplificada basada en Iptables, que es ufw. En el sistema Ubuntu, ufw viene instalado por defecto, mientras que en el sistema Debian debe instalarse adicionalmente con:

apt-get install ufw

Empieza abriendo el archivo de configuración:

vim /etc/default/ufw

Cambia el siguiente valor a «yes»:

IPV6=yes

Ahora puedes configurarlo todo desde la línea de comandos con ufw de la siguiente manera:

sudo ufw allow from {especificar-la-ip} to any port 22

sudo ufw allow 80

sudo ufw allow 443

sudo ufw disable

sudo ufw enable

Antes de configurar estas reglas, es imprescindible que dispongas de una IP estática. Este factor es crucial, ya que una IP dinámica puede dejarte sin acceso.

Automatización de las actualizaciones de seguridad

La automatización es muy importante; de lo contrario, podrías perderte algunas actualizaciones de seguridad en tu sistema. A continuación se indican algunos pasos que debes seguir para mejorar la seguridad:

apt-get install unattended-upgrades

vim /etc/apt/apt.conf.d/10periodic

Realiza algunas modificaciones en el archivo tal y como se indica a continuación:

APT::Periodic::Update-Package-Lists "2";

APT::Periodic::Download-Upgradeable-Packages "2";

APT::Periodic::AutocleanInterval "14";

APT::Periodic::Unattended-Upgrade "1";

Otra recomendación fundamental es habilitar únicamente las actualizaciones de seguridad, ya que las actualizaciones habituales pueden provocar que la aplicación deje de funcionar durante el proceso, lo cual no es la opción ideal en la mayoría de los casos.

vim /etc/apt/apt.conf.d/50unattended-upgrades

Realiza los siguientes cambios en el archivo:

Unattended-Upgrade::Allowed-Origins {

    "${distro_id}:${distro_codename}";

    "${distro_id}:${distro_codename}-security";

    "${distro_id}:${distro_codename}-updates";

    "${distro_id}:${distro_codename}-backports";

};

Implementación de Fail2Ban

La implementación de Fail2Ban es una opción fantástica que bloqueará numerosas actividades sospechosas. Este paquete funciona añadiendo reglas a iptables y bloqueando las direcciones IP sospechosas que muestren alguna actividad extraña.

El paquete utiliza algunos protocolos de filtrado muy útiles y ofrece una excelente integración con otros servicios para garantizar una mejor protección contra ataques de fuerza bruta o DDoS. Debes revisar Fail2Ban con regularidad, ya que podría bloquear a algunos usuarios legítimos. Para simplificar el proceso, puedes integrar la herramienta con SendMail y recibirás una notificación inmediata en cuanto se bloquee una IP concreta.

Para la instalación, utiliza:

apt-get install fail2ban

Activación de la autenticación de dos factores

Si quieres tener un servidor totalmente seguro con menos riesgos y posibilidades de sufrir ataques virtuales, la autenticación de dos factores es imprescindible. El proceso de acceso a tu servidor se complica mucho más, ya que los hackers tendrán que:

  • Acceder a la VPN obteniendo la clave o el certificado
  • Acceder a tu equipo para obtener la clave privada
  • Conseguir de alguna manera la frase de contraseña
  • Por último, se requiere acceso a tu teléfono para la autenticación de dos factores

Incluso si eso fuera posible, tendrían que obtener acceso de root mediante sudo, ya que estos hackers tendrían que conseguir de alguna manera la contraseña del administrador, que está encriptada, lo cual supone un enorme desafío.

Para la instalación, utiliza:

apt-get install libpam-google-authenticator

Para configurarlo, necesitarás los siguientes comandos:

su deploy

google-authenticator

Configuración de Logwatch

Logwatch es otra herramienta útil y necesaria para la revisión de los archivos de registro. Diariamente, recibirás datos sobre todos los intentos que se hayan producido durante ese periodo, por lo que tendrás una visión clara de lo que está sucediendo en tu servidor. Esto puede utilizarse como herramienta de monitorización y su instalación es muy sencilla:

apt-get install logwatch

A continuación, añade la tarea:

vim /etc/cron.daily/00logwatch

Añade la siguiente línea al archivo abierto:

/usr/sbin/logwatch --output mail --mailto admin@example.com --detail high

Finalización de la configuración

Esto es todo lo que necesitas saber sobre la seguridad de tu servidor Ubuntu. Con solo seguir nuestras recomendaciones prácticas, podrás reducir significativamente los ataques virtuales a tu sistema. Si quieres ir aún más allá, también debes comprobar otras posibles vulnerabilidades relacionadas con el servicio y tus aplicaciones. Sin embargo, ¡eso ya es otro tema que tratar!

Compartir

¿Te ha resultado útil este artículo?

Ofertas populares de VPS

-8.1%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
200 GB HDD
Bandwidth
Bandwidth
Unlimited
wKVM-HDD 8192 Windows

31.25 /mes

/mes

Facturado cada 12 meses

-4.4%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
100 GB HDD
Bandwidth
Bandwidth
300 Gb
wKVM-HDD HK 4096 Windows

17.1 /mes

/mes

Facturado cada 12 meses

-24.7%

CPU
CPU
4 Xeon Cores
RAM
RAM
4 GB
Space
Space
50 GB SSD
Bandwidth
Bandwidth
4 TB
KVM-SSD 4096 Metered Linux

31 /mes

/mes

Facturado cada 12 meses

-10%

CPU
CPU
6 Xeon Cores
RAM
RAM
8 GB
Space
Space
100 GB SSD
Bandwidth
Bandwidth
Unlimited
wKVM-SSD 8192 Windows

28.44 /mes

/mes

Facturado cada 12 meses

-10%

CPU
CPU
4 Xeon Cores
RAM
RAM
2 GB
Space
Space
60 GB HDD
Bandwidth
Bandwidth
Unlimited
KVM-HDD 2048 Linux

7.7 /mes

/mes

Facturado cada 12 meses

-5.4%

CPU
CPU
4 Xeon Cores
RAM
RAM
2 GB
Space
Space
60 GB HDD
Bandwidth
Bandwidth
300 Gb
wKVM-HDD HK 2048 Windows

11.7 /mes

/mes

Facturado cada 12 meses

-10%

CPU
CPU
4 Xeon Cores
RAM
RAM
2 GB
Space
Space
75 GB SSD
Bandwidth
Bandwidth
Unlimited
wKVM-SSD 2048 Windows

10.23 /mes

/mes

Facturado cada 12 meses

-12%

CPU
CPU
3 Xeon Cores
RAM
RAM
1 GB
Space
Space
20 GB SSD
Bandwidth
Bandwidth
1 TB
KVM-SSD 1024 Metered Linux

8.33 /mes

/mes

Facturado cada 12 meses

-9.3%

CPU
CPU
6 Epyc Cores
RAM
RAM
16 GB
Space
Space
150 GB NVMe
Bandwidth
Bandwidth
Unlimited
wKVM-NVMe 16384 Windows

54.49 /mes

/mes

Facturado cada 12 meses

-10%

CPU
CPU
6 Xeon Cores
RAM
RAM
16 GB
Space
Space
400 GB HDD
Bandwidth
Bandwidth
Unlimited
KVM-HDD 16384 Linux

50 /mes

/mes

Facturado cada 12 meses

Otros artículos sobre este tema

cookie

¿Acepta las cookies y la política de privacidad?

Utilizamos cookies para asegurar que damos la mejor experiencia en nuestro sitio web. Si continúa sin cambiar la configuración, asumiremos que acepta recibir todas las cookies del sitio web HostZealot.