Gentoo Logo

Control de Acceso Basado en Conjuntos de Reglas (RSBAC) para Linux - Guía de Inicio Rápido

Contenido:

1.  Introducción

Esta guía le ayudará a instalar RSBAC en Gentoo Linux. Se asume que los lectores ya han leído la Introducción y la Vista general, así que ya conocen RSBAC y sus conceptos principales.

2.  Instalación de un núcleo con soporte RSBAC

Instalación de un núcleo RSBAC

Este paso es bastante simple gracias al sistema de instalación de núcleos de Gentoo. Empiece por hacer un emerge del núcleo rsbac-sources.

Nota: Hay dos núcleos rsbac-sources disponibles: uno pertenece a la rama del núcleo 2.4 y el otro a la nueva rama 2.6.

Listado de Código 2.1: Instalación del nucleo RSBAC (usando el perfil 'default' y un núcleo 2.6)

# emerge rsbac-sources

Listado de Código 2.2: Instalación del nucleo RSBAC (usando un núcleo 2.4, en el perfil Gentoo 2005.0)

# rm /etc/make.profile
# ln -s /usr/portage/profiles/default-linux/x86/2005.0/2.4/ /etc/make.profile
#  echo "sys-kernel/hardened-sources rsbac" >> /etc/portage/package.use
# emerge hardened-sources

Importante: Se aconseja habilitar el modo softmode en el primer núcleo RSBAC que compile. Esto le permitirá deshabilitar la aplicación de RSBAC reiniciando la máquina, por si quiere probarlo o en caso de que algo haya ido mal. Desactive este modo sólo cuando esté seguro de lo que está haciendo o, por supuesto, en un núcleo en producción.

Configuración del núcleo RSBAC

Ahora vamos a configurar el núcleo. Se recomienda que habilite la siguientes opciones en la categoría "Rule Set Based Access Control (RSBAC)":

Listado de Código 2.3: Configurar y compilar el núcleo RSBAC

En "General RSBAC options"
[*] RSBAC proc support
[*] Check on init
[*] Support transactions
[*]   Randomize transaction numbers
[*] RSBAC debugging support
(400) RSBAC default security officer user ID

En "User management"
[*] User management
Asegúrese de habilitar SHA1 bajo Crypto API en "Cryptographic options"
de la sección general de configuración del núcleo, marque:
[*]   SHA1 digest algorithm

[*]     Use Crypto API Digest SHA1 (NEW)

En "RSBAC networking options"
[*] RSBAC network support
[*]     Net device control
[ ]         Treat virtual devices as individuals
[*]         Individual network device logging
[*]     Net object control (sockets)
[*]         Control UNIX address family
[*] Also intercept network object read and write
[*]         Individual network object logging

(No habilite "RSBAC Maintenance Kernel", use softmode en su lugar)

En "Decision module (policy) options"
[*] Support for Registration of decision modules (REG)
[*]     Build REG sample modules
----------------------------
[*] RSBAC support for DAZuko policy (Para escaneo de malware y
virus)
DAZ Policy Options  --->
     (604800)     Scanning result lifetime in seconds

Por cada política/módulo que vaya a usar debe comprobar su protección para el módulo AUTH y el módulo de administración de usuarios (User Management).
[*] RSBAC support for FF policy
[*] RSBAC support for RC policy
[*] RSBAC support for AUTH policy
Por favor, deshabilite la opción de autoaprendizaje en sus núcleos en producción. Solo se usa cuando se prepara el sistema RSBAC.
AUTH Policy Options  --->
    [*]   AUTH learning mode support
[*] RSBAC support for ACL policy
[*] RSBAC support for Linux Caps (CAP) policy
[*] RSBAC support for JAIL policy
[*] RSBAC support for PAX policy
[*] RSBAC support for System Resources (RES) policy

En "Softmode and switching"
[ ] RSBAC policies switchable
[*] RSBAC soft mode (No marque esta opción en sus kernel en producción)
[*]     Individual module softmode support

En "Logging": todo excepto "Log to remote UDP network socket" a no ser que quiera enviar los archivos de log a otra máquina

En "RSBAC symlink redirection"
[*]   RSBAC symlink redirection
[*]     Add remote IP address
[*]       Add user ID number
[*]       Add RC role number

En "Other RSBAC options"
[*] Intercept sys_read and sys_write
[*] Intercept Semaphore IPC operations
[*] Control DAC process owner (seteuid, setfsuid)
[*] Hide processes in /proc
[*] Support freezing of RSBAC configuration
[*] RSBAC check sys_syslog

Nota: Si tiene pensado ejecutar un servidor gráfico (p.e. X.org o XFree86), habilite también, "[*] X support (normal user MODIFY_PERM access to ST_ioports)". Por favor, lea también Usando Xorg en Gentoo Hardened.

Ahora configuraremos PaX que es un complemento del núcleo RSBAC. Se recomienda que habilite las siguientes opciones en la sección "Security options ---> PaX":

Listado de Código 2.4: Configurar las opciones PaX del núcleo

[*] Enable various PaX features
PaX Control  --->
    [*] Support soft mode (Deshabilite esta opción en un
núcleo en producción)
    [ ] Use legacy ELF header marking
    [ ] Use ELF program header marking
        Use ELF program header marking MAC system integration (direct)  --->
        (X) hook

Non-executable pages  --->
    [*] Enforce non-executable pages (NEW)
    [*]   Paging based non-executable pages
(Normalmente querrá el método PAGEEXEC en x86 en versiones recientes de
PaX, vuelva a SEGMEXEC si tiene problemas)
    [*]   Segmentation based non-executable pages (NEW)
    [*] Restrict mprotect()
    [ ]   Disallow ELF text relocations (Por ahora, esta opción da
problemas con muchas aplicaciones)

Address Space Layout Randomization  --->
    [*] Address Space Layout Randomization
    [*]   Randomize user stack base
    [*]   Randomize mmap() base

Nota: Visite el sitio de PaX para más información.

Nota: Debe usar las herramientas de administración de RSBAC para manejar PaX en lugar de chpax o paxctl en su núcleo RSBAC. Con estas herramientas podrá cambiar los objetos PaX y configurar las banderas PaX.

Listado de Código 2.5: Manejar las banderas PaX

# rsbac_fd_menu /ruta/al/objeto
o
# attr_set_file_dir FILE /ruta/al/objeto pax_flags [pmerxs]

Ahora puede compilar e instalar el núcleo cómo lo haría con uno normal tras configurar el resto de opciones.

Importante: Se aconseja encarecidamente compilar un segundo kernel sin las opciones softmode y AUTH para usarlo en un ambiente en producción. Sólo haga esto cuando haya terminado de probar y configurar las políticas, ya que elimina la posibilidad de desactivar el sistema de control de acceso.

3.  Instalación de las utilidades de administración de RSBAC

Se necesitan algunas utilidades de espacio de usuario para administrar su Gentoo RSBAC. Éstas se incluyen en el paquete rsbac-admin y es necesario instalarlas.

Listado de Código 3.1: Insatalar las utilidades de administración de RSBAC

# emerge rsbac-admin

Una vez instaladas, el paquete habrá creado una nueva cuenta de usuario en su sistema (secoff, con uid 400). Él será el administrador de seguridad durante el primer arranque. Éste es el único usuario que puede cambiar la configuración de RSBAC. Normalmente se le llama Oficial de Seguridad.

Importante: Por favor, cree una contraseña segura para el usuario secoff.

Listado de Código 3.2: Crear contraseña para el Oficial de Seguridad

# passwd secoff

4.  Primer arranque

Durante el primer arranque no se puede entrar en el sistema ya que el módulo AUTH restringe los privilegios de los programas. Para solventar este problema arranque, por favor, en softmode usando el siguiente parámetro del núcleo (en su configuración de lilo o grub):

Listado de Código 4.1: Softmode kernel parameter

rsbac_softmode

La aplicación login controla la entrada de usuarios al sistema. Necesita derechos para usar setuid, y ahora se los daremos:

Entre como Oficial de Seguridad (secoff) y permita las entradas al sistema usando la siguiente orden:

Listado de Código 4.2: Permitir la entrada a los usuarios

# rsbac_fd_menu /bin/login
o
# attr_set_fd AUTH FILE auth_may_setuid 1 /bin/login

Como alternativa, si no está habilitado softmode, puede usar el siguiente parámetro del kernel para permitir la entrada al sistema durante el arranque:

Listado de Código 4.3: Permitir la entrada de usuarios con un parámetro del kernel

rsbac_auth_enable_login

5.  El módulo AUTH y su modo de aprendizaje

Crear una política para OpenSSH

Como no hay ninguna política configurada todavía (excepto las generadas durante el primer arranque), el módulo AUTH no permite los cambios de uid.

Gracias al inteligente modo de aprendizaje hay una manera sencilla de paliar este nuevo problema: el módulo AUTH puede generar mágicamente y de forma automática la política necesaria vigilando los servicios durante el arranque y anotando los uids a los que intentan cambiar. Por ejemplo, para enseñar al módulo AUTH sobre los uids que necesita sshd (el demonio OpenSSH), haga lo siguiente:

Importante: Asegúrese de que el demonio sshd o el que quiera que use el modo de aprendizaje no se está ejecutando antes de habilitar el modo de aprendizaje.

Listado de Código 5.1: Crear una política para sshd usando el modo de aprendizaje

Habilite el modo de aprendizaje para sshd
# attr_set_file_dir AUTH FILE `which sshd` auth_learn 1

Arranque el servicio
# /etc/init.d/sshd start

Deshabilite el modo de aprendizaje
# attr_set_file_dir AUTH FILE `which sshd` auth_learn 0

Nota: Debe entrar en el sistema antes de deshabilitar el modo de aprendizaje ya que sshd intentará cambiar su uid cuando entre el usuario.

Ahora sshd ya funciona otra vez como se esperaba, felicidades, acaba de crear su primera política :) Se puede usar el mismo procedimiento con los demás demonios que necesite.

Nota: Como alternativa a habilitar el modo de aprendizaje para cada demonio o aplicación que vaya a necesitar, también puede habilitar el modo de aprendizaje global (que aprende de cualquier cosa que se ejecute globalmente, como su nombre indica).

Puede habilitar el modo de aprendizaje global mediante este parámetro del kernel durante el arranque:

Listado de Código 5.2: Habilitar el modo de aprendizaje global

rsbac_auth_learn

6.  Información adicional

También se recomienda encarecidamente que se suscriba a la lista de correo de gentoo-hardened. Es una lista con poco tráfico y los anuncios RSBAC para Gentoo se hacen aquí. También le recomendamos suscribirse a la lista de correo de RSBAC. Por favor, consulte también la FAQ de hardened ya que sus preguntas pueden haber sido resueltas en este documento.

Enlaces: Sitio oficial de RSBAC
Canales de IRC: #gentoo-hardened #rsbac


Imprimir

Página actualizada 27 de noviembre, 2010

Sumario: Este documento le guiará a través de la instalación de RSBAC en Gentoo Linux.

Michal Purzynski
Autor

Guillaume Destuynder
Editor

Jaime Gascón Romero
Traductor

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.