Editing
Paper/fr
(section)
From Linix VServer
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Infrastructure Existante == 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. === Le système de Privileges (Capabilities) Linux === 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. ==== Privileges POSIX ==== 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. Quand un processus essaie de faire une opération privilégiée, le système d'exploitation va vérifier les bits appropriés dans l'ensemble effectif des processus (au lieu de vérifier si l'uid respectif du processus est 0 comme il le fait habituellement). 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 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é 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 privileges effectif et permis existe pour que les processus puissent réaliser des opérations qui nécessitent des privilèges. 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(). Rien de spécial ne se produit durant fork() ou clone(). 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 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). ==== Vue d'ensemble des privileges ==== 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. {|class="wikitablenowrap" | 0|| CAP_CHOWN || change le propriétaire et le groupe du fichier |- | 5|| CAP_KILL|| envoie un signal au processus avec un ID utilisateur différent, réel ou effectif |- | 6|| CAP_SETGID|| permet le passage de setgid(2), setgroups(2), et de gids forgés sur les sockets |- | 7|| CAP_SETUID|| permet le passage de set*uid(2) et d'uids forgés sur les sockets |- | 8|| CAP_SETPCAP|| transfert/déplace tout privilege de l'ensemble permis vers/depuis n'importe quel pid |- | 9|| CAP_LINUX_IMMUTABLE|| permet la modification des attributs de fichier S_IMMUTABLE et S_APPEND |- | 11|| CAP_NET_BROADCAST|| permet la diffusion et l'écoute en multicast |- | 12|| CAP_NET_ADMIN|| permet la configuration de l'interface, le pare-feux IP, le masquerading, l'accounting, le débugage de sockets, les tables de routage, la liaison sur n'importe quelle adresse, l'entrée dans le mode de promiscuité, le multicasting... |- | 13|| CAP_NET_RAW|| permet l'utilisation des sockets RAW et PACKET |- | 16|| CAP_SYS_MODULE|| ajoute et retire des modules noyau |- | 18|| CAP_SYS_CHROOT|| permet chroot(2) |- | 19|| CAP_SYS_PTRACE|| permet ptrace() sur n'importe quel processus |- | 21|| CAP_SYS_ADMIN|| la liste serait trop longue, ceci permet en gros de faire tout ce qui n'est pas mentionné dans les autres privileges |- | 22|| CAP_SYS_BOOT|| permet reboot(2) |- | 23|| CAP_SYS_NICE|| permet l'élévation des privilèges et la modification de la priorité des autres processus, en modifiant l'ordonnanceur |- | 24|| CAP_SYS_RESOURCE|| passe outre les limites de ressource, de quota, l'espace réservé sur un système de fichier... |- | 27|| CAP_MKNOD|| permet les aspects privilégiés de mknod(2) |} Voir également les Exemples [E01],[E02], et [E03]. === Limite des Ressources === Vous pouvez limiter les ressources de chaque processus en spécifiant une limite pour chaque ressource. A la manière des privileges Linux, il existe deux types de limites, l'une Douce, l'autre Dure. La limite Douce est la valeur que le noyau imposera pour cette ressource à un processus. Un utilisateur non privilégié pourra régler la limite Douce n'importe où en dessous de la valeur Dure. Seul l'utilisateur root pourra re-hausser la limite Dure. ==== Apercu des Ressources Limit-ables ==== La liste des ressources qui peuvent être limitées se trouve dans le fichier /usr/include/asm/resource.h sur la plupart des systèmes Linux. {|class="wikitablenowrap" | 0|| RLIMIT_CPU || Temps CPU en secondes. un signal SIGXCPU est envoyé au processus qui a atteind la limite Douce, et un SIGKILL pour la limite Dure. |- | 4|| RLIMIT_CORE || Taille maximale d'un fichier core. |- | 5|| RLIMIT_RSS || Nombre de pages maximum qu'un processus peut utiliser (en RAM) |- | 6|| RLIMIT_NPROC || Nombre maximum de processus autorisés à l'utilisateur réel du processus appelant. |- | 7|| RLIMIT_NOFILE || Spécifie la valeur +1 pour le nombre maximum de descripteurs de fichiers ouvert par un processus. |- | 8|| RLIMIT_MEMLOCK || Nombre maximum de pages mémoire virtuelle autorisées à être vérouillées en RAM à l'aide des appels mlock() ou mlockall(). |- | 9|| RLIMIT_AS || Nombre maximum de pages de mémoire virtuelle disponible pour un processus. |} (Limite de l'espace d'adressage) Voir aussi les Exemples [E11], et [E12]. === Attributs de Fichiers === Auparavant, cette fonctionnalité n'était disponible qu'avec ext2, mais maintenant tous les systèmes de fichiers majeurs implémentent un ensemble d'Attributs de fichiers de base, qui permettent le paramétrage de certaines propriétés. Voici de nouveau un bref aperçu des possibilités des attributs, et leur signification. {|class="wikitablenowrap" | s SECRM || Lorsqu'un fichier avec cet attribut est détruit, les blocs qui le composent sont mis à zéro et re-écrit sur le disque. |- | u UNRM || Lorsqu'un fichier avec cet attribut est détruit, son contenu est sauvegardé. |- | c COMPR || Un fichier marqué avec cet attribut est automatiquement compressé à l'écriture et décompressé à la lecture. (pas encore implémenté) |- | i IMMUTABLE || Un fichier avec cet attribut ne pourra pas être modifié: Impossible de le renommer ou de le détruire, impossible de créer un lien vers ce fichier, ni d'écrire une donnée de plus vers ce fichier. |- | a APPEND || Un fichier avec cet attribut ne pourra être ouvert qu'en mode ajout. |- | d NODUMP || Si cet attribut de fichier est mis, le fichier n'est pas candidat à un backup via l'utilitaire "dump". |- | S SYNC || Les mises à jour vers ce fichier se feront de manière synchrone. |- | A NOATIME || Empêche la mise à jour de l'enregistrement atime lors d'un accès ou d'une modification de fichier. |- | t NOTAIL || Un fichier avec l'attribut t n'aura pas de fragment bloc en fin de fichier fusionné avec un autre fichier. |- | D DIRSYNC || Les modifications apportés à ce répertoire seront écrites de manière synchrones. |} Voir aussi les Exemples [E13] et [E14]. === La Commande chroot(1) === chroot permet de lancer une commande en changeant le répertoire racine dans lequel il va s'éxécuter. Cela signifie que tout parcours du système de fichiers à partir de la racine '/' se fera à partir de la racine substituée et non pas à partir de la racine originelle. Bien que le chroot Linux n'est pas très sécurisé, son utilisation augmente l'isolation des processus par rapport au système de fichier, et, à condition de l'utiliser correctement, peut être utilisé pour "emprisonner" un processus, un utilisateur unique, ou un démon (service). Voir l'Exemple [E15]
Summary:
Please note that all contributions to Linix VServer may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Linix VServer:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Page actions
Page
Discussion
Read
Edit
History
Page actions
Page
Discussion
More
Tools
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
About
Overview
Paper
News
Developers
Donations
Search
Getting Started
Downloads
FAQs
Documentation
Support
Participate
How to participate
Report a Bug
Communicate
Teams/Projects
Hall of Fame
Resources
Archives
Recent Wiki Changes
Pastebin
Related Projects
VServer Hosting
Happy VServer Users
Tools
What links here
Related changes
Special pages
Page information