Selinux

  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Selinux as PDF for free.

More details

  • Words: 2,587
  • Pages: 9
Personal tools 

Log in

Views 

Article



Discussion



View source



History

Fr FR/SELinux/ContexteSecurite

WIKI

Main Page News

From FedoraProject < Fr FR | SELinux

Events Features

Contents

Recent changes



1 Contexte de Sécurité

Random page



Help



NAVIGATION

Home Get Fedora Join Fedora SUB-PROJECTS

Ambassadors Artwork Bug Zappers Documentation Infrastructure Internationalization Localization Marketing Package Maintainers Websites Weekly News All projects SEARCH

1.1 system_u:object_r:httpd_exec_t:s0 1.2 4ème partie: Partie MLS



1.3 3ème partie: Types 1.4 2nde partie: Rôles



1.5 1ère partie: Utilisateurs



Contexte de Sécurité system_u:object_r:httpd_exec_t:s0 Tout dans SELinux tourne autour du Label de Sécurité, ou du Contexte de Sécurité. Tout Sujet  (processus) et Objet (habituellement les fichiers de l’ordinateur) possède un contexte de  sécurité qui lui est associé. Ce contexte à différent nom suivant à quoi il est attaché. Il est  appelé file_context quand il est associé à un fichier. Et il est quelquefois appelé Domaine  lorsque associé à un processus. Le contexte du fichier est stocké avec l’Inode dans un attribut étendu sur les systèmes (de  fichier) supportant les attributs étendus. Cela fonctionne de la même manière que les DAC  (explication ??!) et les ACLs (Access Control List/Liste de Contrôle d’Accès). En cela, la sécurité  du fichier est basée sur les informations stockées dans l’Inode et non dans le chemin d’accès au  fichier.  Sur les systèmes de fichiers qui ne supportent pas les attributs étendus, le noyau fournis les  contextes de fichier. Par exemple, il existe une règle sur les systèmes SELinux qui précise que  tous les fichiers situés sur un volume NFS monté seront labélisés system_u:object_r:nfs_t Maintenant, regardons ce qui forme un contexte de sécurité. 

Go  

Search

TOOLBOX

What links here Related changes

Un contexte de sécurité est formé de 3 ou 4 parties séparés par ":" Je vais décrire ces  composants en commençant du dernier vers le premier. 

4ème partie: Partie MLS La quatrième partie est le champ MLS qui n'est pas supporté dans RHEL 4 ou Fedora Core 4.  On peut l'apercevoir en à partir de Fedora Core 5, toutefois, il existait dans les versions  précédentes de SELinux mais n'avais jamais été activé.  Cette composante est utilisée par toutes les politiques chargées avec Fedora Core 5. Avec les  politiques Strictes et Ciblées, nous nous y référons en tant que champs MCS.  Malheureusement, ce champ peut contenir le signe ":". La syntaxe de ce champ peut 

http://fedoraproject.org/wiki/Fr_FR/SELinux/ContexteSecurite

Upload file Special pages Printable version Permanent link

ressembler à cela : s0-s15:c1,c2. Mais je parlerais plus tard de la syntaxe. La plupart des  fichiers sont par défaut estampillés s0, parfois, ont fait allusion à SystemLow. Heureusement,  SELinux fournit une bibliothèque de traduction qui remplace les codes du champ par une forme  plus lisible. Alors, quelque chose comme S0:c1,c2 peut être affiché à l'utilisateur comme  PatientRecord,CompanyConfidential. Sur une machine ou la politique est Stricte ou Ciblée, s0  est traduit "", alors la plupart des fichiers n'afficheront pas tous le quatrième champ. 

3ème partie: Types La troisième composante du contexte de sécurité est le champ Type, par  exemple, /usr/sbin/httpd est labélisé avec le type “httpd_exec_t. Mon opinion est que ceci est le  champ le plus important dans le contexte de sécurité SELinux. C’est le cœur du Type  Enforcement de SELinux. La plupart des politiques SELinux tournent autour de quel Type de  Sujet ont quels accès à quels Types d’Objet. Par convention, cette composante se termine  toujours par “_t” 

2nde partie: Rôles La seconde partie du Contexte de Sécurité est le champ Rôle. Ce champ n’est pertinent  uniquement sur les Processus ou les Domaines. Le rôle sur un fichier est toujours object_r, est  n’a vraiment aucune signification autre que de remplir le champ. Sur un Processus, vous verrez  généralement un rôle comme system_r ou sysadm_r. Les rôles sont utilisés pour grouper les  Types de Sécurité. Vous pouvez donc spécifier dans une politique quels rôles sont capables  d’exécuter quels Types. Ceci est la base des RBAC (Roles Based Access Control/ Contrôle  d’Accès Basé sur les Roles) dans SELinux. RBAC ne sont pas réellement utilisés dans les  politiques Ciblés, mais deviennent plus important dans les politiques Strictes et MLS. Les  politiques MLS contiennent aussi sysadm_r, staff_r, and secadm_r. Par convention, les rôles se  terminent toujours par "_r" 

1ère partie: Utilisateurs La première composante du Contexte de Sécurité est le champ "Utilisateur SELinux". Ce composant peut être considéré comme une manière de regrouper les rôles. Les Utilisateurs  SELinux peuvent avoir des multiples rôles, et ensuite, dans ces rôles, ils peuvent avoir de  multiples types. Les trois utilisateurs que vous verrez généralement sur le système sont  "user_u", "system_u" et root. L’utilisateur user_u est l’utilisateur SELinux par défaut pour un  utilisateur connecté sur le système. "system_u" est l’utilisateur par défaut pour les processus  exécutés durant la phase de démarrage. Ils n’ont jamais été démarrés par un utilisateur. "root"  est l’utilisateur SELinux que vous obtenez quand vous vous connectez sur la console en tant  que "root". Dans les politiques Ciblées la composante utilisateur n’est pas vraiment importante.  Cela l’est plus sur les machines à politiques MLS ou strictes. Sur un fichier le champ utilisateur indique l’utilisateur SELinux qui à créé le fichier. Sur les fichiers original du système, les fichiers  sont labélisés system_u. Si vous les re-labélisez ils obtiendront de nouveau le label system_u.  Par convention, tous les utilisateurs SELinux se terminent par "_u" sauf pour root. De base, si  vous souhaitez faire correspondre un utilisateur Linux à un utilisateur SELinux, vous devrez  créer un utilisateur SELinux avec le même nom que l’utilisateur Linux. C’est pour cela que  l’utilisateur root ne se termine pas par "_u". Dans les nouvelles versions de SELinux, nous  avons ajouté un fichier de mappage "seusers" qui vous permet de faire la correspondance entre  les utilisateurs Linux et SELinux sans avoir à créer bon nombre d’utilisateur SELinux.  Retrieved from "https://fedoraproject.org/wiki/Fr_FR/SELinux/ContexteSecurite"

This page was last modified 16:36, 24 May 2008.  Sponsors Legal Trademark Guidelines Copyright © 2008 Red Hat, Inc. and others. All Rights Reserved. Please send any comments or corrections to the websites team.  The Fedora Project is maintained and driven by the community and sponsored by Red Hat. This is a community maintained site. Red Hat is not responsible for content. 

http://fedoraproject.org/wiki/Fr_FR/SELinux/ContexteSecurite

http://fedoraproject.org/wiki/Fr_FR/SELinux/ContexteSecurite

Personal tools 

Log in

Views 

Article



Discussion



View source



History

Fr FR/SELinux/PolitiqueEnforce

WIKI

Main Page News

From FedoraProject < Fr FR | SELinux

Events Features Recent changes Random page Help



1 Comment SELinux applique les politiques 

1.1 Premièrement, parlons du processus de démarrage 1.2 À propos de unconfined_t et de la procédure d’ouverture de session



1.3 NOTE :



NAVIGATION

Home Get Fedora Join Fedora SUB-PROJECTS

Ambassadors Artwork Bug Zappers Documentation Infrastructure Internationalization Localization Marketing Package Maintainers Websites Weekly News All projects SEARCH

Go  

Contents

Search

TOOLBOX

What links here Related changes Upload file

Comment SELinux applique les  politiques  Premièrement, parlons du processus de démarrage Quand le noyau SELinux démarre il est codé en dur en se lançant en tant que kernel_t. Puisqu'à  ce moment c’est le seul contexte, toutes les applications qui sont exécutées resteront étiquetées  kernel_t. Quand le noyau exécute /sbin/init il est à l’origine exécuté en tant que kernel_t,  ensuite il lit le fichier de politiques et le charge dans le noyau. À ce moment init se réexécute lui  même. Lorsque /sbin/init est installé, il est étiqueté init_exec_t, ensuite une règle dans le  noyau précise que lorsque kernel_t exécute une application étiquetée init_exec_t, elle doit être modifiée en init_t. Dès lors, le processus init s'exécute en que init_t.  Le processus init exécute alors /etc/rc.d/rc.sysinit, qui a été étiqueté initrc_exec_t. Le  noyau possède une règle qui indique que lorsque init_t exécute initrc_exec_t, il doit le  modifier vers initrc_t. Cela continue jusqu'à ce que l’exécutable httpd soit démarré en tant que  httpd_t.  Le noyau va maintenant examiner tout accès (en lecture) du domaine de processus (httpd_t) sur la  classe (fichier) d’objet du système, par exemple : /var/www/index.html (httpd_sys_content_t). Si une règle dans la politique l'autorise, l’accès sera permis. S'il est  refusé, un message AVC (Access Vector Cache) sera inscrit dans le fichier journal. Par ailleurs, ne  me critiquez pas pour AVC, je ne suis pas celui qui en a choisi le nom. 

À propos de unconfined_t et de la procédure d’ouverture  de session  Certaines applications, telles que login, sont autorisées par la politique à définir le contexte du  prochain programme exécuté. Actuellement, la plupart des programmes d’ouverture de session utilisent pam_selinux pour avoir ce comportement.  Quand je me connecte alors au système, pam utilise libselinux pour trouver quel est le contexte 

http://fedoraproject.org/wiki/Fr_FR/SELinux/PolitiqueEnforce

Special pages Printable version Permanent link

initial à paramétrer pour l'utilisateur. Sur un sytème à polique ciblée, cela sera unconfined_t. Vous  pouvez modifier ce comportement en modifiant les fichiers  dans /etc/selinux/POLICYTYPE/contexts/default_contexts et /etc/selinux/POLICYTYPE/contexts/users/ afin que sur un système à politique stricte ou  MLS, vous puissiez paramétrer l'ouverture de session d'un terminal local par défaut sur un certain  contexte, et sur une connexion distante utiliser un contexte différent ; mais cela est une fonctionnalité  avancée. Ainsi, dès que l'utilisateur est connecté, son shell sera lancé avec unconfined_t ou bien user_t,  et chaque accès que l'utilisateur fera passera par le noyau afin d'être sûr que l'accès est autorisé.  Evidemment, tout ceci est mis en mémoire tampon afin d'améliorer les performances du système. 

NOTE :  Une chose étrange que vous aurez pu remarquer est que suivant la méthode de démarrage d'une  application, elle pourra s'exécuter au final dans un contexte différent. Par exemple, si vous exécutez httpd via le script de démarrage de service, il sera lancé en tant que httpd_t, mais si vous  l'exécutez directement, il sera lancé en tant que unconfined_t. Pourquoi ? Il y a une règle dans le noyau précisant que unconfined_t exécutant initrc_exec_t sera transposé vers initrc_t, et  que initrc_t lancant httpd_exec_t sera transposé vers httpd_t. Il existe une autre règle qui  précise que unconfined_t est autorisé à lancer httpd_exec_t sans transposition.  Cela a été une décision consciente prise par les auteurs de la politique afin d'essayer de réduire la  confusion. Les domaines les plus confinés ne sont pas autorisés à discuter avec le terminal. Ils ne  sont également pas autorisés à lire/écrire dans les répertoires des utilisateurs. La raison pour cela est  que nous avons essayer de protéger l'espace utilisateur de l'espace système, et si un domaine cible a  été piraté et qu'il lui est possible de lire/écrire sur une console ou un terminal, il pourrait afficher un  écran d'ouverture de session et ainsi nous permettre de fournir un nom d'utilisateur et un mot de  passe. De même, si un domaine ciblé était capable de lire/écrire dans nos répertoires utilisateur, il  pourrait lire nos numéros de carte de crédit, modifier nos scripts d'authenfication, ou plus  généralement faire des ravages...  Le problème avec cela est que de temps en temps, les administrateurs exécutent le domaine ciblé  avec l'option --help ou veulent tester un script CGI et ne peuvent voir aucun(e) résultat/sortie. Ou  voudraient essayer de rediriger la sortie vers leur répertoire utilisateur.  ./MonScriptCGI

>> ~toto.out

Si ces domaines venaient à se croiser, ces accès seraient interdits et l'utilisateur pourrait mettre un  certain temps à comprendre ce qu'il se passe. Donc, si vous désirez exécuter un domaine ciblé dans un contexte verrouillé, vous aurez besoin  d'utiliser les scripts d'init.  Retrieved from "https://fedoraproject.org/wiki/Fr_FR/SELinux/PolitiqueEnforce"

This page was last modified 16:34, 24 May 2008.  Sponsors Legal Trademark Guidelines Copyright © 2008 Red Hat, Inc. and others. All Rights Reserved. Please send any comments or corrections to the websites team.  The Fedora Project is maintained and driven by the community and sponsored by Red Hat. This is a community maintained site. Red Hat is not responsible for content. 

http://fedoraproject.org/wiki/Fr_FR/SELinux/PolitiqueEnforce

http://fedoraproject.org/wiki/Fr_FR/SELinux/PolitiqueEnforce

Personal tools 

Log in

Views 

Article



Discussion



View source

View source

WIKI

Main Page News

From FedoraProject for Fr FR/SELinux/ApplicationSELinux

Events Features

You are not allowed to execute the action you have requested. 

Recent changes

Return to Main Page.

Random page Retrieved from "https://fedoraproject.org/wiki/Fr_FR/SELinux/ApplicationSELinux"

Help NAVIGATION

Home Get Fedora Join Fedora SUB-PROJECTS

Ambassadors Artwork Bug Zappers Documentation Infrastructure Internationalization Localization Marketing Package Maintainers Websites Weekly News All projects SEARCH

Go  

Search

TOOLBOX

What links here Upload file Special pages Sponsors

Legal

Trademark Guidelines

Copyright © 2008 Red Hat, Inc. and others. All Rights Reserved. Please send any comments or corrections to the websites team.  The Fedora Project is maintained and driven by the community and sponsored by Red Hat. This is a community maintained site. Red Hat is not responsible for content. 

http://fedoraproject.org/w/index.php?title=Fr_FR/SELinux/ApplicationSELinux&action=edit

Personal tools 

Log in

Views 

Article



Discussion



View source

View source

WIKI

From FedoraProject

Main Page News

for Fr FR/SELinux/Connexion

Events Features

You are not allowed to execute the action you have requested. 

Recent changes

Return to Main Page.

Random page Retrieved from "https://fedoraproject.org/wiki/Fr_FR/SELinux/Connexion"

Help NAVIGATION

Home Get Fedora Join Fedora SUB-PROJECTS

Ambassadors Artwork Bug Zappers Documentation Infrastructure Internationalization Localization Marketing Package Maintainers Websites Weekly News All projects SEARCH

Go  

Search

TOOLBOX

What links here Upload file Special pages Sponsors

Legal

Trademark Guidelines

Copyright © 2008 Red Hat, Inc. and others. All Rights Reserved. Please send any comments or corrections to the websites team.  The Fedora Project is maintained and driven by the community and sponsored by Red Hat. This is a community maintained site. Red Hat is not responsible for content. 

http://fedoraproject.org/w/index.php?title=Fr_FR/SELinux/Connexion&action=edit

Personal tools 

Log in

Views 

Article



Discussion



View source



History

Fr FR/SELinux/Config

WIKI

Main Page News

From FedoraProject < Fr FR | SELinux

Events Features Recent changes Random page Help NAVIGATION

/etc/selinux/config Le fichier de configuration original de SELinux se trouve dans /etc/sysconfig/selinux et il existe  également un lien vers /etc/selinux/config. Ou toute la magie de SELinux démarre. Libselinux lit ce  fichier pour consulter de quelle manière SELinux est configuré.  Ce fichier ressemble généralement à cela: 

Home Get Fedora

SELINUX=enforcing

Join Fedora

SELINUXTYPE=targeted

SUB-PROJECTS

Dans FC5 il y à deux variables additionnelles dont je parlerais plus tard. 

Ambassadors Artwork

# SETLOCALDEFS= Check local definition changes

Bug Zappers

SETLOCALDEFS=0

Documentation Infrastructure Internationalization Localization

ce fichier est lu par SELinux et sert à determiner dans quel mode SELinux s'exécute et quelle  politique utiliser. Lors du démarrage de la machine, init utilise libselinux pour lire ce fichier et  détermine quelle politique doit être charger et dans quel mode placer la machine. 

Marketing Package Maintainers Websites Weekly News All projects SEARCH

Go  

Search

Variables 

SELINUX - variable qui peut prendre trois valeurs distinctes. 

 

Enforcing  Cela informe le système de s'exécuter avec SELinux scrutant tous les accès au système et de 



stoper tout accès "refusé".  Ce devrait être le mode par défaut. 



TOOLBOX

What links here



Related changes



Upload file

Le noyau bloque tout les accès à moins qu'ils n'aient été explicitement autorisés. Tout accès refusé et renseigné dans le journal système en tant que AVC (accès Vector Cache), à moins  qu'un auteur de politique ai explicitement informé le noyau de ne pas auditer le message.  Permissive 



Le noyau rapportera toute violation d'accès en tant que message AVC mais permettra l'accès.  Le noyau continuera de correctement labéliser les fichiers. 



Il y a un nombre majeur de différences avec lesquelle le noyau inscrit ces messages AVC. 

1. Le noyau inscrira seulement la première violation d'accès en mode permissif pour un Domaine  Confiné sur un objet particulier, le mode renforcé inscrira chaque accès refusé. 2. Vous pouvez avoir  de nombreux messages AVC additionnel qui n'auraient jamais dû s'afficher en mode renforcé. Par  exemple, si un Domaine Confiné n'est pas autorisé à lire un répertoire ou n'importe quel fichier se

http://fedoraproject.org/wiki/Fr_FR/SELinux/Config

Related Documents

Selinux
November 2019 8
Redhat Selinux
November 2019 12
Manual Selinux
April 2020 5
Red Hat Selinux Guide
November 2019 10