Seguridad en Sistemas Unix/Linux

Clasificado en Informática

Escrito el en español con un tamaño de 5,2 KB

Control de Acceso al Sistema de Ficheros

Control de Accesos Filesystem: El sistema de ficheros (FS) implementa su propio control de acceso. Los ficheros tienen asignado un propietario y un grupo. Los grupos se encuentran definidos en /etc/group o bien en NIS o LDAP. El acceso al sistema de ficheros (UID, GID) es mapeado en /etc/passwd y /etc/group.

Procesos y Propietarios

Procesos Propietarios: El propietario de un proceso puede realizar las siguientes acciones:

  • Modificar permisos
  • Enviar señales
  • Reducción de prioridad

Los procesos tienen dos identidades: real y efectiva (UID/GID).

Usuario Root

Usuario Root: Es el usuario encargado de realizar tareas administrativas. Su UID es 0. Tiene las siguientes características:

  • Operaciones permitidas: Cualquier operación en cualquier fichero o proceso.
  • Operaciones restringidas:
    • Uso de chroot
    • Creación de sistemas de ficheros
    • Configuración de la hora del sistema
    • Asignación de prioridades absolutas a los procesos
    • Configuración de interfaces de red

Las operaciones restringidas a root deben ser realizadas por los operadores del sistema.

Ejecución SETUID/SETGID

  1. Se aplica a ficheros ejecutables.
  2. Al ejecutar ls -l, se muestra una s en lugar de una x en los permisos:
    • Si la s está en los permisos del propietario, indica setuid.
    • Si la s está en los permisos del grupo propietario, indica setgid.
  3. Permiten que ciertos usuarios alcancen un mayor grado de permisos.
  4. Si un usuario ejecuta un fichero con el bit setuid/setgid activo, se produce una "suplantación" del UID/GID del fichero que contiene la imagen del programa. Ejemplo: passwd tiene el bit setuid porque un usuario normal puede cambiar su contraseña.
  5. SETUID (set user ID): Permite al usuario que ejecuta el fichero tener los mismos permisos que el usuario propietario durante la ejecución. Ejemplo en shell: chmod u+s /usr/local/bin/mi_programa
  6. SETGID (set group ID): Es similar a setuid, pero se aplica a los grupos. Ejemplo en shell: chmod 2750 /usr/local/sbin/mi_programa

SELinux (Security Enhanced Linux)

  1. Es complejo de administrar.
  2. Su implantación es común en administraciones públicas.
  3. Tiene una fácil instalación.
  4. Modos de SELinux:
    • enforcing: Prohíbe violaciones de seguridad.
    • permissive: Permite violaciones de seguridad, pero envía un registro a syslog.
    • disabled: Desactiva SELinux.
  5. Tipos de SELinux:
    • targeted: Proporciona seguridad adicional en demonios como httpd, mailman, portmap.
    • strict: Implementa una seguridad total.
  6. Los eventos en Unix se capturan en ficheros de texto en /var/log/syslog (o similar, dependiendo de la distribución).

PAM (Pluggable Authentication Modules)

PAM (Pluggable Authentication Modules) es un conjunto de librerías (escritas en lenguajes como Python o C) que sirven para:

  1. Facilitar la administración de la seguridad en sistemas Unix.
  2. Permitir nuevos avances de autenticación, como la autenticación de doble factor y el cifrado.
  3. Los programas que desean autenticarse realizan una llamada a PAM, que a su vez llama a la librería específica de autenticación.
  4. La configuración se basa en el fichero /etc/pam.conf y los directorios en /etc/pam.d.
  5. Permite la autenticación de diversas actividades, como el inicio de sesión de usuario, el acceso a sitios web protegidos y otras formas de acceso.
  6. Los módulos de PAM se encuentran en /lib/security (o similar, dependiendo de la distribución).
  7. El campo GECOS en /etc/passwd permite añadir información complementaria de cada usuario.

LDAP (Lightweight Directory Access Protocol)

  1. Es un servicio de directorio para el almacenamiento de información de forma jerárquica.
  2. Actúa como un repositorio central de información.
  3. Ofrece compatibilidad entre sistemas.
  4. Permite un mayor control de permisos.
  5. Tiene una estructura similar a una base de datos.
  6. Permite la autenticación centralizada, sustituyendo consultas a la base de datos local por consultas al servidor LDAP.
  7. Tiene soporte para lenguajes como Perl y Python.
  8. La modificación de las políticas LDAP es inmediata.

Entradas relacionadas: