{"id":1665,"date":"2016-11-30T08:00:28","date_gmt":"2016-11-30T07:00:28","guid":{"rendered":"https:\/\/www.my-it-brain.de\/wordpress\/?p=1665"},"modified":"2016-11-29T23:13:28","modified_gmt":"2016-11-29T22:13:28","slug":"selinux-booleans","status":"publish","type":"post","link":"https:\/\/www.my-it-brain.de\/wordpress\/selinux-booleans\/","title":{"rendered":"SELinux Booleans"},"content":{"rendered":"<p>Bei <em>SELinux Booleans<\/em> handelt es sich um kleine Schalter, mit denen sich das Verhalten der SELinux-Richtlinien beeinflussen l\u00e4sst. Dieser Artikel kn\u00fcpft an die <a href=\"https:\/\/www.my-it-brain.de\/wordpress\/einfuehrung-in-das-grundlegende-konzept-von-selinux\/\">&#8222;Einf\u00fchrung in das grundlegende Konzept von SELinux&#8220;<\/a> an und erl\u00e4utert die Verwendung von SELinux Booleans anhand eines einfachen Beispiels.<\/p>\n<p><em>Hinweis<\/em>: Das Beispiel aus diesem Artikel wurde auf einem RHEL\/CentOS 7.3 getestet. Unter CentOS 7.2 funktioniert die hier gezeigte Konfiguration nicht. F\u00fcr Details wird auf das Topic[2. <a href=\"https:\/\/www.centos.org\/forums\/viewtopic.php?f=51&amp;t=60283\">Solved SELinux Booleans and httpd_enable_homedirs<\/a>] im CentOS-Support-Forum verwiesen.<\/p>\n<p>Im Einf\u00fchrungsartikel[3. <a href=\"https:\/\/www.my-it-brain.de\/wordpress\/einfuehrung-in-das-grundlegende-konzept-von-selinux\/\">&#8222;Einf\u00fchrung in das grundlegende Konzept von SELinux&#8220;<\/a>] wurde SELinux dazu genutzt, um den Zugriff des Apache auf das DocumentRoot-Verzeichnis <code>\/var\/www\/html<\/code> zu beschr\u00e4nken. Nun m\u00f6chte der Webmaster den Benutzern gestatten, Webseiten \u00fcber ihre HOME-Verzeichnisse zu ver\u00f6ffentlichen und aktiviert dazu die Konfiguration f\u00fcr das Modul Userdir.[4. <a href=\"https:\/\/www.unixmen.com\/linux-basics-enable-apache-userdir-centos-7rhel-7\/\">Linux Basics: How To Enable Apache UserDir In CentOS 7\/RHEL 7<\/a> {en}] [5. <a href=\"https:\/\/www.server-world.info\/en\/note?os=CentOS_7&amp;p=httpd&amp;f=5\">Enable Userdir in CentOS 7<\/a> {en}] [6. <a href=\"https:\/\/wiki.ubuntuusers.de\/Apache\/#Benutzerspezifisch\">Apache: Benutzerspezifische Verzeichnisse &#8211; wiki.ubuntuusers.de<\/a>]<\/p>\n<pre>[root@centos ~]$ cat \/etc\/httpd\/conf.d\/userdir.conf\r\n\r\n    UserDir enabled\r\n    UserDir public_html\r\n\r\n\r\n<Directory \"\/home\/*\/public_html\">\r\n    AllowOverride FileInfo AuthConfig Limit Indexes\r\n    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec\r\n    Require method GET POST OPTIONS\r\n\r\n\r\n[root@centos ~]#\r\n<\/pre>\n<p>Nun kann ein Benutzer in seinem HOME-Verzeichnis den Ordner <em>public_html<\/em> erstellen und eine <code>test.txt<\/code>-Datei erstellen:<\/p>\n<pre>[jkastning@centos ~]$ mkdir public_html\r\n[jkastning@centos ~]$ sudo chmod 711 \/home\/jkastning\/\r\n[jkastning@centos ~]$ sudo chmod 755 public_html\/\r\n[jkastning@centos ~]$ vim public_html\/test.txt\r\n<\/pre>\n<h1>Hello User<\/h1>\n<p>Nach einem Neustart des Dienstes <em>httpd<\/em> sollte sich nun die Datei <em>index.html<\/em> aus dem Benutzerverzeichnis abrufen lassen. Statt dessen wird der Zugriff verweigert.<\/p>\n<div id=\"attachment_1669\" style=\"width: 756px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2016\/11\/apache_userdir_forbidden.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1669\" class=\"size-full wp-image-1669\" src=\"https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2016\/11\/apache_userdir_forbidden.png\" alt=\"apache_userdir_forbidden\" width=\"746\" height=\"220\" srcset=\"https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2016\/11\/apache_userdir_forbidden.png 746w, https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2016\/11\/apache_userdir_forbidden-300x88.png 300w, https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2016\/11\/apache_userdir_forbidden-624x184.png 624w\" sizes=\"auto, (max-width: 746px) 100vw, 746px\" \/><\/a><p id=\"caption-attachment-1669\" class=\"wp-caption-text\">httpd_enable_homdirs &#8211;&gt; off<\/p><\/div>\n<p>In den Logdateien finden sich Hinweise, die auf SELinux als Ursache hindeuten.<\/p>\n<pre>[root@centos ~]# tail \/var\/log\/audit\/audit.log|grep AVC\r\ntype=AVC msg=audit(1480446615.354:844): avc:  denied  { getattr } for  pid=23150 comm=\"httpd\" path=\"\/home\/jkastning\/public_html\/index.html\" dev=\"sda1\" ino=1052157 scontext=system_u:system_r:httpd_t:s0 tcontext=unconfined_u:object_r:httpd_user_content_t:s0 tclass=file\r\n\r\n[root@centos ~]# tail \/var\/log\/messages | grep SELinux\r\nNov 29 20:10:44 centos setroubleshoot: SELinux is preventing httpd from getattr access on the file \/home\/jkastning\/public_html\/index.html. For complete SELinux messages. run sealert -l 13419731-cedd-4433-abb7-b2e7715d5636\r\n<\/pre>\n<p>Um weitere Informationen zu erhalten, f\u00fchren wir das Kommando aus \/var\/log\/messages aus (Ausgabe gek\u00fcrzt):<\/p>\n<pre>[root@centos ~]# sealert -l 13419731-cedd-4433-abb7-b2e7715d5636\r\nSELinux is preventing httpd from getattr access on the file \/home\/jkastning\/public_html\/index.html.\r\n\r\n*****  Plugin catchall_boolean (24.7 confidence) suggests   ******************\r\n\r\nIf you want to allow httpd to enable homedirs\r\nThen you must tell SELinux about this by enabling the 'httpd_enable_homedirs' boolean.\r\nYou can read 'None' man page for more details.\r\nDo\r\nsetsebool -P httpd_enable_homedirs 1\r\n<\/pre>\n<p>In der obigen Ausgabe wird neben der Ursache auch gleich die L\u00f6sung mitgeliefert. Nach der Aktivierung des SELinux Boolean <strong>httpd_enable_homedirs<\/strong> kann der Inhalt der Datei <em>index.html<\/em> im Webbrowser abgerufen werden.<\/p>\n<div id=\"attachment_1670\" style=\"width: 687px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2016\/11\/apache_userdir_allowed.png\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-1670\" class=\"size-full wp-image-1670\" src=\"https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2016\/11\/apache_userdir_allowed.png\" alt=\"apache_userdir_allowed\" width=\"677\" height=\"179\" srcset=\"https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2016\/11\/apache_userdir_allowed.png 677w, https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2016\/11\/apache_userdir_allowed-300x79.png 300w, https:\/\/www.my-it-brain.de\/wordpress\/wp-content\/uploads\/2016\/11\/apache_userdir_allowed-624x165.png 624w\" sizes=\"auto, (max-width: 677px) 100vw, 677px\" \/><\/a><p id=\"caption-attachment-1670\" class=\"wp-caption-text\">httpd_enable_homedirs &#8211;&gt; on<\/p><\/div>\n<p>Damit wurde eine weitere Funktionalit\u00e4t von SELinux kurz vorgestellt. F\u00fcr weiterf\u00fchrende Informationen sei auf die Manpages booleans(8)[6. <a href=\"https:\/\/linux.die.net\/man\/8\/booleans\">booleans(8) &#8211; Linux man page<\/a> {en}], getsebool(8)[7. <a href=\"https:\/\/linux.die.net\/man\/8\/getsebool\">getsebool(8) &#8211; Linux man page<\/a> {en}] und setsebool(8)[8. <a href=\"https:\/\/linux.die.net\/man\/8\/setsebool\">setsebool(8) &#8211; Linux man page<\/a> {en}] verwiesen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bei SELinux Booleans handelt es sich um kleine Schalter, mit denen sich das Verhalten der SELinux-Richtlinien beeinflussen l\u00e4sst. Dieser Artikel kn\u00fcpft an die &#8222;Einf\u00fchrung in das grundlegende Konzept von SELinux&#8220; an und erl\u00e4utert die Verwendung von SELinux Booleans anhand eines einfachen Beispiels. Hinweis: Das Beispiel aus diesem Artikel wurde auf einem RHEL\/CentOS 7.3 getestet. Unter<span class=\"continue-reading\"> <a href=\"https:\/\/www.my-it-brain.de\/wordpress\/selinux-booleans\/\">[Weiterlesen&#8230;]<\/a><\/span><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_metis_text_type":"","_metis_text_length":0,"_post_count":0,"footnotes":""},"categories":[51],"tags":[444,439,430,305,389,34,443,37,45],"class_list":["post-1665","post","type-post","status-publish","format-standard","hentry","category-linux","tag-booleans","tag-centos","tag-osbn","tag-planet","tag-rhel","tag-security","tag-selinux","tag-sicherheit","tag-tipps"],"_links":{"self":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts\/1665","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/comments?post=1665"}],"version-history":[{"count":8,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts\/1665\/revisions"}],"predecessor-version":[{"id":1675,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/posts\/1665\/revisions\/1675"}],"wp:attachment":[{"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/media?parent=1665"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/categories?post=1665"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.my-it-brain.de\/wordpress\/wp-json\/wp\/v2\/tags?post=1665"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}