Security-Enhanced Linux

Linux.fista
Hakemistorakenne

/

/bin
/boot
/dev
/etc
/home
/lib
/lost+found
/media
/mnt
/opt
/proc
/root
/run
/sbin
/selinux
/sources
/srv
/sys
/tmp
/usr
/var
Security-Enhanced Linux
Tekijä(t) NSA ja Red Hat
Kehittäjä(t) Red Hat
Käyttöliittymä teksti
Lisenssi GPL
Kotisivu selinuxproject.org
  • nsa.gov/what-we-do/research/selinux/[Wayback Machine]
  • Lähdekoodi https://github.com/SELinuxProject/selinux

    Security-Enhanced Linux (SELinux) 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 Linux-pohjaisissa jakeluissa, kuten RHEL- ja Rocky Linux -jakeluissa.

    Käyttö[muokkaa]

    Tietoja.png
    Komennot, jotka alkavat $-merkillä suoritetaan tavallisena käyttäjänä ja komennot, jotka alkavat #-merkillä suoritetaan pääkäyttäjänä. Katso myös su, sudo ja doas.

    Tilat[muokkaa]

    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[muokkaa]

    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[muokkaa]

    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[muokkaa]

    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[muokkaa]

    v  k  m
    Fxemoji u1F5A5.svg Palvelin
     Ylläpito  SSH | Tietoturva | Käyttäjien hallinta | Systemd | iptables | Security-Enhanced Linux | AppArmor
     Palvelintyypit  Web-palvelin | Sähköposti | Tietokanta | NFS | Samba
     Komentorivi  Komentorivin perusteet | Komentorivikomennot | Bash-skriptaus
     Tekstieditoreja  nano | vi | emacs
    Palvelin-luokka