Despre Linux

  • Facebook
  • Twitter
  • LinkedIn
  • Acasă
  • Linux
    • Comenzi Linux
    • Tutoriale
  • Kubernetes
  • RHCSA
    • Exerciții RHCSA
    • SELinux
    • Permisiuni
  • General
    • Open source
  • Contact

Active Vector Cache și sistemul de loguri în SELinux. Remedierea erorilor

22 septembrie 2018 By Bobses Un comentariu

Politica targeted din SELinux este cu adevărat mare, sistemul de operare consumând timp și resurse pentru a căuta informații de fiecare dată când trebuie să ia o decizie. De aceea, este folosit un cache care stochează cele mai recente decizii allow/deny ale politicii folosite. Acest cache se numește Active Vector Cache (AVC). Din acest motiv, mesajele SELinux de interzicere a accesului mai sunt cunoscute și ca "refuzuri AVC - AVC denials" - mesaje care provin dintr-un log AVC și sunt evenimente AVC. În articolul de față vom discuta despre cum putem remedia erorile SELinux și modalitatea lor de gestionare, folosindu-ne de AVC și sistemul de loguri SELinux.

De fiecare dată când avem probleme într-un sistem Linux ne uităm în fișierele log, să vedem ce s-a întâmplat și, eventual, cum putem remedia neregulile. Responsabil de scrierea logurilor pentru SELinux este serviciul auditd.

Pentru a ne asigura că acest serviciu funcționează:

# systemctl status auditd
● auditd.service - Security Auditing Service
   Loaded: loaded (/usr/lib/systemd/system/auditd.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-09-15 12:50:01 EEST; 6 days ago
     Docs: man:auditd(8)
           https://github.com/linux-audit/audit-documentation
 Main PID: 645 (auditd)
   CGroup: /system.slice/auditd.service
           ├─645 /sbin/auditd
           ├─647 /sbin/audispd
           └─649 /usr/sbin/sedispatch

Serviciul auditd va scrie toate mesajele de interzicere a accesului în fișierul /var/log/audit/audit.log. Acest fișier stochează mult mai multe înregistrări, nu doar intrări legate de SELinux. De reținut că, dacă serviciul auditd nu funcționează, este folosit fișierul /var/log/messages. Pentru a vedea doar intrările legate de SELinux vom filtra după AVC, deoarece toate intrările din log referitoare la AVC vor conține șirul de caractere "AVC":

# cat /var/log/audit/audit.log | grep AVC
type=AVC msg=audit(1537604802.502:388): avc: denied { noatsecure } for pid=19772 comm="firewalld" scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:system_r:iptables_t:s0 tclass=process permissive=0
type=AVC msg=audit(1537604802.661:396): avc: denied { noatsecure } for pid=19773 comm="firewalld" scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:system_r:iptables_t:s0 tclass=process permissive=0
type=USER_AVC msg=audit(1533364001.416:217): pid=616 uid=81 auid=4294967295 ses=4294967295 subj=system_u:system_r:system_dbusd_t:s0-s0:c0.c1023 msg='avc: denied { send_msg } for msgtype=method_call interface=org.freedesktop.systemd1.Manager member=LookupDynamicUserByName dest=org.freedesktop.systemd1 spid=722 tpid=1 scontext=system_u:system_r:sssd_t:s0 tcontext=system_u:system_r:init_t:s0 tclass=dbus permissive=0 exe="/usr/bin/dbus-daemon" sauid=81 hostname=? addr=? terminal=?'

Sau folosind comanda ausearch căutând un anumit proces/eveniment:

# ausearch -m avc -c firewalld
----
time->Sat Sep 22 11:26:42 2018
type=AVC msg=audit(1537604802.502:388): avc:  denied  { noatsecure } for  pid=19772 comm="firewalld" scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:system_r:iptables_t:s0 tclass=process permissive=0
----
time->Sat Sep 22 11:26:42 2018
type=AVC msg=audit(1537604802.661:396): avc:  denied  { noatsecure } for  pid=19773 comm="firewalld" scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:system_r:iptables_t:s0 tclass=process permissive=0

Acest log poate fi analizat și cu ajutorul utilitarului sealert, instrument care afișează părțile relevante ale acestui log într-un format mult mai ușor de interpretat:

# sealert -a /var/log/audit/audit.log
100% done
found 0 alerts in /var/log/audit/audit.log

Sau, în cazul în care sunt alerte:

# sealert -a /var/log/audit/audit.log
100% done
found 42 alerts in /var/log/audit/audit.log
--------------------------------------------------------------------------------

SELinux is preventing firewalld from using the noatsecure access on a process.

***** Plugin catchall (100. confidence) suggests **************************

If you believe that firewalld should be allowed noatsecure access on processes labeled insmod_t by default.
Then you should report this as a bug.


You can generate a local policy module to allow this access.
Do
allow this access for now by executing:
# ausearch -c 'firewalld' --raw | audit2allow -M my-firewalld
# semodule -X 300 -i my-firewalld.pp

Additional Information:
Source Context system_u:system_r:firewalld_t:s0
Target Context system_u:system_r:insmod_t:s0
Target Objects Unknown [ process ]
Source firewalld
Source Path firewalld
Port <Unknown>
Host <Unknown>
Source RPM Packages 
Target RPM Packages 
Policy RPM selinux-policy-3.14.1-42.fc28.noarch
Selinux Enabled True
Policy Type targeted
Enforcing Mode Enforcing
Host Name bobsesland
Platform Linux bobsesland 4.17.14-202.fc28.x86_64 #1 SMP
Wed Aug 15 12:29:25 UTC 2018 x86_64 x86_64
Alert Count 56
First Seen 2018-09-22 11:26:42 EEST
Last Seen 2018-09-22 11:27:31 EEST
Local ID 9cf5ee6a-0491-4b81-905d-de51164a2a55

Raw Audit Messages
type=AVC msg=audit(1537604851.972:345): avc: denied { noatsecure } for pid=950 comm="firewalld" scontext=system_u:system_r:firewalld_t:s0 tcontext=system_u:system_r:insmod_t:s0 tclass=process permissive=0


Hash: firewalld,firewalld_t,insmod_t,process,noatsecure

--------------------------------------------------------------------------------

În exemplul de mai sus am selectat o eroare SELinux legată de firewalld; după cum observăm, ni se indică și modalitatea de a remedia defectul (partea marcată cu galben):

În exemplul de mai jos este un caz de alertă apache/httpd:

# sealert -a /var/log/audit/audit.log
SELinux is preventing /usr/sbin/httpd from read access on the file fisiertest.html. For complete SELinux messages. run sealert -l d72b5c45-af2d-4a29-95cd-8a7289594b85

Din fericire, avem mai multe informații despre ceea ce este în neregulă - ni se spune să rulăm o anumită comandă:

sealert -l d72b5c45-af2d-4a29-95cd-8a7289594b85

Așadar, o rulăm:

# sealert -l d8dfacad-00f5-4796-a00d-c02bbfdc3a41
SELinux is preventing /usr/sbin/httpd from getattr access on the file /var/www/html/fisiertest.html.

***** Plugin restorecon (99.5 confidence) suggests ************************

If you want to fix the label.
/var/www/html/fisiertest.html default label should be httpd_sys_content_t.
Then you can run restorecon.
Do
# /sbin/restorecon -v /var/www/html/testfile.html

***** Plugin catchall (1.49 confidence) suggests **************************

If you believe that httpd should be allowed getattr access on the fisiertest.html file by default.
Then you should report this as a bug.
You can generate a local policy module to allow this access.
Do
allow this access for now by executing:
# grep httpd /var/log/audit/audit.log | audit2allow -M mypol
# semodule -i mypol.pp

Additional Information:
Source Context system_u:system_r:httpd_t:s0
Target Context unconfined_u:object_r:admin_home_t:s0
Target Objects /var/www/html/fisiertest.html [ file ]
Source httpd
Source Path /usr/sbin/httpd

Observăm, de asemenea, că ni se oferă o mulțime de informații utile, chiar și comenzile care trebuie rulate pentru a rezolva problema.

În cazul în care folosim și interfața grafică, un instrument deosebit de util și care ne ajută să determinăm tot ceea ce am spus mai sus este SELinux Troubleshooter GUI:

SELinux Troubleshooter GUI
Alertă cu indicații de remediere
Lista tuturor alertelor din sistem

Partajează asta:

  • Dă clic pentru a partaja pe Facebook(Se deschide într-o fereastră nouă)
  • Dă clic pentru a partaja pe LinkedIn(Se deschide într-o fereastră nouă)
  • Dă clic pentru a partaja pe Twitter(Se deschide într-o fereastră nouă)

Similare

Din categoria: SELinux Etichete: RHCSA, SELinux

Trackbacks

  1. SELinux - copiere versus mutare fișiere | Despre Linux spune:
    20 iunie 2021 la 11:40

    […] a acestei erori: verificăm conținutul fișierului /var/log/audit/audit.log (cum am învățat în articolul precedent) și aplicăm recomandările de acolo sau, în loc să mutăm fișierul din /root, îl vom copia […]

    Răspunde

Lasă un răspuns Anulează răspunsul

Acest site folosește Akismet pentru a reduce spamul. Află cum sunt procesate datele comentariilor tale.

Copyright © 2023 · Bobses

Administrează consimțămintele pentru cookie-uri
Pentru a oferi cea mai bună experiență, folosim tehnologii, cum ar fi cookie-uri, pentru a stoca și/sau accesa informațiile despre dispozitive. Consimțământul pentru aceste tehnologii ne permite să procesăm date, cum ar fi comportamentul de navigare sau ID-uri unice pe acest site. Dacă nu îți dai consimțământul sau îți retragi consimțământul dat poate avea afecte negative asupra unor anumite funcționalități și funcții.
Funcționale Mereu activ
Stocarea tehnică sau accesul sunt strict necesare în scopul legitim de a permite utilizarea unui anumit serviciu cerut în mod explicit de către un abonat sau un utilizator sau în scopul exclusiv de a executa transmiterea unei comunicări printr-o rețea de comunicații electronice.
Preferințe
Stocarea tehnică sau accesul este necesară în scop legitim pentru stocarea preferințelor care nu sunt cerute de abonat sau utilizator.
Statistici
Stocarea tehnică sau accesul care sunt utilizate exclusiv în scopuri statistice. The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
Stocarea tehnică sau accesul sunt necesare pentru a crea profiluri de utilizator pentru a trimite publicitate sau pentru a urmări utilizatorul pe un site web sau pe mai multe site-uri web în scopuri de marketing similare.
Administrează opțiunile Administrează serviciile Administrează vânzătorii Citește mai multe despre aceste scopuri
Vizualizează preferințele
{title} {title} {title}