A kiválasztott változat és az aktuális verzió közötti különbségek a következők.
— |
oktatas:linux:selinux [2019/08/16 20:15] (aktuális) admin létrehozva |
||
---|---|---|---|
Sor 1: | Sor 1: | ||
+ | [[oktatas:linux|< Linux]] | ||
+ | ====== SELinux ====== | ||
+ | |||
+ | * **Szerző:** Sallai András | ||
+ | * Copyright (c) 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 [[http://www.rsbac.org|RSBAC]] és/vagy a [[http://www.grsecurity.net|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: | ||
+ | <code bash> | ||
+ | apt-get install selinux-basics selinux-policy-default | ||
+ | </code> | ||
+ | |||
+ | |||
+ | 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: | ||
+ | <code bash> | ||
+ | selinux-activate | ||
+ | </code> | ||
+ | |||
+ | Ehhez hasonló sorokat láthatunk: | ||
+ | <code> | ||
+ | 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. | ||
+ | </code> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | A beállítások újraindítás után lesznek érvényesek: | ||
+ | <code bash> | ||
+ | reboot | ||
+ | </code> | ||
+ | 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: | ||
+ | <code bash> | ||
+ | semodule -l | ||
+ | </code> | ||
+ | |||
+ | ===== Alapbeállítások ===== | ||
+ | |||
+ | |||
+ | Az enforce mód engedélyezése: | ||
+ | <code bash> | ||
+ | setenforce 1 | ||
+ | </code> | ||
+ | |||
+ | Az enforce mód kikapcsolása: | ||
+ | <code bash> | ||
+ | setenforce 0 | ||
+ | </code> | ||
+ | |||
+ | |||
+ | Az enforcemód lekérdezése: | ||
+ | <code bash> | ||
+ | getenforce | ||
+ | </code> | ||
+ | |||
+ | Lehetséges eredmények: | ||
+ | | Permissive | Enforcing | | ||
+ | | Enforcemód kikapcsolva | Enforcemód bekapcsolva | | ||
+ | |||
+ | |||
+ | |||
+ | A SELinux kikapcsolása | ||
+ | |||
+ | <code bash> | ||
+ | nano /etc/selinux/config | ||
+ | </code> | ||
+ | |||
+ | |||
+ | Az állományban beállítjuk: | ||
+ | <code ini> | ||
+ | SELINUX=disabled | ||
+ | </code> | ||
+ | |||
+ | Futtatom a setenforce parancsot a kívánt paraméterrel: | ||
+ | <code bash> | ||
+ | setenforce 0 | ||
+ | </code> | ||
+ | |||
+ | ===== 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: | ||
+ | <code> | ||
+ | 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 | ||
+ | ... | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ===== Irodalom ===== | ||
+ | |||
+ | * http://selinuxproject.org | ||
+ | * http://wiki.debian.org/SELinux | ||
+ | * https://www.wzdftpd.net/docs/selinux | ||
+ | * http://www.lurking-grue.org/gettingstarted_newselinuxHOWTO.html | ||
+ | * http://www.crypt.gen.nz/papers/selinux_introduction.html | ||
+ | * http://www.ibm.com/developerworks/linux/library/l-rbac-selinux/ | ||
+ | * http://www.crypt.gen.nz/selinux/faq.html (FAQ) | ||
+ | * http://www.crypt.gen.nz/papers/selinux_introduction.html (SELinux bemutatás) | ||
+ | * http://debian-handbook.info/browse/stable/sect.selinux.html | ||
+ | |||
+ | |||
+ | * http://www.freetechbooks.com/efiles/selinuxnotebook/The_SELinux_Notebook_Volume_1_The_Foundations.pdf | ||
+ | * https://www.wzdftpd.net/docs/selinux/ (Debian SELinux Handbook) | ||
+ | * http://docs.fedoraproject.org/en-US/Fedora/13/html/Security-Enhanced_Linux/sect-Security-Enhanced_Linux-Introduction-SELinux_on_Other_Operating_Systems.html | ||
+ | * http://www.gentoo.org/proj/en/hardened/selinux/selinux-handbook.xml?part=1&chap=1 |