We currently migrate to MediaWiki from our old installation, but not all content has been migrated yet. Take a look at the Wiki Team page for instructions how to help or browse through our new wiki at wiki.linux-vserver.org to find the information already migrated.
03. Existing Infrastructure 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.
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 objeti. 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.
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)
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.
También ver Examples [E01] , [E02], y [E03]
Los recursos de cada procesos se puede limitar especificando un Límite de recursos. Similar a a las Capacidades de Linux, hay dos difentes límites, un límite Soft y un límite Hard.
El límite soft es el valor que el kernel aplica para los recursos correspondientes. El límite hard actúa como límite superior para el límite superior: un proceso no privilegiado puede solamente poner su límite soft a un valor en el rango que va desde cero hasta el límite hard, e (irreversiblemente) bajar su límite hard. Un proceso privilegiado puede hacer cambios arbitrarios para limitar el valor, toda vez que el límite soft quede por debajo del límite hard.
La lista de todos los límites de recursos se puede encontrar en /usr/include/asm/resource.h en la mayoría de los sistemas Linux, se entra aquí un resumen de los límites de recursos.
Also see Examples [E11] and [E12].
Originally, this feature was only available with ext2, but now all major filesystems implement a basic set of File Attributes that permit certain properties to be changed. Here again is a short overview of the possible attributes, and what they mean.
chroot allows you to run a command with a different directory acting as the root directory. This means that all filesystem lookups are done with '/' referring to the substitute root directory and not to the original one.
While the Linux chroot implementation isn't very secure, it increases the isolation of processes with regards to the filesystem, and, if used properly, can create a filesystem "jail" for a single process or a restricted user, daemon or service.
See Example [E15]