Jak mogę zapytać o wszystkie reguły selinux / domyślne konteksty plików / itp. Mające wpływ na typ

10

Muszę wiedzieć wszystko związane z typem selinux na bieżących regułach systemu :

  • pozwalają, allowaudit, dontaudit reguły.
  • pliki oznaczone kontekstem przy użyciu typu.
  • przejścia

... i wszelkie inne informacje.

Czy jest jakieś polecenie, którego mogę użyć do zapytania o te informacje, czy powinienem pobrać wszystkie pakiety „src” związane z selinux, odfiltrować nieużywane moduły i grepować każdy plik dla tych informacji? Musi być łatwiejszy sposób, aby to zrobić.

Yanko Hernández Álvarez
źródło

Odpowiedzi:

10

Niektóre polecenia, aby uzyskać te informacje to (przykłady użycia 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
    

Odniesienia: instrukcja RHEL6 SELinux

dawud
źródło
czy jest jakiś sposób, aby wiedzieć, które moduły używają określonego typu? tj. jak połączyć te informacje z załadowanym modułem strategii selinux (semodule -l)?
Yanko Hernández Álvarez
OK, ograniczę zakres pytania, aby zaznaczyć tę odpowiedź jako zaakceptowaną, i oddzielę pierwszy aspekt od innego pytania.
Yanko Hernández Álvarez
@ YankoHernándezÁlvarez uwierz lub nie, staram się to rozgryźć. Zamieszczam moje odkrycia w tobie inne pytanie.
dawud
Dla tych, którzy szukają, inne pytanie jest tutaj .
Michael Mol