Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:selinux_-_webserver_inhalte_freigeben

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
Nächste Überarbeitung
Vorherige Überarbeitung
Letzte Überarbeitung Beide Seiten, nächste Überarbeitung
admin_grundlagen:selinux_-_webserver_inhalte_freigeben [2018/11/12 22:16]
ingo_wichmann
admin_grundlagen:selinux_-_webserver_inhalte_freigeben [2019/08/13 11:02]
dhoppe [HTML Datei außerhalb des DocumentRoot anlegen]
Zeile 2: Zeile 2:
   * [[lpi2:​apache|Apache httpd]] installiert   * [[lpi2:​apache|Apache httpd]] installiert
  
-====== ​ ======+====== ​HTML Datei im Zielverzeichnis anlegen ​======
   cd /​var/​www/​html/​   cd /​var/​www/​html/​
   id -Z   id -Z
 +  ls -dZ .
   matchpathcon .   matchpathcon .
 +-> Type: ''​httpd_sys_content_t''​
  
 <file html test.html>​ <file html test.html>​
Zeile 17: Zeile 19:
 </​html>​ </​html>​
 </​file>​ </​file>​
 +
 +  ls -Z test.html
 +-> Type: ''​httpd_sys_content_t'',​ Webserver kann darauf zugreifen
 +
 +====== HTML Datei im Heimatverzeichnis anlegen ======
 +als root:
 +  cd
 +  id -Z
 +  ls -dZ .
 +  matchpathcon .
 +-> Type: ''​admin_home_t''​
 +
 +<file html test.html>​
 +<​html>​
 +  <​head>​
 +    <​title>​Hello SELinux!</​title>​
 +  </​head>​
 +  <​body>​
 +    Hello SELinux
 +  </​body>​
 +</​html>​
 +</​file>​
 +
 +  ls -Z test.html
 +-> Type: ''​admin_home_t''​
 +  mv test.html /​var/​www/​html
 +-> Webserver kann //nicht// darauf zugreifen
 +
 +===== SELinux file type korrigieren =====
 +==== setroubleshootd ====
 +Wenn zum Zeitpunkt des Zugriffs setroubleshootd aktiviert ist, gibt es hier Hilfe:
 +  journalctl -f _COMM=setroubleshootd
 +-> ''​SELinux is preventing /​usr/​sbin/​httpd from getattr access on the file /​var/​www/​html/​test.html''​
 +
 +==== auditd ====
 +Wenn zum Zeitpunkt des Zugriffs der auditd läuft:
 +  ausearch -m avc -c httpd
 +-> ''​denied ​ { getattr } … comm="​httpd"​ path="/​var/​www/​html/​test.html"​ … tcontext=…admin_home_t''​
 +
 +==== chcon ====
 +  chcon -t httpd_sys_content_t /​var/​www/​html/​test.html
 +oder
 +  chcon --reference /​var/​www/​html /​var/​www/​html/​test.html
 +
 +==== restorecon ====
 +  restorecon /​var/​www/​html/​test.html
 +
 +
 +
 +
 +====== HTML Datei außerhalb des DocumentRoot anlegen ======
 +<file txt /​etc/​httpd/​conf.d/​srv.conf>​
 +Alias /srv /srv/test
 +
 +<​Directory /​srv/​test>​
 +  Require all granted
 +</​Directory>​
 +</​file>​
 +
 +  apachectl graceful
 +
 +  mkdir -p /srv/test
 +  ls -dZ /srv/test/
 +-> Type: ''​var_t''​
 +  chcon --reference /​var/​www/​html /srv/test
 +  ls -dZ /srv/test/
 +-> Type: ''​httpd_sys_content_t''​
 +  matchpathcon /srv/test/
 +-> Type: ''​var_t''​ (**Achtung!**)
 +
 +<file html test.html>​
 +<​html>​
 +  <​head>​
 +    <​title>​Hello SELinux!</​title>​
 +  </​head>​
 +  <​body>​
 +    Hello SELinux
 +  </​body>​
 +</​html>​
 +</​file>​
 +
 +  ls -Z /​srv/​test/​test.html
 +-> Type: ''​var_t'',​ Webserver kann **nicht** darauf zugreifen
 +  chcon --reference /​var/​www/​html /​srv/​test/​test.html
 +  ls -Z /​srv/​test/​test.html
 +-> Type: ''​httpd_sys_content_t'',​ Webserver kann darauf zugreifen
 +  restorecon -RF /srv/test/
 +  ls -Z /​srv/​test/​test.html
 +-> Type: ''​var_t'',​ Webserver kann **nicht** darauf zugreifen
 +  semanage fcontext --add -t httpd_sys_content_t '/​srv/​test(/​.*)?'​
 +  restorecon -RF /srv/test/
 +-> Type: ''​httpd_sys_content_t'',​ Webserver kann darauf zugreifen
  
admin_grundlagen/selinux_-_webserver_inhalte_freigeben.txt · Zuletzt geändert: 2019/08/14 09:03 von dhoppe