1 Wat is SELinux? Het staat voor: Security Enhanced Linux2 Historie Het is een door de NSA en de Universiteit van Utah ontwikkelde beveiligings uitbre...
SELinux (project 073) Wat is SELinux? Het staat voor: Security Enhanced Linux
Twan Duis
SELinux (project 073) Historie Het is een door de NSA en de Universiteit van Utah ontwikkelde beveiligings uitbreiding voor operating systemen. Het is door NSA opensource gemaakt. DAC = Descretionary Access Control (=rwx) RBAC = Role Based Access Control MAC = Mandatory Access Control (= SELinux) Redhat werkt hard aan SELinux sinds RHEL4 (2004), maar bij RHEL6 is het echt (goed) implementeerbaar.
Twan Duis
SELinux (project 073) Mandatory Access Control Wat is het? Een gedwongen/geforceerde toegangs controle op basis van policies/regels.
Wikipedia: With mandatory access control, this security policy is centrally controlled by a security policy administrator; users do not have the ability to override the policy and, for example, grant access to files that would otherwise be restricted. http://en.wikipedia.org/wiki/Mandatory_access_control
Twan Duis
SELinux (project 073) Maar wacht eens even, SELinux 'sucks' Als je 10 Linux beheerder iets vraagt over SELinux, krijg je het volgende antwoord: “Dat is het eerste dat ik uitzet op een RHEL/CENTOS machine.” Reden hiervoor is dat het nog erg 'jong' is en er bij trainingen te weinig aandacht aan wordt/is besteed.
Twan Duis
SELinux (project 073) Wat is SELinux NIET? ●Antivirus ●Vervanging voor firewalls etc... ●Heilig-makende-beveiligings oplossing
Daarnaast zijn er nog 2 policies meegeleverd: ● Targeted (default) ● Multi Level Security (extra te installeren) Voorbeeld: /etc/sysconfig/selinux of sestatus
Twan Duis
SELinux (project 073) Maar hoe werkt SELinux dan? Er is in de linux kernel een mechanisme gedefinieerd om de beveiliging beter te kunnen regelen. Denk aan: ●File access ●Memory access ●Process access
Twan Duis
SELinux (project 073) SE Linux implementatie
-Z
is je vriend
Ls -Z, id -Z, ps -Z, lsof -Z etc.... DEMO
Twan Duis
SELinux (project 073) Type enforcement Elke file heeft een extra SELinux type aanduiding: user:role:type:level User = confined/unconfined Role = role based security Type = type enforcement Level = gebruikt bij MLS DEMO
Twan Duis
SELinux (project 073) Labelen van files en type enforcement Met chcon een file koppelen aan type. Mogelijke types gedefinieerd in: /etc/selinux/targeted/contexts/files/file_contexts chcon system_u:object_r:httpd_sys_content_t:s0 /srv/www
Enforcement met 'restorecon'.
Twan Duis
SELinux (project 073) Demo: Apache installatie met index.html
Twan Duis
SELinux (project 073) Audit.log Alle selinux meldingen komen in de /var/log/messages & /var/log Tip: Audit2allow & audit2why commando's
Twan Duis
SELinux (project 073) RBAC en MLS Role Based Access en Multilevel security, de laatste is een te installeren policy ivp de default 'targeted'. RBAC wordt gebruikt voor processen en niet voor gebruikers. ●Unconfined_r ●object_r ●system_r ●user_r
Twan Duis
SELinux (project 073) Domains In de 'targeted' policy zijn 2 domeinen gedefinierd: Unconfined & confined Een domain wordt voor processen gebruikt en zo kan een unconfined process geen beschrijfbaar/shared geheugen aanspreken. Dit om in geval van 'buffer-overflow attack' geen schade aan andere processen te kunnen aanrichten.
Twan Duis
SELinux (project 073) Booleans Booleans zijn extra instellingen om zaken aan/uit te zetten. DEMO getsebool/setsebool (-P). Zie ook “semanage boolean -l”
Twan Duis
SELinux (project 073) SELinux users In SELinux kunnen gebruikers (linux) gekoppeld worden aan selinux-gebruikers. “semanage login -l” Zo zijn er 'booleans' om tervoor te zorgen dan gebruikers geen apps kunnen starten uit hun homedirectory.
Twan Duis
SELinux (project 073) Conclusie: SELinux is toch nog erg complex, maar met een beetje verdieping kom je een heel eind.