0%
Seguridad y configuración de sistemas Linux

Seguridad y configuración de sistemas Linux

Guía completa para configurar y proteger eficazmente sus sistemas Linux

I

InSkillCoach

· min

Seguridad y configuración de sistemas Linux

La seguridad y la configuración adecuada de un sistema Linux son esenciales para garantizar su estabilidad, su rendimiento y su resistencia frente a las amenazas. Esta guía presenta las mejores prácticas para configurar y proteger eficazmente sus sistemas Linux.

Configuración del sistema

Gestión de usuarios y grupos

La gestión de usuarios es fundamental para la seguridad y la organización de un sistema Linux.

Creación y gestión de usuarios

# Crear un nuevo usuario
sudo useradd -m username

# Definir una contraseña
sudo passwd username

# Añadir un usuario a un grupo (p. ej.: sudo)
sudo usermod -aG sudo username

# Eliminar un usuario
sudo userdel -r username

Gestión de grupos

# Crear un nuevo grupo
sudo groupadd groupname

# Añadir un usuario a un grupo
sudo usermod -aG groupname username

# Eliminar un grupo
sudo groupdel groupname

Configuración de red

Una configuración de red adecuada es esencial para la conectividad y la seguridad.

Configuración de IP estática (Ubuntu/Debian con Netplan)

# Editar el archivo de configuración
sudo nano /etc/netplan/01-netcfg.yaml

Ejemplo de configuración:

network:
  version: 2
  renderer: networkd
  ethernets:
    enp0s3:
      addresses:
        - 192.168.1.100/24
      gateway4: 192.168.1.1
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]

Aplicar los cambios:

sudo netplan apply

Configuración de DNS

# Editar el archivo resolv.conf
sudo nano /etc/resolv.conf

Ejemplo de configuración:

nameserver 8.8.8.8
nameserver 8.8.4.4

Servicios del sistema

La gestión de servicios es crucial para controlar lo que se ejecuta en su sistema.

Gestión con systemd

# Comprobar el estado de un servicio
sudo systemctl status service-name

# Iniciar un servicio
sudo systemctl start service-name

# Detener un servicio
sudo systemctl stop service-name

# Activar un servicio en el arranque
sudo systemctl enable service-name

# Desactivar un servicio en el arranque
sudo systemctl disable service-name

# Reiniciar un servicio
sudo systemctl restart service-name

Comprobar los servicios activos

# Listar todos los servicios activos
systemctl list-units --type=service --state=active

Seguridad en Linux

Cortafuegos con UFW (Uncomplicated Firewall)

UFW es una interfaz simplificada para iptables que facilita la configuración del cortafuegos.

# Instalar UFW
sudo apt install ufw

# Comprobar el estado
sudo ufw status

# Activar UFW
sudo ufw enable

# Permitir SSH (puerto 22)
sudo ufw allow 22/tcp

# Permitir HTTP y HTTPS
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

# Bloquear un puerto específico
sudo ufw deny 3306

# Bloquear una dirección IP
sudo ufw deny from 192.168.1.10

# Eliminar una regla
sudo ufw delete deny 3306

Protección de SSH

SSH suele ser la principal puerta de entrada a su servidor, por lo que es crucial protegerlo.

# Editar la configuración de SSH
sudo nano /etc/ssh/sshd_config

Modificaciones recomendadas:

# Desactivar el acceso de root
PermitRootLogin no

# Desactivar la autenticación por contraseña
PasswordAuthentication no

# Limitar los usuarios autorizados
AllowUsers user1 user2

# Cambiar el puerto predeterminado (opcional)
Port 2222

# Limitar los intentos de autenticación
MaxAuthTries 3

Reiniciar SSH para aplicar los cambios:

sudo systemctl restart sshd

Autenticación por clave SSH

La autenticación por clave es más segura que las contraseñas.

# En su máquina local, generar un par de claves
ssh-keygen -t ed25519 -C "votre_email@exemple.com"

# Copiar la clave pública en el servidor
ssh-copy-id -i ~/.ssh/id_ed25519.pub user@server

Actualizaciones de seguridad

Mantener el sistema actualizado es una de las medidas de seguridad más importantes.

# Actualizar la lista de paquetes
sudo apt update

# Instalar las actualizaciones
sudo apt upgrade

# Actualizar el sistema completo
sudo apt dist-upgrade

# Eliminar los paquetes obsoletos
sudo apt autoremove

Para las actualizaciones automáticas (Ubuntu/Debian):

# Instalar unattended-upgrades
sudo apt install unattended-upgrades

# Configurar las actualizaciones automáticas
sudo dpkg-reconfigure unattended-upgrades

Fail2ban: protección contra ataques de fuerza bruta

Fail2ban supervisa los registros y bloquea temporalmente las direcciones IP que muestran signos de ataque.

# Instalar Fail2ban
sudo apt install fail2ban

# Crear un archivo de configuración local
sudo cp /etc/fail2ban/jail.conf /etc/fail2ban/jail.local
sudo nano /etc/fail2ban/jail.local

Configuración recomendada para SSH:

[sshd]
enabled = true
port = ssh
filter = sshd
logpath = /var/log/auth.log
maxretry = 3
bantime = 3600

Reiniciar Fail2ban:

sudo systemctl restart fail2ban

Comprobar el estado:

sudo fail2ban-client status sshd

Supervisión y registro

Registros del sistema

Los registros son esenciales para diagnosticar problemas y supervisar la seguridad.

# Mostrar los registros recientes del sistema
journalctl -xe

# Seguir los registros en tiempo real
tail -f /var/log/syslog

# Buscar intentos de conexión fallidos
grep "Failed password" /var/log/auth.log

# Rotación de registros
sudo logrotate -f /etc/logrotate.conf

Herramientas de supervisión

# Supervisión de procesos y recursos
htop

# Supervisión de la E/S de disco
iotop

# Supervisión de la red
nethogs

# Supervisión completa del sistema
glances

Auditorías de seguridad con Lynis

Lynis es una herramienta de auditoría de seguridad para sistemas Unix/Linux.

# Instalar Lynis
sudo apt install lynis

# Ejecutar una auditoría completa
sudo lynis audit system

Copias de seguridad y recuperación

Copia de seguridad con rsync

# Hacer una copia de seguridad de un directorio localmente
rsync -av --delete /source/directory/ /destination/directory/

# Hacer una copia de seguridad en un servidor remoto
rsync -avz -e ssh /source/directory/ user@remote:/destination/directory/

Copia de seguridad con Duplicity

# Instalar Duplicity
sudo apt install duplicity

# Hacer una copia de seguridad en un servidor FTP
duplicity /home/user ftp://user:password@ftp.example.com/backup

Conclusión

La protección y la configuración adecuada de un sistema Linux son procesos continuos que exigen una vigilancia constante. Siguiendo las mejores prácticas descritas en esta guía, podrá mejorar considerablemente la seguridad y el rendimiento de sus sistemas Linux.

No olvide que la seguridad es un equilibrio entre funcionalidad y protección. Adapte siempre estas recomendaciones a sus necesidades específicas y a su entorno.

Manténgase informado sobre las últimas vulnerabilidades y actualizaciones de seguridad para mantener su sistema protegido frente a las nuevas amenazas.

InSkillCoach

Acerca de InSkillCoach

Experto en formación y tecnologías

Coach especializado en tecnologías avanzadas e IA, impulsado por GNeurone Inc.

Certificaciones:

  • AWS Certified Solutions Architect – Professional
  • Certificaciones de Google Cloud
  • Microsoft Certified: DevOps Engineer Expert
  • Certified Kubernetes Administrator (CKA)
  • CompTIA Security+
1.7k
294

Comentarios

Los comentarios funcionan con GitHub Discussions

Inicia sesión con GitHub para participar en la discusión

¡Enlace copiado!