GNU/Linux >> Tutoriales Linux >  >> Linux

7 pasos para asegurar su servidor Linux

Este manual básico le presentará la seguridad básica del servidor Linux. Si bien se enfoca en Debian/Ubuntu, puede aplicar todo lo presentado aquí a otras distribuciones de Linux. También lo animo a que investigue este material y lo amplíe cuando corresponda.

1. Actualiza tu servidor

Lo primero que debe hacer para proteger su servidor es actualizar los repositorios locales y actualizar el sistema operativo y las aplicaciones instaladas aplicando los últimos parches.

En Ubuntu y Debian:

$ sudo apt update && sudo apt upgrade -y

En Fedora, CentOS o RHEL:

$ sudo dnf upgrade

2. Crear una nueva cuenta de usuario privilegiado

A continuación, cree una nueva cuenta de usuario. Nunca debe iniciar sesión en su servidor como root . En su lugar, cree su propia cuenta (" "), dale sudo derechos, y úselo para iniciar sesión en su servidor.

Comience creando un nuevo usuario:

$ adduser <username>

Dale a tu nueva cuenta de usuario sudo derechos agregando (-a ) el sudo grupo (-G ) a la pertenencia al grupo del usuario:

$ usermod -a -G sudo <username>

3. Sube tu clave SSH

Querrá usar una clave SSH para iniciar sesión en su nuevo servidor. Puede cargar su clave SSH pregenerada a su nuevo servidor usando el ssh-copy-id comando:

$ ssh-copy-id <username>@ip_address

Ahora puede iniciar sesión en su nuevo servidor sin tener que escribir una contraseña.

4. SSH seguro

A continuación, realice estos tres cambios:

  • Deshabilitar la autenticación de contraseña SSH
  • Restringir raíz de iniciar sesión de forma remota
  • Restringir el acceso a IPv4 o IPv6

Abra /etc/ssh/sshd_config utilizando el editor de texto de su elección y asegúrese de estas líneas:

PasswordAuthentication yes
PermitRootLogin yes

luce así:

PasswordAuthentication no
PermitRootLogin no

A continuación, restrinja el servicio SSH a IPv4 o IPv6 modificando la AddressFamily opción. Para cambiarlo para usar solo IPv4 (que debería estar bien para la mayoría de las personas), haga este cambio:

AddressFamily inet

Reinicie el servicio SSH para habilitar sus cambios. Tenga en cuenta que es una buena idea tener dos conexiones activas a su servidor antes de reiniciar el servidor SSH. Tener esa conexión extra te permite arreglar cualquier cosa en caso de que el reinicio salga mal.

En Ubuntu:

$ sudo service sshd restart

En Fedora o CentOS o cualquier cosa usando Systemd:

$ sudo systemctl restart sshd

5. Habilitar un cortafuegos

Ahora necesita instalar un firewall, habilitarlo y configurarlo solo para permitir el tráfico de red que usted designe. Uncomplicated Firewall (UFW) es una interfaz fácil de usar para iptables eso simplifica enormemente el proceso de configuración de un cortafuegos.

Puede instalar UFW con:

$ sudo apt install ufw

De forma predeterminada, UFW niega todas las conexiones entrantes y permite todas las conexiones salientes. Esto significa que cualquier aplicación en su servidor puede acceder a Internet, pero cualquier cosa que intente llegar a su servidor no puede conectarse.

Primero, asegúrese de que puede iniciar sesión habilitando el acceso a SSH, HTTP y HTTPS:

$ sudo ufw allow ssh
$ sudo ufw allow http
$ sudo ufw allow https

Luego habilite UFW:

$ sudo ufw enable

Puede ver qué servicios están permitidos y denegados con:

$ sudo ufw status

Si alguna vez desea deshabilitar UFW, puede hacerlo escribiendo:

$ sudo ufw disable

También puede usar firewall-cmd, que ya está instalado e integrado en algunas distribuciones.

6. Instalar Fail2ban

Fail2ban es una aplicación que examina los registros del servidor en busca de ataques repetidos o automatizados. Si se encuentra alguna, alterará el cortafuegos para bloquear la dirección IP del atacante de forma permanente o durante un período de tiempo específico.

Puede instalar Fail2ban escribiendo:

$ sudo apt install fail2ban -y

Luego copie el archivo de configuración incluido:

$ sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local

Y reinicie Fail2ban:

$ sudo service fail2ban restart

Eso es todo al respecto. El software examinará continuamente los archivos de registro en busca de ataques. Después de un tiempo, la aplicación creará una lista bastante grande de direcciones IP prohibidas. Puede ver esta lista solicitando el estado actual del servicio SSH con:

$ sudo fail2ban-client status ssh

7. Eliminar los servicios de red no utilizados

Casi todos los sistemas operativos de servidor Linux vienen con algunos servicios de red habilitados. Querrás quedarte con la mayoría de ellos. Sin embargo, hay algunos que es posible que desee eliminar. Puede ver todos los servicios de red en ejecución utilizando el ss comando:

$ sudo ss -atpu

La salida de ss diferirá dependiendo de su sistema operativo. Este es un ejemplo de lo que podrías ver. Muestra que los servicios SSH (sshd) y Ngnix (nginx) están escuchando y listos para la conexión:

tcp LISTEN 0 128 *:http *:* users:(("nginx",pid=22563,fd=7))
tcp LISTEN 0 128 *:ssh *:* users:(("sshd",pid=685,fd=3))

Cómo elimina un servicio no utilizado (" ") diferirá según su sistema operativo y el administrador de paquetes que utilice.

Para eliminar un servicio no utilizado en Debian/Ubuntu:

$ sudo apt purge <service_name>

Para eliminar un servicio no utilizado en Red Hat/CentOS:

$ sudo yum remove <service_name>

Más recursos de Linux

  • Hoja de trucos de los comandos de Linux
  • Hoja de trucos de comandos avanzados de Linux
  • Curso en línea gratuito:Descripción general técnica de RHEL
  • Hoja de trucos de red de Linux
  • Hoja de trucos de SELinux
  • Hoja de trucos de los comandos comunes de Linux
  • ¿Qué son los contenedores de Linux?
  • Nuestros últimos artículos sobre Linux

Ejecute ss -atup nuevamente para verificar que los servicios no utilizados ya no estén instalados y en ejecución.

Pensamientos finales

Este tutorial presenta lo mínimo necesario para fortalecer un servidor Linux. Se pueden y se deben habilitar capas de seguridad adicionales dependiendo de cómo se use un servidor. Estas capas pueden incluir cosas como configuraciones de aplicaciones individuales, software de detección de intrusos y controles de acceso habilitados, por ejemplo, autenticación de dos factores.


Linux
  1. Configura tu servidor OpenVPN en Linux

  2. Instale OpenVPN en su PC con Linux

  3. 9 cosas que hacer en los primeros 10 minutos en un servidor Linux

  4. Cómo instalar el servidor web Nginx en Linux

  5. Mejores prácticas de seguridad del servidor Linux

Cómo verificar la carga de su servidor en Linux

Cómo verificar la carga de su servidor en el sistema Linux

Guía para configurar el servidor SFTP en Linux

Cómo verificar el tiempo de actividad de su servidor Linux

Cómo configurar un demonio Rsync en su servidor Linux

Cómo configurar un cortafuegos en su servidor Linux