La seguridad en sistemas Linux es un aspecto crucial para proteger datos sensibles y mantener la integridad del sistema. En este tema, exploraremos diversas técnicas y herramientas para asegurar un sistema Linux. Abordaremos desde configuraciones básicas hasta prácticas avanzadas de seguridad.

Conceptos Clave

  1. Principio de Mínimo Privilegio: Otorgar solo los permisos necesarios a usuarios y procesos.
  2. Actualizaciones y Parches: Mantener el sistema y las aplicaciones actualizadas.
  3. Configuración de Firewall: Controlar el tráfico de red entrante y saliente.
  4. Autenticación y Autorización: Implementar métodos robustos de autenticación y control de acceso.
  5. Monitoreo y Auditoría: Registrar y revisar actividades del sistema para detectar comportamientos sospechosos.

  1. Principio de Mínimo Privilegio

Usuarios y Grupos

Asegúrate de que cada usuario tenga solo los permisos necesarios para realizar su trabajo.

# Crear un nuevo usuario
sudo adduser nuevo_usuario

# Crear un nuevo grupo
sudo groupadd nuevo_grupo

# Añadir un usuario a un grupo
sudo usermod -aG nuevo_grupo nuevo_usuario

Permisos de Archivos

Configura los permisos de archivos y directorios adecuadamente.

# Cambiar el propietario de un archivo
sudo chown usuario:grupo archivo

# Cambiar los permisos de un archivo
sudo chmod 750 archivo

  1. Actualizaciones y Parches

Mantener el sistema actualizado es fundamental para protegerlo contra vulnerabilidades conocidas.

# Actualizar la lista de paquetes
sudo apt update

# Actualizar todos los paquetes instalados
sudo apt upgrade

  1. Configuración de Firewall

UFW (Uncomplicated Firewall)

UFW es una herramienta sencilla para gestionar el firewall en sistemas Linux.

# Habilitar UFW
sudo ufw enable

# Permitir tráfico SSH
sudo ufw allow ssh

# Permitir tráfico HTTP y HTTPS
sudo ufw allow http
sudo ufw allow https

# Ver el estado de UFW
sudo ufw status

  1. Autenticación y Autorización

SSH

Configura SSH para mejorar la seguridad.

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

# Deshabilitar el acceso root
PermitRootLogin no

# Cambiar el puerto por defecto
Port 2222

# Reiniciar el servicio SSH
sudo systemctl restart ssh

Autenticación de Dos Factores (2FA)

Implementa 2FA para añadir una capa extra de seguridad.

# Instalar Google Authenticator
sudo apt install libpam-google-authenticator

# Configurar Google Authenticator para un usuario
google-authenticator

# Editar el archivo de configuración de PAM
sudo nano /etc/pam.d/sshd

# Añadir la siguiente línea
auth required pam_google_authenticator.so

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

# Añadir la siguiente línea
ChallengeResponseAuthentication yes

# Reiniciar el servicio SSH
sudo systemctl restart ssh

  1. Monitoreo y Auditoría

Logwatch

Logwatch es una herramienta que analiza y resume los logs del sistema.

# Instalar Logwatch
sudo apt install logwatch

# Ejecutar Logwatch
sudo logwatch --detail High --mailto [email protected] --service All --range today

Auditd

Auditd es un demonio de auditoría que registra eventos del sistema.

# Instalar Auditd
sudo apt install auditd

# Iniciar y habilitar Auditd
sudo systemctl start auditd
sudo systemctl enable auditd

# Ver los logs de Auditd
sudo ausearch -m avc

Ejercicio Práctico

Ejercicio 1: Configuración Básica de Seguridad

  1. Crear un nuevo usuario y grupo:

    • Usuario: seguridad_usuario
    • Grupo: seguridad_grupo
  2. Configurar permisos para un archivo:

    • Archivo: /home/seguridad_usuario/seguridad_archivo
    • Permisos: Solo el propietario puede leer y escribir, el grupo puede leer, otros no tienen acceso.
  3. Configurar UFW para permitir solo tráfico SSH y HTTP.

  4. Configurar SSH para deshabilitar el acceso root y cambiar el puerto a 2222.

Solución

# Crear un nuevo usuario y grupo
sudo adduser seguridad_usuario
sudo groupadd seguridad_grupo
sudo usermod -aG seguridad_grupo seguridad_usuario

# Crear un archivo y configurar permisos
sudo touch /home/seguridad_usuario/seguridad_archivo
sudo chown seguridad_usuario:seguridad_grupo /home/seguridad_usuario/seguridad_archivo
sudo chmod 640 /home/seguridad_usuario/seguridad_archivo

# Configurar UFW
sudo ufw enable
sudo ufw allow ssh
sudo ufw allow http
sudo ufw status

# Configurar SSH
sudo nano /etc/ssh/sshd_config
# Cambiar las siguientes líneas:
# PermitRootLogin no
# Port 2222
sudo systemctl restart ssh

Conclusión

En esta sección, hemos cubierto diversas técnicas y herramientas para asegurar un sistema Linux. Desde la implementación del principio de mínimo privilegio hasta la configuración de firewalls y la auditoría del sistema, estas prácticas son esenciales para mantener un entorno seguro. En el siguiente módulo, exploraremos temas avanzados de redes y seguridad, incluyendo la configuración de firewalls y sistemas de detección de intrusos.

Maestría en Linux: De Principiante a Avanzado

Módulo 1: Introducción a Linux

Módulo 2: Comandos Básicos de Linux

Módulo 3: Habilidades Avanzadas en la Línea de Comandos

Módulo 4: Scripting en Shell

Módulo 5: Administración del Sistema

Módulo 6: Redes y Seguridad

Módulo 7: Temas Avanzados

Módulo 8: Proyectos Prácticos

© Copyright 2024. Todos los derechos reservados