Linuxhotel Wiki

Wie ging das nochmal?

Benutzer-Werkzeuge

Webseiten-Werkzeuge


admin_grundlagen:se-linux

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu der Vergleichsansicht

Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung
admin_grundlagen:se-linux [2018/11/12 23:31]
ingo_wichmann gelöscht
— (aktuell)
Zeile 1: Zeile 1:
-====== SELinux ====== 
-Linux Dateiberechtigungen:​ DAC => Discretionary ((discretionary:​ dem eigenen Ermessen anheim gestellt)) Access Controll => Der Besitzer einer Datei entscheidet nach eigenem Ermessen, wer wie auf diese Datei zugreifen darf.  
- 
-SELinux: MAC => Mandatory Access Control => begrenzt den Zugriff auf Objekte wie Dateien, Prozesse, ..., ohne Benutzern Einfluss auf diese Begrenzungen zu geben. ​ 
- 
-===== Ein/​Ausschalten ===== 
-==== Ist SE-Linux eingeschaltet?​ ==== 
-  sestatus 
-oder 
-  getenforce 
- 
-==== SE-Linux ausschalten ==== 
-=== temporär === 
-(( oder nicht komplett ausschalten,​ sondern nur Verstöße gegen die Policy protokollieren:​ 
-  setenforce permissive 
-)) 
-  setenforce disabled 
-=== rebootfest === 
-''/​etc/​sysconfig/​selinux''​ : (CentoOS 5) 
-<​file>​ 
-SELINUX=disabled 
-</​file>​ 
- 
-  reboot 
- 
-==== SE-Linux einschalten ==== 
-''/​etc/​sysconfig/​selinux''​ : (CentoOS 5) 
-<​file>​ 
-SELINUX=enforcing 
-</​file>​ 
- 
-  genhomedircon 
-  touch /​.autorelabel 
-  reboot 
- 
-===== Beispiel: Webserver auf anderem Port ===== 
-Pakete: httpd 
- 
-''/​etc/​httpd/​conf/​httpd.conf''​ : 
-<​file>​ 
-Listen 88 
-</​file>​ 
- 
-  service httpd start 
- 
--> Fehler 
- 
-==== Ursache ==== 
- 
-/​var/​log/​audit/​audit.log:​ 
- 
-<​file>​ 
-type=AVC msg=audit(1404208507.970:​1184):​ avc:  denied ​ { name_bind } for  pid=3907 comm="​httpd"​ src=88 scontext=unconfined_u:​system_r:​httpd_t:​s0 tcontext=system_u:​object_r:​kerberos_port_t:​s0 tclass=tcp_socket 
-type=SYSCALL msg=audit(1404208507.970:​1184):​ arch=c000003e syscall=49 success=no exit=-13 a0=4 a1=7f8dbbdcd820 a2=1c a3=7fff56fc58a0 items=0 ppid=3906 pid=3907 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts2 ses=4 comm="​httpd"​ exe="/​usr/​sbin/​httpd"​ subj=unconfined_u:​system_r:​httpd_t:​s0 key=(null) 
-type=AVC msg=audit(1404208507.971:​1185):​ avc:  denied ​ { name_bind } for  pid=3907 comm="​httpd"​ src=88 scontext=unconfined_u:​system_r:​httpd_t:​s0 tcontext=system_u:​object_r:​kerberos_port_t:​s0 tclass=tcp_socket 
-type=SYSCALL msg=audit(1404208507.971:​1185):​ arch=c000003e syscall=49 success=no exit=-13 a0=3 a1=7f8dbbdcd760 a2=10 a3=7fff56fc5b0c items=0 ppid=3906 pid=3907 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts2 ses=4 comm="​httpd"​ exe="/​usr/​sbin/​httpd"​ subj=unconfined_u:​system_r:​httpd_t:​s0 key=(null) 
-</​file>​ 
- 
-scongext = source context 
-tcongext = target context 
- 
-==== Lösungsmöglichkeit:​ SELinux abschalten ==== 
-  setenforce 0 
-  service httpd start 
- 
-==== Lösungsmöglichkeit:​ SELinux audit2allow ==== 
-  setenforce permissive 
-  service httpd start 
- 
-  cp -a /​var/​log/​audit/​audit.log /​tmp/​audit.log 
-  vim /​tmp/​audit.log 
-entsprechende Zeilen aus ''/​tmp/​audit.log''​ heraussuchen:​ 
-<​file>​ 
-type=AVC msg=audit(1404208813.307:​1194):​ avc:  denied ​ { name_bind } for  pid=3960 comm="​httpd"​ src=88 scontext=unconfined_u:​system_r:​httpd_t:​s0 tcontext=system_u:​object_r:​kerberos_port_t:​s0 tclass=tcp_socket 
-type=SYSCALL msg=audit(1404208813.307:​1194):​ arch=c000003e syscall=49 success=yes exit=0 a0=4 a1=7f0c8a9b3820 a2=1c a3=7fff7a5dac30 items=0 ppid=3959 pid=3960 auid=0 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=pts2 ses=4 comm="​httpd"​ exe="/​usr/​sbin/​httpd"​ subj=unconfined_u:​system_r:​httpd_t:​s0 key=(null) 
-</​file>​ 
-  cat /​tmp/​audit.log ​ | audit2why 
-  cat /​tmp/​audit.log ​ | audit2allow -M httpd_listen88 
-  semodule -i httpd_listen88.pp 
-  setenforce enforcing 
-  semodule -l | grep  httpd_listen88 
- 
-==== Lösungsmöglichkeit:​ SELinux booleans? ==== 
-  setenforce enforcing 
- 
-==== Lösungsmöglichkeit:​ SELinux semanage ==== 
-  semanage port -l | grep  http 
-  semanage port -a -t ssh_port_t -p tcp 88 
- 
-====== Dokus & Links ====== 
-  * http://​wiki.centos.org/​HowTos/​SELinux/​ 
-  * https://​access.redhat.com/​site/​documentation/​en-US/​Red_Hat_Enterprise_Linux/​6/​html/​Security-Enhanced_Linux/​index.html 
-  * https://​access.redhat.com/​site/​documentation/​en-US/​Red_Hat_Enterprise_Linux/​6/​html/​Managing_Confined_Services/​index.html 
  
admin_grundlagen/se-linux.1542065493.txt.gz · Zuletzt geändert: 2018/11/12 23:31 von ingo_wichmann