Comment puis-je rechercher toutes les règles selinux / contextes de fichier par défaut / etc affectant un type

10

J'ai besoin de tout savoir sur un type selinux sur les règles actuelles d' un système en cours d'exécution :

  • Autoriser, autoriser, règles dontaudit.
  • fichiers étiquetés avec un contexte utilisant le type.
  • transitions.

... et toute autre information.

Existe-t-il des commandes que je peux utiliser pour rechercher ces informations ou dois-je télécharger tous les packages "src" liés à selinux, filtrer les modules non utilisés et récupérer chaque fichier pour ces informations? Il doit y avoir un moyen plus simple de le faire.

Yanko Hernández Álvarez
la source

Réponses:

10

Certaines des commandes pour obtenir ces informations sont (exemples d'utilisation httpd_log_t):

  1. seinfo

    # seinfo -x --type=httpd_log_t /etc/selinux/default/policy/policy.26
       httpd_log_t
          file_type
          non_security_file_type
          logfile
    
  2. sesearch

    # sesearch --dontaudit -t httpd_log_t /etc/selinux/default/policy/policy.26 | head
    Found 35 semantic av rules:
        dontaudit run_init_t file_type : dir { getattr search open } ;
        dontaudit staff_t non_security_file_type : file getattr ;
        dontaudit staff_t non_security_file_type : dir { ioctl read getattr lock search open } ;
        dontaudit staff_t non_security_file_type : lnk_file getattr ;
        dontaudit staff_t non_security_file_type : sock_file getattr ;
        dontaudit staff_t non_security_file_type : fifo_file getattr ;
        dontaudit unconfined_t non_security_file_type : file getattr ;
        dontaudit unconfined_t non_security_file_type : dir { ioctl read getattr lock search open } ;
        dontaudit unconfined_t non_security_file_type : lnk_file getattr ;
    
  3. semanage

    # semanage fcontext -l | grep httpd_log_t
    /etc/httpd/logs                                    all files          system_u:object_r:httpd_log_t:s0
    /var/log/apache(2)?(/.*)?                          all files          system_u:object_r:httpd_log_t:s0
    /var/log/apache-ssl(2)?(/.*)?                      all files          system_u:object_r:httpd_log_t:s0
    /var/log/cacti(/.*)?                               all files          system_u:object_r:httpd_log_t:s0
    /var/log/cgiwrap\.log.*                            regular file       system_u:object_r:httpd_log_t:s0
    /var/log/horde2(/.*)?                              all files          system_u:object_r:httpd_log_t:s0
    /var/log/httpd(/.*)?                               all files          system_u:object_r:httpd_log_t:s0
    /var/log/lighttpd(/.*)?                            all files          system_u:object_r:httpd_log_t:s0
    /var/log/piranha(/.*)?                             all files          system_u:object_r:httpd_log_t:s0
    /var/www(/.*)?/logs(/.*)?                          all files          system_u:object_r:httpd_log_t:s0
    

Références: Manuel RHEL6 SELinux

dawud
la source
existe-t-il un moyen de savoir quels modules utilisent un type spécifié? c'est-à-dire comment connecter ces informations au module de politique selinux chargé (semodule -l)?
Yanko Hernández Álvarez
OK, je vais réduire la portée de la question pour marquer cette réponse comme acceptée et séparer le premier aspect d'une autre question.
Yanko Hernández Álvarez
@ YankoHernándezÁlvarez croyez-le ou non, j'ai essayé de comprendre cela. J'ai posté mes résultats dans votre autre question.
dawud
Pour ceux qui cherchent, cette autre question est ici .
Michael Mol