Les noyaux Linux récents fournissent déjà de nombreuses fonctions de sécurité qui sont utilisées par Linux-Vserver pour fonctionner, telles que le Système de Capacités Linux, les limites de ressource, les attributs de fichier et l'environnement chroot. Les sections suivantes vous donneront un court aperçu de chacune d'entre elles. |
Les noyaux Linux récents fournissent déjà de nombreuses fonctions de sécurité qui sont utilisées par Linux-Vserver pour fonctionner, telles que le Système de Privileges Linux, les limites de ressource, les attributs de fichier et l'environnement chroot. Les sections suivantes vous donneront un court aperçu de chacune d'entre elles. |
== 03.0. Système de Capacité Linux == |
== 03.0. Système de Privileges Linux == |
En science informatique, une capacité est un jeton utilisé par un processus pour prouver qu'il est autorisé à faire une opération sur un objet. Le Système de Capacités Linux est basé sur les "Capacités POSIX", un concept légèrement similaire, conçu pour diviser les privilèges root puissants en un ensemble de privilèges distincts. |
En science informatique, un privilege est un jeton utilisé par un processus pour prouver qu'il est autorisé à faire une opération sur un objet. Le Système de privileges Linux est basé sur les "Privileges POSIX", un concept légèrement similaire, conçu pour diviser les privilèges root puissants en un ensemble de privilèges distincts. |
=== 03.0.0. Capacités POSIX === |
=== 03.0.0. Privileges POSIX === |
Un processus possède trois champs de bits appelés les capacités héritables (I - "Inheritable"), permises (P), et effectives (E). Chaque capacité est implémentée dans un bit de chacun de ces champs, bit qui est soit défini soit non-défini. |
Un processus possède trois champs de bits appelés les privileges héritables (I - "Inheritable"), permises (P), et effectives (E). Chaque privilege est implémenté dans un bit de chacun de ces champs, bit qui est soit défini soit non-défini. |
Par exemple, quand un processus essaie de modifier l'horloge, le noyau Linux va vérifier que ce processus a le bit CAP_SYS_TIME (actuellement le bit 25) parmi ses capacités effectives. |
Par exemple, quand un processus essaie de modifier l'horloge, le noyau Linux va vérifier que ce processus a le bit CAP_SYS_TIME (actuellement le bit 25) parmi ses privileges effectives. |
L'ensemble permis d'un processus indique les capacités que celui-ci peut utiliser. Le processus peut avoir des capacités définies dans l'ensemble permis qui ne sont pas dans l'ensemble effectif. |
L'ensemble permis d'un processus indique les privileges que celui-ci peut utiliser. Le processus peut avoir des privileges définies dans l'ensemble permis qui ne sont pas dans l'ensemble effectif. |
Ceci indique que le processus a temporairement désactivé cette capacité. Un processus n'est autorisé à définir un bit dans son ensemble effectif que si ce bit est disponible dans son ensemble permis. |
Ceci indique que le processus a temporairement désactivé ce privilege. Un processus n'est autorisé à définir un bit dans son ensemble effectif que si ce bit est disponible dans son ensemble permis. |
La distinction entre capacités effectives et permises existe pour que les processus puissent réaliser des opérations qui nécessitent des privilèges. |
La distinction entre privileges effectif et permis existe pour que les processus puissent réaliser des opérations qui nécessitent des privilèges. |
Les capacités héritables sont les capacités du processus courant qui peuvent être héritées par un programme exécuté par ce dernier. L'ensemble permis d'un processus est masqué contre l'ensemble héritable pendant exec(). |
Les privileges héritables sont les privileges du processus courant qui peuvent être hérités par un programme exécuté par ce dernier. L'ensemble permis d'un processus est masqué contre l'ensemble héritable pendant exec(). |
Les processus fils ou les threads obtiennent une copie exacte des capacités du processus parent. |
Les processus fils ou les threads obtiennent une copie exacte des privileges du processus parent. |
L'implémentation dans Linux s'arrête là, alors que les capacités POSIX[U5] requièrent l'ajout d'un ensemble de capacités aux fichiers, pour remplacer le flag SUID (au moins pour les exécutables). |
L'implémentation dans Linux s'arrête là, alors que les privileges POSIX[U5] requièrent l'ajout d'un ensemble de privileges aux fichiers, pour remplacer le flag SUID (au moins pour les exécutables). |
=== 03.0.1. Vue d'ensemble des capacités === |
=== 03.0.1. Vue d'ensemble des privileges === |
La liste des capacités POSIX utilisées avec Linux est longue, et les 32 bits disponibles sont presques tous utilisés. Bien que la liste détaillée de ces capacités puisse être trouvée dans /usr/include/linux/capability.h sur la plupart des systèmes Linux, une vue d'ensemble des capacités importantes est donnée ici. |
La liste des privileges POSIX utilisées avec Linux est longue, et les 32 bits disponibles sont presques tous utilisés. Bien que la liste détaillée de ces privileges puisse être trouvée dans /usr/include/linux/capability.h sur la plupart des systèmes Linux, une vue d'ensemble des privileges importantes est donnée ici. |
transfert/déplace toute capacité de l'ensemble permis vers/depuis n'importe quel pid |
transfert/déplace tout privilege de l'ensemble permis vers/depuis n'importe quel pid |
la liste serait trop longue, ceci permet en gros de faire tout ce qui n'est pas mentionné dans les autres capacités |
la liste serait trop longue, ceci permet en gros de faire tout ce qui n'est pas mentionné dans les autres privileges |
des capacités Linux, il existe deux types de limites, l'une --- |
des privileges Linux, il existe deux types de limites, l'une \ |