Paper/es

From Linux-VServer

Jump to: navigation, search


Contents

Infraestructura Existente

Los recientes núcleos de Linux ya proveen muchas prestaciones de seguridad que son utilizadas por Linux-Vserver para hacer su trabajo. Especialmente características tales como el Sistema de Capacidades de Linux, Límite de Recursos, Atributos de archivos y el Cambio del Entorno Raíz. Las siguientes secciones darán una breve reseña acerca de cada una de estas.

Sistema de Capacidades de Linux

En ciencias de la computación, una capacidad es un signo usado por un proceso para probar que tiene permitido realizar una operación sobre un objeto. El Sistema de Capacidades de Linux se basa en las "Capacidades Posix", un concepto ligeramente, diseñado para fraccionar el privilegio todo poderoso de root en un conjunto de de distintos privilegios.

Capacidades de Linux

Un proceso tiene tres conjuntos de mapas de bits llamadas capacidades hereditarios(I), permitidos(P), y efectivos(E). Cada capacidad se implementa como un bit de estos mapas de bits que están activado o desactivados.

Cuando un proceso intenta hacer una operación privilegiada, el sistema operativo comprobará el bit apropiado en el conjunto efectivo de los procesos (en lugar de comprobar si el uid efectivo del proceso es 0 como se hace normalmente).

Por ejemplo, cuando un proceso intenta configurar el reloj, el núcleo Linux comprobará que el proceso tiene el bit CAP_SYS_TIME (que es actualmente el bit 25) habilitado en su conjunto efectivo.

El conjunto pemitido de los procesos indica las capacidades que el proceso puede usar. El proceso puede tener capacidades habilitadas en el conjunto permitido que no están en el conjunto efectivo.

Esto indica que el proceso tiene temporalmente deshabilitado esta capacidad. Un proceso tiene permitido habilitar un bit en su conjunto permitido solamente si está disponible en el conjunto permitido. La distinción entre efectivo y permitido existe de manera que el proceso puede agrupar operaciones que necesitan privilegios.

La implementación de en Linux detenida a este punto, mientras que las Capacidades de POSIX requier la adición de conjuntos de capacidades para archivos también para reemplazar la marca SUID (al menos para ejecutables)

Capability Overview

Las lista de Capacidades de POSIX que se usan es larga, y se usan casi todos de los 32 bits disponibles. Si bien la lista detalla da de todas las capacidades se puede encontrar en /usr/include/linux/capability.h en la matoría de los sistemas Linux, se da aquí un resumen general de las capacidades importantes que se pueden encontrar.

0 CAP_CHOWN cambia el dueño y grupo del archivo.
5 CAP_KILL envía una señal a un proceso con un identificador de usuario diferente existente o efectivo
6 CAP_SETGID permite setgid(2), setgroups(2), y falsos gids en pase de credenciales de socket
7 CAP_SETUID permite set*uid(2), y falsos uids en pase de credenciales
8 CAP_SETPCAP transfiere/elimina cualquier capacidad en el conjunto permitido hacia/desde cualquier pid
9 CAP_LINUX_IMMUTABLE permite la modificación de los atributos de archivo S_IMMUTABLE y S_APPEND
11 CAP_NET_BROADCAST permite hacer broadcast y escuchar a múltiples direcciones
12 CAP_NET_ADMIN permite la configuración de una interfaz, firewall de IP, enmascaramiento, cuantificación, depuración de socket, tablas de ruteo, conexión a cualquier dirección, entrar en modo promiscuo, multicasting,...
13 CAP_NET_RAW permite el uso de sockets crudos y de paquetes
16 CAP_SYS_MODULE inserta y saca módulos del kernel
18 CAP_SYS_CHROOT permite chroot(2)
19 CAP_SYS_PTRACE permite ptrace() de cualquier proceso
21 CAP_SYS_ADMIN esta lista sería demasiado larga, basicamente permite hacer cualquier otra cosa, no mencionada en otra capacidad.
22 CAP_SYS_BOOT permite reboot(2)
23 CAP_SYS_NICE permite aumentar la prioridad
Personal tools