Wie kann ich alle Selinux-Regeln / Standarddateikontexte / usw. abfragen, die einen Typ betreffen?


10

Ich muss alles wissen, was mit einem Selinux-Typ in den aktuellen Regeln eines laufenden Systems zu tun hat :

  • erlauben, erlauben, prüfen, nicht prüfen Regeln.
  • Dateien, die mit einem Kontext gekennzeichnet sind, der den Typ verwendet.
  • Übergänge.

... und andere Infos.

Gibt es Befehle, mit denen ich diese Informationen abfragen kann, oder sollte ich alle selinux-bezogenen "src" -Pakete herunterladen, die nicht verwendeten Module herausfiltern und jede Datei nach diesen Informationen durchsuchen? Es muss einen einfacheren Weg geben, dies zu tun.

Antworten:


10

Einige der Befehle zum Abrufen dieser Informationen sind (Beispiele verwenden 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
    

Referenzen: RHEL6 SELinux Handbuch


Gibt es eine Möglichkeit zu wissen, welche Module einen bestimmten Typ verwenden? dh wie man diese Informationen mit dem geladenen Selinux-Richtlinienmodul (Semodule -l) verbindet?
— Yanko Hernández Álvarez

OK, ich werde den Umfang der Frage reduzieren, um diese Antwort als akzeptiert zu markieren und den ersten Aspekt von einer anderen Frage zu trennen.
— Yanko Hernández Álvarez

@ YankoHernándezÁlvarez ob Sie es glauben oder nicht, ich habe versucht, das herauszufinden. Ich habe meine Ergebnisse in Ihrer anderen Frage veröffentlicht.
— Dawud

Für diejenigen, die suchen, ist diese andere Frage hier .
— Michael Mol
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.