Tartalomjegyzék
SELinux
- Szerző: Sallai András
- Copyright © Sallai András, 2012
- Licenc: GNU Free Documentation License 1.3
- Web: http://szit.hu
Bevezetés
A SELinux a Security Enhanced Linux rövidítése, és a szabványos linuxok egy kiterjesztése, amely lehetővé teszi hozzáférés szabályozást, folyamatok rendszerhez való hozzáférésének állítását. Eredetileg az NSA fejlesztette. Ez a lap csak egy rövid leírás.
DAC
A DAC a Discretionary Access Control rövidítése, amely tulajdonképpen az Unix rendszerekből örökölt tulajdonos és csoport alapú hozzáférés vezérlés, így minden Linux alapból tartalmazza.
MAC
A MAC a Mandatory Access Control rövidítése, amely egy újabb biztonsági modell. Lehetővé teszi, olyan korlátozások bevezetését, amelyet más felhasználó nem képes megváltoztatni. Szigorú szabályok beállítását teszi lehetővé.
A SELinux tulajdonképpen a MAC modell egy megvalósítása.
További még szigorúbb szabályozáshoz nézd meg az RSBAC és/vagy a Grsecurity megvalósításokat.
Vezérelvek
- targeted
- nincs minden korlátozva. A hálózati szolgáltatások védettek.
- strict
- minden tilos ami nincs megengedve
- multi-level security
- több szintű hozzáférés. A hozzáférések tartományokhoz és erőforrásokhoz rendeltek.
- multi-category security
- kategorizált hozzáférés
Biztonsági környezetek
Egy folyamat jogai ezen környezetektől függ.
- user
- SELinux felhasználó (ez nem egyenlő egy Linuxos felhasználóval.
- role
- SELinux szerep, egy erőforráshoz rendelve.
- type
- Erőforrástípuis
- sensitivity
- Erőforrások érzékenységi szintje.
- A következő érzékenységek lehetségesek:
- Public
- Internal
- Restricted
- Confidential
- Strictly Confidential
- A sensitivity környezet csak az MLS vezérelv mellett használható.
- category
- Az erőforrásokat kategóriákban sorolhatjuk.
- Ez akkor hasznos, ha az azonos típusú erőforrásokat szét akarjuk választani.
- A category környezet használható az MLS és a MCS vezérelvek mellett.
Telepítés
A Debian GNU/Linux kernel alapból támogatja SELinuxot, használatához azonban telepíteni kell néhány felhasználói térben futó programot. A SELinux használatához szükség van ext2, ext3 vagy ext4 fájlrendszerre és egy GRUB vagy LILO bootmenedzserre.
Telepítés előtt a Debian GNU/Linuxos rendszerben elve van egy /selinux könyvtár üresen. Másik könyvtár az /etc/selinux. Ebben egyetlen fájl található: /etc/selinux/semanage.conf.
Telepítsük a SELinuxhoz a szükséges csomagokat:
apt-get install selinux-basics selinux-policy-default
Telepítés utána a /etc/selinux könyvtár újabb könyvtárakkal és fájlokkal gazdagodik. A Könyvtár ekkor így néz ki:
- default/
- config
- restorecond.conf
- restorecond_user.conf
- semanage.conf
A SELinux aktiválása:
selinux-activate
Ehhez hasonló sorokat láthatunk:
Activating SE Linux Generating grub.cfg ... Found linux image: /boot/vmlinuz-3.2.0-4-686-pae Found initrd image: /boot/initrd.img-3.2.0-4-686-pae done SE Linux is activated. You mey need to reboot now.
A beállítások újraindítás után lesznek érvényesek:
reboot
A SELinux a fájlrendszert és a folyamatokat felcímkézi, alkalmazza a beállításokat.
Ellenőrizhetjük a fájlrendszer címkéit:
ls -Z /bin
A folyamatok címkéit:
ps axZ
Ellenőrizzük a SELinux telepítését:
check-selinux-installation
A második újraindulás után ellenőrizzük, hogy a SELinux be van-e kapcsolva:
sestatus
Az engedélyezett modulokat is megnézhetjük:
semodule -l
Alapbeállítások
Az enforce mód engedélyezése:
setenforce 1
Az enforce mód kikapcsolása:
setenforce 0
Az enforcemód lekérdezése:
getenforce
Lehetséges eredmények:
Permissive | Enforcing |
Enforcemód kikapcsolva | Enforcemód bekapcsolva |
A SELinux kikapcsolása
nano /etc/selinux/config
Az állományban beállítjuk:
SELINUX=disabled
Futtatom a setenforce parancsot a kívánt paraméterrel:
setenforce 0
SELinux címkék
A fájlokat, a könyvtárakat és a folyamatokat a SELinux úgy tudja használni, ha azok meg vannak jelölve címkékkel. Egy ilyen címkére példa:
system_u:object_r:user_home_t:s0
A fájlok esetén az ilyen címkék meglétéről már a ls -l parancs is tájékoztat bennünket. Lássuk egy könyvtár esetén:
ls -ld
Lehetséges kimenet:
drwxr-xr-x. 59 joska joska 4096 jún 15 20:51 /home/joska/Tervek
A kimenetben a pont (.), azt jelenti könyvtár fel van címkézve. Lássuk ezeket a címkéket:
ls -Zd /home/joska/Tervek
A -Z kapcsoló megmutatja a címkéket. A lehetséges kimenet:
system_u:object_r:user_home_t:s0 /home/joska/Tervek
Folymatok esetén:
ps axZ
Lehetséges Kimenet:
LABEL PID TTY STAT TIME COMMAND system_u:system_r:init_t:s0 1 ? Ss 0:01 init [2] system_u:system_r:kernel_t:s0 1 ? S 0:00 [kthreadd] system_u:system_r:kernel_t:s0 1 ? S 0:00 [ksoftirqd/0] system_u:system_r:kernel_t:s0 1 ? S 0:00 [migration/0] ... system_u:system_r:postfix_master_to:s0 3410 ? S 0:00 [/usr/lib/postfix/master ...
Irodalom
- http://www.crypt.gen.nz/papers/selinux_introduction.html (SELinux bemutatás)
- https://www.wzdftpd.net/docs/selinux/ (Debian SELinux Handbook)