Ero sivun ”Security-Enhanced Linux” versioiden välillä
Ei muokkausyhteenvetoa |
(Lisätty tietoa SELinuxin käytöstä.) |
||
Rivi 14: | Rivi 14: | ||
===Tilat=== | ===Tilat=== | ||
SELinuxilla on kolme eri tilaa: <tt>enforcing</tt>, <tt>permissive</tt> ja <tt>disabled</tt>. Enforcing pakottaa SELinuxin politiikan koko järjestelmään ja pitää huolta siitä että käyttäjien ja prosessien luvattomat toiminnot estetään ja kirjoitetaan lokiin. Permissive ei estä luvattomia toimintoja, mutta kirjoittaa ne lokitiedostoon. Permissive on hyvä tapa tutkia ja varmistaa SELinuxin toimivuus ennen käyttöönottoa. Disabled poistaa SELinuxin kokonaan käytöstä. | SELinuxilla on kolme eri tilaa: <tt>enforcing</tt>, <tt>permissive</tt> ja <tt>disabled</tt>. Enforcing pakottaa SELinuxin politiikan koko järjestelmään ja pitää huolta siitä että käyttäjien ja prosessien luvattomat toiminnot estetään ja kirjoitetaan lokiin. Permissive ei estä luvattomia toimintoja, mutta kirjoittaa ne lokitiedostoon. Permissive on hyvä tapa tutkia ja varmistaa SELinuxin toimivuus ennen käyttöönottoa. Disabled poistaa SELinuxin kokonaan käytöstä. | ||
Oletuksena SELinux on Enforcing-tilassa. | |||
SELinuxin tilan voi katsoa esimerkiksi <tt>getenforce</tt> tai <tt>sestatus</tt> -komennoilla, joista <tt>sestatus</tt> näyttää enemmän tietoa, | SELinuxin tilan voi katsoa esimerkiksi <tt>getenforce</tt> tai <tt>sestatus</tt> -komennoilla, joista <tt>sestatus</tt> näyttää enemmän tietoa, | ||
$ getenforce | $ getenforce | ||
Enforcing | Enforcing | ||
sestatus | |||
SELinux status: enabled | |||
SELinuxfs mount: /sys/fs/selinux | |||
SELinux root directory: /etc/selinux | |||
Loaded policy name: targeted | |||
Current mode: enforcing | |||
Mode from config file: enforcing | |||
Policy MLS status: enabled | |||
Policy deny_unknown status: allowed | |||
Max kernel policy version: 28 | |||
===Käyttöönotto=== | ===Käyttöönotto=== | ||
Rivi 24: | Rivi 38: | ||
Tietokone pitää käynnistää uudelleen jotta asetukset astuvat voimaan. Tämän jälkeen SELinuxin lokia voidaan tarkastella <tt>/var/log/messages</tt> -tiedostosta. Esimerkiksi jos SELinux estää jonkun prosessin toiminnan, voidaan se tarkastaa lokista: | Tietokone pitää käynnistää uudelleen jotta asetukset astuvat voimaan. Tämän jälkeen SELinuxin lokia voidaan tarkastella <tt>/var/log/messages</tt> -tiedostosta. Esimerkiksi jos SELinux estää jonkun prosessin toiminnan, voidaan se tarkastaa lokista: | ||
# cat /var/log/messages | grep "SELinux is preventing" | # cat /var/log/messages | grep "SELinux is preventing" | ||
=== SELinuxin toiminta === | |||
SELinuxissa on toimintatilan lisäksi myös turvallisuuspolitiikka, englanniksi policy. Politiikkalajeja on kolme: **Strict**, **Targeted** ja **Unconfined**. | |||
Monet Linux-komennot näyttävät SELinux-tiedot <tt>Z</tt>-vivulla. Esimerkiksi <tt>ps</tt> ja <tt>ls</tt>. | |||
=== Tiedostojen oikeudet === | |||
SELinuxin avulla voidaan rajoittaa tiedostojen pääsyoikeuksia hienovaraisemmin kuin Unixin tavallisilla käyttöoikeuksilla. Ls-komento tarjoaa tuen näiden pääsyoikeuksien katselemiselle. Tiedostojen SELinux-oikeudet voi listata tällä komennolla: | |||
ls -Z | |||
Listauksessa näkyy nyt SELinux-kenttä, jossa on useita eri osia seuraavassa järjestyksessä: <tt>user:role:type:mls</tt> | |||
Ps-komennolla on mahdollista katsoa helposti, mihin SELinux-käyttöoikeuteen mikäkin prosessi kuuluu: | |||
ps axZ | |||
Vastaavasti tiedostojen oikeuksia pääsee muuttamaan <tt>chcon</tt>-komennolla: | |||
chcon -u <user> -t <type> -r <role> <tiedosto> | |||
Esimerkiksi CentOS-järjestelmässä Apachelle voi antaa kirjoitusoikeuden uploads_dir-nimiseen kansioon: | |||
chcon -t httpd_sys_rw_content_t uploads_dir | |||
Näin kansion SELinux-tyyppi muutetaan muotoon <tt>httpd_sys_rw_content_t</tt>. Nämä tyypit, kuten muutkin SELinux-asetukset ovat jakelukohtaisia. | |||
==Aiheesta muualla== | ==Aiheesta muualla== | ||
*[http://fedoraproject.org/wiki/SELinux SELinux Fedoran wikissä] | *[http://fedoraproject.org/wiki/SELinux SELinux Fedoran wikissä] | ||
*[https://wiki.centos.org/HowTos/SELinux CentOS SELinux HOWTO] | |||
*[https://people.redhat.com/duffy/selinux/selinux-coloring-book_A4-Stapled.pdf SELinux värityskirja] - Ohjelman toiminta yksinkertaisesti selostettuna värityskirjan muodossa | *[https://people.redhat.com/duffy/selinux/selinux-coloring-book_A4-Stapled.pdf SELinux värityskirja] - Ohjelman toiminta yksinkertaisesti selostettuna värityskirjan muodossa | ||
*[https://people.redhat.com/dwalsh/SELinux/Presentations/ManageRHEL4.pdf Managing Red Hat Enterprise Linux 4] | *[https://people.redhat.com/dwalsh/SELinux/Presentations/ManageRHEL4.pdf Managing Red Hat Enterprise Linux 4] |
Versio 11. toukokuuta 2019 kello 19.04
SELinux | |
---|---|
Käyttöliittymä | teksti |
Lisenssi | GPL |
Kotisivu | selinuxproject.org |
SELinux (Security-Enhanced Linux) on NSA:n kehittämä turvallisuusjärjestelmä, joka rajoittaa ohjelmien toimintaoikeuksia niille kirjoitettujen sääntöjen mukaan. Tarkoituksena on estää ohjelmia suorittamasta vaarallisia toimintoja, joko tarkoituksella tai esimerkiksi puskuriylivuotojen kautta. SELinux on käytössä useimmissa Fedora-pohjaisissa jakeluissa, kuten RHEL-, CentOS-, ja Scientific Linux -jakeluissa.
Käyttö
Tilat
SELinuxilla on kolme eri tilaa: enforcing, permissive ja disabled. Enforcing pakottaa SELinuxin politiikan koko järjestelmään ja pitää huolta siitä että käyttäjien ja prosessien luvattomat toiminnot estetään ja kirjoitetaan lokiin. Permissive ei estä luvattomia toimintoja, mutta kirjoittaa ne lokitiedostoon. Permissive on hyvä tapa tutkia ja varmistaa SELinuxin toimivuus ennen käyttöönottoa. Disabled poistaa SELinuxin kokonaan käytöstä.
Oletuksena SELinux on Enforcing-tilassa.
SELinuxin tilan voi katsoa esimerkiksi getenforce tai sestatus -komennoilla, joista sestatus näyttää enemmän tietoa,
$ getenforce Enforcing
sestatus SELinux status: enabled SELinuxfs mount: /sys/fs/selinux SELinux root directory: /etc/selinux Loaded policy name: targeted Current mode: enforcing Mode from config file: enforcing Policy MLS status: enabled Policy deny_unknown status: allowed Max kernel policy version: 28
Käyttöönotto
SELinuxin asetustiedosto on /etc/selinux/config. SELinux voidaan ottaa käyttöön muokkaamalla asetustiedostoa asettamalla sinne haluttu tila.
SELINUX=enforcing
Tietokone pitää käynnistää uudelleen jotta asetukset astuvat voimaan. Tämän jälkeen SELinuxin lokia voidaan tarkastella /var/log/messages -tiedostosta. Esimerkiksi jos SELinux estää jonkun prosessin toiminnan, voidaan se tarkastaa lokista:
# cat /var/log/messages | grep "SELinux is preventing"
SELinuxin toiminta
SELinuxissa on toimintatilan lisäksi myös turvallisuuspolitiikka, englanniksi policy. Politiikkalajeja on kolme: **Strict**, **Targeted** ja **Unconfined**.
Monet Linux-komennot näyttävät SELinux-tiedot Z-vivulla. Esimerkiksi ps ja ls.
Tiedostojen oikeudet
SELinuxin avulla voidaan rajoittaa tiedostojen pääsyoikeuksia hienovaraisemmin kuin Unixin tavallisilla käyttöoikeuksilla. Ls-komento tarjoaa tuen näiden pääsyoikeuksien katselemiselle. Tiedostojen SELinux-oikeudet voi listata tällä komennolla:
ls -Z
Listauksessa näkyy nyt SELinux-kenttä, jossa on useita eri osia seuraavassa järjestyksessä: user:role:type:mls
Ps-komennolla on mahdollista katsoa helposti, mihin SELinux-käyttöoikeuteen mikäkin prosessi kuuluu:
ps axZ
Vastaavasti tiedostojen oikeuksia pääsee muuttamaan chcon-komennolla:
chcon -u <user> -t <type> -r <role> <tiedosto>
Esimerkiksi CentOS-järjestelmässä Apachelle voi antaa kirjoitusoikeuden uploads_dir-nimiseen kansioon:
chcon -t httpd_sys_rw_content_t uploads_dir
Näin kansion SELinux-tyyppi muutetaan muotoon httpd_sys_rw_content_t. Nämä tyypit, kuten muutkin SELinux-asetukset ovat jakelukohtaisia.
Aiheesta muualla
- SELinux Fedoran wikissä
- CentOS SELinux HOWTO
- SELinux värityskirja - Ohjelman toiminta yksinkertaisesti selostettuna värityskirjan muodossa
- Managing Red Hat Enterprise Linux 4
- Managing Red Hat Enterprise Linux 5