# Servidores seguros: ¿cómo configurarlos correctamente?

Configurar un servidor seguro es una de las tareas más importantes para los administradores. Esto se aplica no solo a los servidores autogestionados, sino también al hardware alquilado. Medidas como la protección mediante contraseñas, configuraciones adecuadas de SSH y actualizaciones regulares garantizan un paquete de seguridad integral.

## Configurar un servidor seguro: ¿quién es responsable?

Alojar un servidor propio es la mejor solución para disfrutar de la máxima libertad durante su configuración. Los [root servers](https://www.ionos.es/servidores/root-server) o servidores raíz dedicados son una alternativa conveniente y que muchos proveedores alquilan para dar **acceso a la cuenta de usuario root**. En ambos casos, gestiones fundamentales como la instalación, la estructuración y el mantenimiento del servidor son responsabilidad exclusiva de la persona que alquila el servicio.

Independientemente de la solución escogida, la seguridad desempeña un papel esencial porque un error en el entorno root puede tener consecuencias graves. No obstante, si se siguen las prácticas correctas, se puede establecer la base perfecta para conseguir un servidor estable, potente y seguro.

## Cómo proteger tu servidor: guía paso a paso

Independientemente de si deseas proteger un servidor con Windows, Ubuntu o Debian, existen medidas generales que te ayudarán a establecer una base sólida de seguridad. Hemos resumido los pasos más importantes para que puedas implementarlos y disfrutar de un servidor seguro.

### Paso 1: realizar una instalación mínima

Antes de tomar las precauciones pertinentes para configurar un servidor seguro ya puedes influir en el potencial de seguridad posterior de tu proyecto web. Sin importar si te decantas por un sistema [Windows o Linux](https://www.ionos.es/digitalguide/servidores/know-how/linux-vs-windows/), en la instalación se aplica el principio de que un servidor solo debe contener el software necesario para **realizar sus tareas**.

Esto se debe a que **cada aplicación que se instala conlleva un riesgo potencial de seguridad** y puede repercutir de manera negativa en el rendimiento. Para disminuir el número de ataques se deben instalar o activar los componentes necesarios del sistema o solo recurrir a **software de terceros debidamente verificado**.

### Paso 2: establecer una contraseña segura

Después de instalarlos, lo primero que debes hacer es establecer una contraseña segura para el usuario administrador (Windows) o root (Linux). Por defecto no se define ningún valor y la cuenta de administrador permanece bloqueada hasta que se establezca una contraseña. Normalmente, tras la instalación, el sistema operativo solicita automáticamente la creación de una **cuenta de usuario con una contraseña** que haga de acceso de administrador o root.

Si has alquilado un servidor Linux a un proveedor y ya tienes un inicio de sesión root predefinido, es importante que cambies la contraseña de inmediato. Para hacerlo, conéctate a tu servidor mediante [SSH](https://www.ionos.es/digitalguide/servidores/herramientas/protocolo-ssh/) y ejecuta el siguiente comando en el terminal correspondiente:

```bash
passwd
```

A continuación, puedes definir tu [contraseña segura](https://www.ionos.es/digitalguide/servidores/seguridad/la-contrasena-una-clave-para-proteger-tu-informacion/), que deberás verificar después. Asegúrate de que la contraseña sea lo más larga posible y utiliza una combinación de **letras**, **caracteres especiales** y **números**. También se recomienda almacenar la contraseña en un [gestor de contraseñas](https://www.ionos.es/digitalguide/servidores/seguridad/gestor-de-contrasenas-un-vistazo-a-las-mejores-opciones/), para tenerla siempre disponible si la necesitas.

Consejo Si tu sistema Linux ya tiene una contraseña root configurada que desconoces, puedes cambiarla en el **modo de recuperación**. Para acceder a este modo, mantén pulsada la [tecla Shift o Mayús](https://www.ionos.es/digitalguide/paginas-web/desarrollo-web/tecla-shift/) durante el proceso de inicio. Desde la opción de menú “root”, podrás iniciar la consola como administrador y realizar el cambio de contraseña deseado.

### Paso 3: modificar el puerto SSH

Para acceder al servidor vía SSH se utiliza por defecto el [puerto TCP/UDP](https://www.ionos.es/digitalguide/servidores/know-how/puertos-tcp-puertos-udp/) 22, que es el que figura ya automáticamente cuando se instala el sistema. Los ciberdelincuentes que van en busca de sistemas con brechas de seguridad llevan a cabo sus ataques, normalmente intentos de registro automáticos, a través de este puerto, por lo que, definiendo otro puerto diferente para las **conexiones remotas cifradas**, se puede minimizar el riesgo de accesos indeseados.

Para ello se debe abrir el archivo de configuración SSH `sshd_config` con un editor de textos. El comando que aparece en el siguiente ejemplo de código invoca al archivo con el editor estándar de Linux, es decir, nano:

```none
nano /etc/ssh/sshd_config
```

Busca la línea correspondiente y sustituye el número de puerto 22 por un número de tu elección. En este sentido, no hay que olvidar, sin embargo, que existen otros puertos estándares para otros servicios (por ejemplo, el puerto 80 para [HTTP](https://www.ionos.es/digitalguide/hosting/cuestiones-tecnicas/protocolo-http/).

Nota Antes de que se activen los cambios en el archivo `sshd_config`, es necesario reiniciar el servicio SSH. En [Debian](https://www.ionos.es/digitalguide/servidores/know-how/debian-el-software-universal-para-sistemas-operativos/) esto se lleva a cabo con el comando `/etc/init.d/ssh restart`, mientras que los usuarios de Ubuntu pueden iniciar el servicio con ayuda de `service ssh restart`.

### Paso 4: desactivar el registro SSH para el administrador

Para conseguir un servidor seguro, se recomienda deshabilitar el acceso SSH para la cuenta root o de administrador. Si esta cuenta permanece habilitada, un atacante que obtenga la contraseña podría acceder al servidor mediante acceso remoto.

Antes de implementar esta medida, asegúrate de crear **al menos otra cuenta** que pueda conectarse al servidor. De lo contrario, podrías quedarte completamente bloqueado fuera del sistema. En sistemas Linux, puedes crear una nueva cuenta con el siguiente comando:

```none
useradd -g users -d /home/usuario1 -m -s /bin/bash usuario1
```

De esta manera se genera la cuenta de usuario “usuario1”. A continuación, se define una contraseña segura para esta nueva cuenta de inicio de sesión:

```none
passwd usuario1
```

Verifica si funciona el registro con dicha cuenta de usuario y continúa con el paso para bloquear el acceso SSH para la cuenta root. Para ello será necesario recurrir al archivo de configuración SSH `sshd_config`, que puedes abrir con el editor que hayas escogido. Busca la entrada `PermitRootLogin yes` y sustitúyela por `PermitRootLogin no`. Después de reiniciar el servicio SSH, **el acceso remoto para la cuenta root estará deshabilitado**.

En el archivo de configuración también puedes especificar qué usuarios pueden acceder al servidor mediante SSH utilizando la directiva `AllowGroups`. Para ello, crea un **grupo** (`addgroup`) y añade los usuarios deseados al grupo (`adduser`). Luego, incluye el **nombre del grupo** en el archivo `sshd_config` (por ejemplo, `AllowGroups usuarios_ssh`).

Nota Una alternativa práctica al bloqueo del acceso SSH mediante contraseña es deshabilitar completamente las autenticaciones con contraseña y utilizar la autenticación mediante claves públicas (Public-Key Authentication) con [claves SSH](https://www.ionos.es/digitalguide/servidores/seguridad/como-usar-las-claves-ssh-para-una-conexion-de-red/).

### Paso 5: notificaciones por correo para los mensajes de inicio de sesión con SSH

Independientemente de cómo se proceda a la hora de asegurar el acceso SSH, se deben tener en cuenta todas las actividades remotas. De esta manera se puede determinar si se ha asegurado correctamente el servicio SSH del servidor correspondiente. Al mismo tiempo, una **buena monitorización de las conexiones establecidas** te alertará en caso de accesos no autorizados para poder adoptar las medidas correspondientes. En ello, basta con un script de shell que envíe un correo de aviso automáticamente a tu dirección si el registro remoto se lleva a cabo con éxito en el servidor.

Un script de ejemplo para Linux `/opt/shell-login.sh`, que puedes crear fácilmente, solo ha de contener el siguiente código:

```none
#!/bin/bash
echo "Login en $(nombre del host) el $(date +%Y-%m-%d) a las $(date +%H:%M)"
echo "Usuario: $USER"
echo
finger
```

Para completar la configuración, edita el archivo `/etc/profile` y añade la siguiente línea:

```txt
/opt/shell-login.sh | mailx -s "Login SSH en TU-NOMBRE DEL HOST" direcciondecorreo@example.com
```

Con la siguiente entrada te aseguras de que el script se ejecuta y de que, en caso de que el login se realice con éxito, envíe un **correo de aviso** a la dirección deseada. La única condición es que al script se le asigne el permiso 755, que permiten la lectura y ejecución para todos los usuarios, y escritura únicamente para el propietario. Esto se consigue con el siguiente comando:

```bash
chmod 755 /opt/shell-login.sh
```

Nota Cuando un usuario establece una conexión SSH con ayuda de un programa como [WinSCP](https://www.ionos.es/digitalguide/hosting/cuestiones-tecnicas/transferencia-cifrada-de-datos-con-winscp/), que no ejecuta ningún inicio de sesión completo, el script de shell descrito anteriormente no envía ningún correo electrónico.

### Paso 6: bloquear los puertos no utilizados

En general, los puertos abiertos no suelen representar ningún riesgo para la seguridad. Debido a que son necesarios para la comunicación con cada uno de los servicios y aplicaciones, es incluso esencial que **ciertos puertos se liberen**, como es el caso de los puertos 80 y 443 para conexiones HTTP o HTTPS o del puerto SSH seleccionado. Si llevas a cabo una instalación minimalista de sistemas y recurres a un número reducido de aplicaciones de terceros, el número de puertos que necesitas no es excesivamente larga. Estas interfaces abiertas solo son un riesgo cuando los **programas que tienen que responder presentan brechas de seguridad** y los criminales se aprovechan de ellas, peligro que aumenta si se incrementa el número de aplicaciones.

Consejo Consulta nuestro artículo dedicado para aprender cómo [testear tus puertos](https://www.ionos.es/digitalguide/servidores/seguridad/puertos-abiertos/) y obtener una visión general de todos los puertos abiertos en tu servidor.

Si has realizado una instalación mínima del sistema y has instalado solo un número limitado de aplicaciones de terceros es probable que la cantidad de puertos necesarios sea reducida.

Ante posibles ataques, es fundamental contar con un servidor seguro para bloquear los puertos abiertos que no sean necesarios mediante la configuración de tu [firewall](https://www.ionos.es/digitalguide/servidores/seguridad/que-es-un-firewall/). Por lo general, con el **software [iptables](https://www.ionos.es/digitalguide/servidores/herramientas/iptables-conoce-las-reglas-para-crear-paquetes-de-datos/) de filtrado de paquetes** todos los sistemas operativos ya cuentan con la herramienta adecuada para ello. Con su ayuda se pueden crear normas fijas para regular el tráfico de datos, donde también es posible, entre otros factores, **definir los puertos deseados y los no deseados**.

### Paso 7: actualización periódica del software

Por lo general las **vulnerabilidades de seguridad conocidas** pueden solucionarse rápidamente mediante la publicación de actualizaciones. Si te informas regularmente sobre las actualizaciones disponibles para los sistemas operativos y los programas instalados y llevas a cabo nuevas actualizaciones, podrás proteger tu servidor de un modo óptimo. Casi todos los sistemas de servidores permiten, asimismo, **descargar e instalar actualizaciones de seguridad también en un segundo plano**.

Si quieres proteger un servidor con Windows, el apartado “**Windows Update**” te da la posibilidad de delimitar directrices concretas para el proceso de actualización. Así puedes determinar cuándo y con qué asiduidad se deben buscar actualizaciones, si se tienen que instalar las actualizaciones encontradas de manera automática o el momento en el que el sistema tiene que reiniciarse. En el caso de los sistemas Linux existen scripts específicos como *apt-listchanges* o *apticron* que informan a diario sobre la existencia de un nuevo paquete de software y también lo descargan. Otros scripts como *unattended-upgrades* llevan a cabo por sí mismos la instalación automática.

Nota Asegúrate de que durante un proceso de actualización automatizado mantienes una visión general sobre las actualizaciones realizadas, pues así se pueden descubrir los errores que surjan durante el proceso de actualización y reaccionar ante ellos.

### Paso 8: proteger servidores Windows y Linux contra ataques de fuerza bruta

Uno de los ataques más sencillos y más recurrentes es el llamado [método de fuerza bruta](https://www.ionos.es/digitalguide/servidores/seguridad/brute-force-definicion-y-medidas-de-proteccion/). Con él, el atacante se vale de una herramienta con la que realiza varios inicios de sesión para **acceder a las contraseñas**. Cuanto más **cuidadoso seas con tus contraseñas**, menos probabilidades habrá de que este método se lleve a cabo con éxito.

Especialmente si ofreces un servicio con mecanismo de registro, debes tener en cuenta que todos los usuarios no son tan cuidadosos y prudentes como deberían. Para estar protegido frente a este tipo de ataques, pueden ser de utilidad algunas **herramientas de análisis** como [Fail2ban](https://www.ionos.es/digitalguide/servidores/seguridad/fail2ban-la-herramienta-ideal-para-proteger-tu-servidor/) (para sistemas Linux y POSIX) o RdpGuard (para Windows). Estas soluciones revisan los archivos de registro del servidor, identifican comportamientos inusuales y **bloquean la dirección IP de los usuarios sospechosos**. Asimismo, también se puede ajustar el número de intentos fallidos que son necesarios para que se produzca el bloqueo o el período de validez que este debe tener.

Consejo Puedes aumentar la seguridad habilitando la [verificación en dos pasos](https://www.ionos.es/digitalguide/correo-electronico/seguridad-correo-electronico/verificacion-en-dos-pasos-proteccion-para-tu-cuenta/). Este método requiere, además de la contraseña, un segundo factor que esté en posesión del usuario, como un smartphone, una tarjeta inteligente o una lista de códigos TAN.

### Paso 9: utilizar herramientas de monitorización

Si quieres tener un servidor seguro, también es importante preocuparse por que la **combinación entre hardware y software** funcione de la manera deseada, y no solo tras el inicio del entorno del servidor, sino a largo plazo. Dado que supervisar los numerosos procesos del sistema puede ser complejo, es recomendable usar herramientas de monitorización desde el principio. Estas herramientas supervisan las actividades del servidor y emiten alertas ante cualquier anomalía.

Un modesto programa y de rápida configuración es, por ejemplo, Monit, que se puede instalar fácilmente en muchas distribuciones de Linux por medio del sistema de gestión de paquetes. Tras el arranque, la aplicación de código abierto (licencia AGPL de GNU) observa de manera facultativa **procesos, archivos, clouds, hosts, programas o scripts**, donde también entran en juego **recursos del sistema** como CPU, memoria o consumo del sistema. Si se necesita más información se recomienda recurrir al software de monitorización [Nagios](https://www.ionos.es/digitalguide/servidores/herramientas/nagios-todos-los-procesos-de-red-a-tu-alcance/), otra solución de código abierto disponible para Linux y Windows, y que se puede ampliar mediante [plugins para Nagios](https://www.ionos.es/digitalguide/servidores/herramientas/plugins-para-nagios-instalacion-de-extensiones/) específicos.

### Paso 10: configurar copias de seguridad

Aunque las configuraciones recomendadas aumentan significativamente la seguridad del servidor, ningún sistema puede garantizar una protección absoluta. Por ello, una [estrategia de copias de seguridad](https://www.ionos.es/digitalguide/servidores/know-how/tipos-de-copias-de-seguridad/) integral debe ser un pilar clave de tu sistema de seguridad. Esta estrategia te permitirá restaurar archivos en caso de pérdida o fallo del sistema.

Hoy en día existen herramientas de alto rendimiento que no solo te ayudan a crear las copias, sino también a restaurarlas. Una aplicación gratuita de utilidad en este sentido es el **programa de sincronización** [rsync](https://www.ionos.es/digitalguide/servidores/herramientas/como-crear-copias-de-seguridad-del-servidor-con-rsync/), cuyo nombre se deriva del protocolo homónimo y que está disponible en diferentes versiones para casi todas las plataformas (macOS, Windows y Linux). Esta herramienta mantiene la copia de los datos del servidor actualizada y, para ello, realiza cambios en el archivo original en tiempo real.

Junto al [backup](https://www.ionos.es/digitalguide/servidores/seguridad/que-es-un-backup/) general del servidor, otra de las tareas más importantes es la [protección de las bases de datos](https://www.ionos.es/digitalguide/servidores/seguridad/bases-de-datos-la-importancia-de-asegurar-tu-informacion/).

Nota A la hora de proteger las copias de seguridad de manera segura, se recomienda que el directorio del backup se guarde en un **soporte de almacenamiento externo** como, por ejemplo, un disco duro portátil u otro servidor y no en el propio servidor que se quiere asegurar.


This is a markdown version of: [https://www.ionos.es/digitalguide/servidores/configuracion/servidores-seguros-aprende-a-configurarlos/](https://www.ionos.es/digitalguide/servidores/configuracion/servidores-seguros-aprende-a-configurarlos/) for AI/LLM consumption.