ΠΠ΄Π½Π° ΠΎΠ΄ ΠΏΡΠΈΡΠΈΠ½ΠΈΡΠ΅ Π·Π° ΠΎΠ³ΡΠΎΠΌΠ½ΠΈΠΎΡ ΡΡΠΏΠ΅Ρ
Π½Π° Linux OS Π½Π° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ, ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΡΡΠ΅Π΄ΠΈ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΈ Π΅ ΠΏΡΠΈΠ»ΠΈΡΠ½ΠΎ Π²ΠΈΡΠΎΠΊΠΈΠΎΡ ΡΡΠ΅ΠΏΠ΅Π½ Π½Π° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡ Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ, ΠΏΠΎΠ²ΡΠ·Π°Π½ΠΈΡΠ΅ ΡΡΠ»ΡΠ³ΠΈ ΠΈ Π°ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠΎ Π°ΠΊΠΎ
ΠΠΎΠ·Π°Π΄ΠΈΠ½Π° Π½Π° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ½ΠΈΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π½Π° Linux ΠΈ SELinux
ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½ Linux Π·Π° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡ Π΅ Π·Π±ΠΈΡ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° ΠΏΡΠΈΡΡΠ°ΠΏ Π±Π°Π·ΠΈΡΠ°Π½ΠΈ Π½Π° Π·Π°Π΄ΠΎΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΈ ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π° ΠΏΡΠΈΡΡΠ°ΠΏ Π·Π°ΡΠ½ΠΎΠ²Π°Π½ΠΈ Π½Π° ΡΠ»ΠΎΠ³ΠΈ Π·Π° Π·Π°ΡΡΠΈΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ Π½Π° Linux ΠΎΠ΄ ΠΏΠΎΡΠ΅Π½ΡΠΈΡΠ°Π»Π½ΠΈ Π·Π°ΠΊΠ°Π½ΠΈ ΠΈ Π·Π° ΠΊΠΎΡΠ΅Π³ΠΈΡΠ°ΡΠ΅ Π½Π° Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠΈΡΠ΅ Π½Π° ΠΠΈΡΠΊΡΠ΅ΡΠΈΠΎΠ½Π°ΡΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° ΠΏΡΠΈΡΡΠ°ΠΏ (DAC), ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π°Π»Π½ΠΈΠΎΡ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ΅Π½ ΡΠΈΡΡΠ΅ΠΌ Unix. ΠΡΠΎΠ΅ΠΊΡΠΎΡ ΠΏΠΎΡΠ΅ΠΊΠ½ΡΠ²Π° ΠΎΠ΄ ΡΡΡΠΎΠ±Π°ΡΠ° Π½Π° Π°ΠΌΠ΅ΡΠΈΠΊΠ°Π½ΡΠΊΠ°ΡΠ° ΠΠ³Π΅Π½ΡΠΈΡΠ° Π·Π° Π½Π°ΡΠΈΠΎΠ½Π°Π»Π½Π° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΡ, Π° Π±Π΅ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΡΠ°Π·Π²ΠΈΠ΅Π½ Π³Π»Π°Π²Π½ΠΎ ΠΎΠ΄ ΠΈΠ·Π²Π΅Π΄ΡΠ²Π°ΡΠΈΡΠ΅ Secure Computing Corporation ΠΈ MITER, ΠΊΠ°ΠΊΠΎ ΠΈ Π³ΠΎΠ»Π΅ΠΌ Π±ΡΠΎΡ ΠΈΡΡΡΠ°ΠΆΡΠ²Π°ΡΠΊΠΈ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠΈΠΈ.
ΠΠΈΠ½ΡΠΊΡ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ
ΠΠΈΠ½ΡΡ Π’ΠΎΡΠ²Π°Π»Π΄Ρ Π΄Π°Π΄Π΅ Π³ΠΎΠ»Π΅ΠΌ Π±ΡΠΎΡ ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠΈ Π·Π° Π½ΠΎΠ²ΠΈΡΠ΅ ΡΠ»ΡΡΡΠ²Π°ΡΠ° Π½Π° NSA, ΡΠ°ΠΊΠ° ΡΡΠΎ ΡΠΈΠ΅ Π±ΠΈ ΠΌΠΎΠΆΠ΅Π»Π΅ Π΄Π° Π±ΠΈΠ΄Π°Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π²ΠΎ Π³Π»Π°Π²Π½ΠΈΠΎΡ ΠΊΠ΅ΡΠ½Π΅Π» Π½Π° ΠΠΈΠ½ΡΠΊΡ. Π’ΠΎΡ ΠΎΠΏΠΈΡΠ° ΠΎΠΏΡΡΠ° ΡΡΠ΅Π΄ΠΈΠ½Π°, ΡΠΎ Π·Π±ΠΈΡ Π½Π° ΠΏΡΠ΅ΡΡΠ΅ΡΠ½ΡΠ²Π°ΡΠΈ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈΡΠ΅ ΡΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΈ ΠΈ Π·Π±ΠΈΡ Π½Π° ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ Π·Π°ΡΡΠΈΡΠ½ΠΈ ΠΏΠΎΠ»ΠΈΡΠ° Π²ΠΎ ΡΡΡΡΠΊΡΡΡΠΈΡΠ΅ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ Π·Π° ΡΠΊΠ»Π°Π΄ΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΈΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΈ. ΠΠ²Π°Π° ΡΡΠ΅Π΄ΠΈΠ½Π° ΠΏΠΎΡΠΎΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ ΠΎΠ΄ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΡΠΈΡΠ°Π°Ρ Π·Π° Π΄Π° ΡΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ° ΠΊΠΎΡ Π±ΠΈΠ»ΠΎ ΠΏΠΎΡΠ°ΠΊΡΠ²Π°Π½ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ΅Π½ ΠΌΠΎΠ΄Π΅Π». LSM ΡΠ΅Π»ΠΎΡΠ½ΠΎ Π²Π»Π΅Π·Π΅ Π²ΠΎ ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ Linux v2.6 Π²ΠΎ 2003 Π³ΠΎΠ΄ΠΈΠ½Π°.
Π Π°ΠΌΠΊΠ°ΡΠ° LSM Π²ΠΊΠ»ΡΡΡΠ²Π° Π·Π°ΡΡΠΈΡΠ½ΠΈ ΠΏΠΎΠ»ΠΈΡΠ° Π²ΠΎ ΡΡΡΡΠΊΡΡΡΠΈΡΠ΅ Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΈ ΠΏΠΎΠ²ΠΈΡΠΈ Π΄ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈ Π·Π° ΠΏΡΠ΅ΡΡΠ΅ΡΠ½ΡΠ²Π°ΡΠ΅ Π½Π° ΠΊΡΠΈΡΠΈΡΠ½ΠΈΡΠ΅ ΡΠΎΡΠΊΠΈ Π²ΠΎ ΠΊΠΎΠ΄ΠΎΡ Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ Π·Π° Π΄Π° ΡΠ΅ ΠΌΠ°Π½ΠΈΠΏΡΠ»ΠΈΡΠ° ΡΠΎ Π½ΠΈΠ² ΠΈ Π΄Π° ΡΠ΅ ΠΈΠ·Π²ΡΡΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° ΠΏΡΠΈΡΡΠ°ΠΏ. ΠΡΡΠΎ ΡΠ°ΠΊΠ°, Π΄ΠΎΠ΄Π°Π²Π° ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π·Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ°ΡΠ΅ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ. ΠΠ½ΡΠ΅ΡΡΠ΅ΡΡΠΎΡ /sys/kernel/security/lsm ΡΠΎΠ΄ΡΠΆΠΈ Π»ΠΈΡΡΠ° Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ. LSM ΠΊΡΠΊΠΈΡΠ΅ ΡΠ΅ Π·Π°ΡΡΠ²Π°Π½ΠΈ Π²ΠΎ ΡΠΏΠΈΡΠΎΡΠΈ ΡΡΠΎ ΡΠ΅ ΠΏΠΎΠ²ΠΈΠΊΡΠ²Π°Π°Ρ ΠΏΠΎ ΡΠ΅Π΄ΠΎΡΠ»Π΅Π΄ΠΎΡ Π½Π°Π²Π΅Π΄Π΅Π½ Π²ΠΎ CONFIG_LSM. ΠΠ΅ΡΠ°Π»Π½Π°ΡΠ° Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠ° Π·Π° ΠΊΡΠΊΠΈΡΠ΅ Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π²ΠΎ Π·Π°Π³Π»Π°Π²ΠΈΠ΅ΡΠΎ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ° include/linux/lsm_hooks.h.
ΠΠΎΡΡΠΈΡΡΠ΅ΠΌΠΎΡ LSM ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈ Π΄Π° ΡΠ΅ Π·Π°Π²ΡΡΠΈ ΡΠ΅Π»ΠΎΡΠ½Π°ΡΠ° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡΠ° Π½Π° SELinux ΡΠΎ ΠΈΡΡΠ°ΡΠ° Π²Π΅ΡΠ·ΠΈΡΠ° Π½Π° ΡΡΠ°Π±ΠΈΠ»Π½ΠΈΠΎΡ Linux ΠΊΠ΅ΡΠ½Π΅Π» v2.6. Π Π΅ΡΠΈΡΠΈ Π²Π΅Π΄Π½Π°Ρ, SELinux ΡΡΠ°Π½Π° Π΄Π΅ ΡΠ°ΠΊΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΠ΄ Π·Π° Π±Π΅Π·Π±Π΅Π΄Π½Π° ΠΎΠΊΠΎΠ»ΠΈΠ½Π° Π½Π° Linux ΠΈ Π±Π΅ΡΠ΅ Π²ΠΊΠ»ΡΡΠ΅Π½ Π²ΠΎ Π½Π°ΡΠΏΠΎΠΏΡΠ»Π°ΡΠ½ΠΈΡΠ΅ Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠΈ: RedHat Enterprise Linux, Fedora, Debian, Ubuntu.
ΠΠΎΠΈΠΌΠ½ΠΈΠΊ Π½Π° SELinux
- ΠΠ΄Π΅Π½ΡΠΈΡΠ΅Ρ β ΠΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ Π½Π° SELinux Π½Π΅ Π΅ ΠΈΡΡ ΠΊΠ°ΠΊΠΎ Π²ΠΎΠΎΠ±ΠΈΡΠ°Π΅Π½ΠΈΠΎΡ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈ ID Π½Π° Unix/Linux; ΡΠΈΠ΅ ΠΌΠΎΠΆΠ°Ρ Π΄Π° ΠΊΠΎΠ΅Π³Π·ΠΈΡΡΠΈΡΠ°Π°Ρ Π½Π° ΠΈΡΡΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ, Π½ΠΎ ΡΠ΅ ΡΠΎΡΠ΅ΠΌΠ° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ Π²ΠΎ ΡΡΡΡΠΈΠ½Π°. Π‘Π΅ΠΊΠΎΡΠ° ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½Π° ΡΠΌΠ΅ΡΠΊΠ° Π½Π° ΠΠΈΠ½ΡΠΊΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΎΠ΄Π³ΠΎΠ²Π°ΡΠ° Π½Π° Π΅Π΄Π½Π° ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ Π²ΠΎ SELinux. ΠΠ΄Π΅Π½ΡΠΈΡΠ΅ΡΠΎΡ SELinux Π΅ Π΄Π΅Π» ΠΎΠ΄ ΡΠ΅Π»ΠΎΠΊΡΠΏΠ½ΠΈΠΎΡ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ΅Π½ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡ ΠΎΠ΄ΡΠ΅Π΄ΡΠ²Π° Π½Π° ΠΊΠΎΠΈ Π΄ΠΎΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅ ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌ ΡΠ΅ ΠΏΡΠΈΠ΄ΡΡΠΆΠΈΡΠ΅.
- Π΄ΠΎΠΌΠ΅Π½ΠΈ - ΠΠΎ SELinux, Π΄ΠΎΠΌΠ΅Π½ΠΎΡ Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π½Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ, Ρ.Π΅. ΠΏΡΠΎΡΠ΅Ρ. ΠΠΎΠΌΠ΅Π½ΠΎΡ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ Π³ΠΎ ΠΎΠ΄ΡΠ΅Π΄ΡΠ²Π° ΠΏΡΠΈΡΡΠ°ΠΏΠΎΡ ΡΡΠΎ Π³ΠΎ ΠΈΠΌΠ° ΠΏΡΠΎΡΠ΅ΡΠΎΡ. ΠΠΎΠΌΠ΅Π½ΠΎΡ Π²ΠΎ ΠΎΡΠ½ΠΎΠ²Π° Π΅ ΡΠΏΠΈΡΠΎΠΊ Π½Π° ΡΠΎΠ° ΡΡΠΎ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ ΠΌΠΎΠΆΠ°Ρ Π΄Π° Π½Π°ΠΏΡΠ°Π²Π°Ρ ΠΈΠ»ΠΈ ΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π½Π°ΠΏΡΠ°Π²ΠΈ Π΅Π΄Π΅Π½ ΠΏΡΠΎΡΠ΅Ρ ΡΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΈΠΏΠΎΠ²ΠΈ. ΠΠ΅ΠΊΠΎΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΈ ΡΠ΅ sysadm_t Π·Π° ΡΠΈΡΡΠ΅ΠΌΡΠΊΠ° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΡΠ° ΠΈ user_t ΠΊΠΎΡ Π΅ Π½ΠΎΡΠΌΠ°Π»Π΅Π½ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠ°Π½ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΊΠΈ Π΄ΠΎΠΌΠ΅Π½. Π‘ΠΈΡΡΠ΅ΠΌΠΎΡ init ΡΠ°Π±ΠΎΡΠΈ Π²ΠΎ Π΄ΠΎΠΌΠ΅Π½ΠΎΡ init_t, Π° ΠΈΠΌΠ΅Π½ΡΠ²Π°Π½ΠΈΠΎΡ ΠΏΡΠΎΡΠ΅Ρ ΡΠ°Π±ΠΎΡΠΈ Π²ΠΎ Π΄ΠΎΠΌΠ΅Π½ΠΎΡ named_t.
- Π£Π»ΠΎΠ³ΠΈ β Π¨ΡΠΎ ΡΠ»ΡΠΆΠΈ ΠΊΠ°ΠΊΠΎ ΠΏΠΎΡΡΠ΅Π΄Π½ΠΈΠΊ ΠΏΠΎΠΌΠ΅ΡΡ Π΄ΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΈ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ Π½Π° SELinux. Π£Π»ΠΎΠ³ΠΈΡΠ΅ ΠΎΠ΄ΡΠ΅Π΄ΡΠ²Π°Π°Ρ Π΄ΠΎ ΠΊΠΎΠΈ Π΄ΠΎΠΌΠ΅Π½ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΈΠΏΠ°ΡΠ° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ ΠΈ Π΄ΠΎ ΠΊΠΎΠΈ ΡΠΈΠΏΠΎΠ²ΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΈΡΡΠ°ΠΏΠΈ. ΠΠ²ΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·Π°ΠΌ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° ΠΏΡΠΈΡΡΠ°ΠΏ ΡΠ° ΡΠΏΡΠ΅ΡΡΠ²Π° Π·Π°ΠΊΠ°Π½Π°ΡΠ° ΠΎΠ΄ Π½Π°ΠΏΠ°Π΄ΠΈ Π·Π° Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈΡΠ΅. Π£Π»ΠΎΠ³ΠΈΡΠ΅ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ°Π½ΠΈ Π²ΠΎ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ½ΠΈΠΎΡ ΠΌΠΎΠ΄Π΅Π» Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° ΠΏΡΠΈΡΡΠ°ΠΏ Π²ΡΠ· ΠΎΡΠ½ΠΎΠ²Π° Π½Π° ΡΠ»ΠΎΠ³ΠΈ (RBAC) ΡΡΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π²ΠΎ SELinux.
- ΠΠΈΠ΄ΠΎΠ²ΠΈ β ΠΡΡΠΈΠ±ΡΡ Type Enforcement list ΡΡΠΎ ΡΠ΅ Π΄ΠΎΠ΄Π΅Π»ΡΠ²Π° Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΈ ΠΎΠ΄ΡΠ΅Π΄ΡΠ²Π° ΠΊΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΌΡ ΠΏΡΠΈΡΡΠ°ΠΏΠΈ. Π‘Π»ΠΈΡΠ½ΠΎ Π½Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠΈΡΠ°ΡΠ° Π½Π° Π΄ΠΎΠΌΠ΅Π½ΠΎΡ, ΠΎΡΠ²Π΅Π½ ΡΡΠΎ Π΄ΠΎΠΌΠ΅Π½ΠΎΡ ΡΠ΅ ΠΎΠ΄Π½Π΅ΡΡΠ²Π° Π½Π° ΠΏΡΠΎΡΠ΅Ρ, Π° ΡΠΈΠΏΠΎΡ ΡΠ΅ ΠΎΠ΄Π½Π΅ΡΡΠ²Π° Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΈ ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΠ΅ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΈ, Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ, ΠΏΡΠΈΠΊΠ»ΡΡΠΎΡΠΈ ΠΈΡΠ½.
- ΠΡΠ΅Π΄ΠΌΠ΅ΡΠΈ ΠΈ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠΈ - ΠΡΠΎΡΠ΅ΡΠΈΡΠ΅ ΡΠ΅ ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠΈ ΠΈ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π°Π°Ρ Π²ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅Π½ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈΠ»ΠΈ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ΅Π½ Π΄ΠΎΠΌΠ΅Π½. Π Π΅ΡΡΡΡΠΈ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ: Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ, Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡΠΌΠΈ, ΡΠΎΠΊΠ΅ΡΠΈ ΠΈΡΠ½., ΡΠ΅ ΠΎΠ±ΡΠ΅ΠΊΡΠΈ Π½Π° ΠΊΠΎΠΈ ΠΈΠΌ Π΅ Π΄ΠΎΠ΄Π΅Π»Π΅Π½ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ ΡΠΈΠΏ, ΡΠΎ Π΄ΡΡΠ³ΠΈ Π·Π±ΠΎΡΠΎΠ²ΠΈ, Π½ΠΈΠ²ΠΎ Π½Π° ΠΏΡΠΈΠ²Π°ΡΠ½ΠΎΡΡ.
- ΠΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π½Π° SELinux β SELinux ΠΊΠΎΡΠΈΡΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π·Π° Π·Π°ΡΡΠΈΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ. ΠΠΎΠ»ΠΈΡΠΈΠΊΠ°ΡΠ° SELinux Π³ΠΎ Π΄Π΅ΡΠΈΠ½ΠΈΡΠ° ΠΏΡΠΈΡΡΠ°ΠΏΠΎΡ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ Π΄ΠΎ ΡΠ»ΠΎΠ³ΠΈ, ΡΠ»ΠΎΠ³ΠΈ Π΄ΠΎ Π΄ΠΎΠΌΠ΅Π½ΠΈ ΠΈ Π΄ΠΎΠΌΠ΅Π½ΠΈ Π΄ΠΎ ΡΠΈΠΏΠΎΠ²ΠΈ. ΠΡΠ²ΠΎ, ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ Π΅ ΠΎΠ²Π»Π°ΡΡΠ΅Π½ Π΄Π° Π΄ΠΎΠ±ΠΈΠ΅ ΡΠ»ΠΎΠ³Π°, Π° ΠΏΠΎΡΠΎΠ° ΡΠ»ΠΎΠ³Π°ΡΠ° Π΅ ΠΎΠ²Π»Π°ΡΡΠ΅Π½ Π΄Π° ΠΏΡΠΈΡΡΠ°ΠΏΡΠ²Π° Π΄ΠΎ Π΄ΠΎΠΌΠ΅Π½ΠΈ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, Π΄ΠΎΠΌΠ΅Π½ΠΎΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° ΠΏΡΠΈΡΡΠ°ΠΏ ΡΠ°ΠΌΠΎ Π΄ΠΎ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½ΠΈ ΡΠΈΠΏΠΎΠ²ΠΈ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡΠΈ.
LSM ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° SELinux
Π ΠΏΠΎΠΊΡΠ°Ρ ΠΈΠΌΠ΅ΡΠΎ, LSM-ΠΎΠ²ΠΈΡΠ΅ Π³Π΅Π½Π΅ΡΠ°Π»Π½ΠΎ Π½Π΅ ΡΠ΅ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π½Π° Linux ΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΡΠΈΡΠ°Π°Ρ. Π‘Π΅ΠΏΠ°ΠΊ, ΠΊΠ°ΠΊΠΎ ΠΈ SELinux, ΡΠΎΡ Π΅ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½ Π²ΠΎ ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ. Π‘Π΅ΠΊΠΎΡΠ° ΠΏΡΠΎΠΌΠ΅Π½Π° Π½Π° ΠΈΠ·Π²ΠΎΡΠ½ΠΈΠΎΡ ΠΊΠΎΠ΄ Π½Π° LSM Π±Π°ΡΠ° Π½ΠΎΠ²Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡΠ° Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ. Π‘ΠΎΠΎΠ΄Π²Π΅ΡΠ½Π°ΡΠ° ΠΎΠΏΡΠΈΡΠ° ΠΌΠΎΡΠ° Π΄Π° Π±ΠΈΠ΄Π΅ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½Π° Π²ΠΎ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈΡΠ΅ Π½Π° ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ, ΠΈΠ½Π°ΠΊΡ LSM-ΠΊΠΎΠ΄ΠΎΡ Π½Π΅ΠΌΠ° Π΄Π° ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ° ΠΏΠΎ ΠΏΠΎΠ΄ΠΈΠ³Π°ΡΠ΅ΡΠΎ. ΠΠΎ, Π΄ΡΡΠΈ ΠΈ Π²ΠΎ ΠΎΠ²ΠΎΡ ΡΠ»ΡΡΠ°Ρ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠΈ ΡΠΎ ΠΎΠΏΡΠΈΡΠ°ΡΠ° Π·Π° ΠΏΠΎΠ΄ΠΈΠ³Π½ΡΠ²Π°Ρ Π½Π° ΠΠ‘.
ΠΡΠ°ΠΊ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° LSM
LSM Π΅ ΠΎΠΏΡΠ΅ΠΌΠ΅Π½ ΡΠΎ ΠΊΡΠΊΠΈ Π²ΠΎ ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ Π½Π° ΡΠ°Π΄ΡΠΎΡΠΎ ΠΊΠΎΠΈ ΠΌΠΎΠΆΠ°Ρ Π΄Π° Π±ΠΈΠ΄Π°Ρ ΡΠ΅Π»Π΅Π²Π°Π½ΡΠ½ΠΈ Π·Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ. ΠΠ΄Π½Π° ΠΎΠ΄ Π³Π»Π°Π²Π½ΠΈΡΠ΅ ΠΊΠ°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° LSM Π΅ ΡΠΎΠ° ΡΡΠΎ ΡΠΈΠ΅ ΡΠ΅ Π½Π°ΡΠ΅Π΄Π΅Π½ΠΈ. Π’Π°ΠΊΠ°, ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΈΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΡΓ¨ ΡΡΡΠ΅ ΡΠ΅ Π²ΡΡΠ°Ρ, Π° ΡΠ΅ΠΊΠΎΡ ΡΠ»ΠΎΡ Π½Π° LSM ΡΠ°ΠΌΠΎ Π΄ΠΎΠ΄Π°Π²Π° Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈ ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ»ΠΈ. Π’ΠΎΠ° Π·Π½Π°ΡΠΈ Π΄Π΅ΠΊΠ° Π·Π°Π±ΡΠ°Π½Π°ΡΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΡΠ°ΡΠΈ Π½Π°Π·Π°Π΄. ΠΠ²Π° Π΅ ΠΏΡΠΈΠΊΠ°ΠΆΠ°Π½ΠΎ Π½Π° ΡΠ»ΠΈΠΊΠ°ΡΠ°; Π°ΠΊΠΎ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΎΡ ΠΎΠ΄ ΡΡΡΠΈΠ½ΡΠΊΠΈΡΠ΅ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π½Π° DAC Π΅ Π½Π΅ΡΡΠΏΠ΅Ρ , ΡΠΎΠ³Π°Ρ ΠΌΠ°ΡΠ΅ΡΠΈΡΠ°ΡΠ° Π½Π΅ΠΌΠ° Π΄Π° ΡΡΠΈΠ³Π½Π΅ Π½ΠΈ Π΄ΠΎ LSM ΠΊΡΠΊΠΈΡΠ΅.
SELinux ΡΠ° ΠΏΡΠΈΡΠ°ΡΠ° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ½Π°ΡΠ° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Flask Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ Π·Π° ΠΈΡΡΡΠ°ΠΆΡΠ²Π°ΡΠ΅ Fluke, ΠΎΡΠΎΠ±Π΅Π½ΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΡ Π½Π° Π½Π°ΡΠΌΠ°Π»Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠ°. Π‘ΡΡΡΠΈΠ½Π°ΡΠ° Π½Π° ΠΎΠ²ΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡ, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ ΡΡΠ³Π΅ΡΠΈΡΠ° Π½Π΅Π³ΠΎΠ²ΠΎΡΠΎ ΠΈΠΌΠ΅, Π΅ Π΄Π° ΠΌΡ ΡΠ΅ Π΄ΠΎΠ΄Π΅Π»Π°Ρ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ ΠΈΠ»ΠΈ Π΄Π° ΡΠ΅ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°Ρ ΡΠ°ΠΌΠΎ ΠΎΠ½ΠΈΠ΅ ΠΏΡΠ°Π²Π° ΠΊΠΎΠΈ ΡΠ΅ Π½Π΅ΠΎΠΏΡ ΠΎΠ΄Π½ΠΈ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΠ»Π°Π½ΠΈΡΠ°Π½ΠΈΡΠ΅ Π΄Π΅ΡΡΡΠ²Π°. ΠΠ²ΠΎΡ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ° ΡΠΎ ΡΠΏΠΎΡΡΠ΅Π±Π° Π½Π° ΠΏΠΈΡΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΏΡΠΈΠ½ΡΠ΄Π΅Π½ ΠΏΡΠΈΡΡΠ°ΠΏ, ΡΠ°ΠΊΠ° ΡΡΠΎ ΠΊΠΎΠ½ΡΡΠΎΠ»Π°ΡΠ° Π½Π° ΠΏΡΠΈΡΡΠ°ΠΏΠΎΡ Π²ΠΎ SELinux ΡΠ΅ Π·Π°ΡΠ½ΠΎΠ²Π° Π½Π° ΠΌΠΎΠ΄Π΅Π»ΠΎΡ ΡΠΈΠΏ Π΄ΠΎΠΌΠ΅Π½ =>.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΈΡΡΠ²Π°ΡΠ΅ΡΠΎ ΡΠΎ ΠΏΡΠΈΠ½ΡΠ΄Π΅Π½ ΠΏΡΠΈΡΡΠ°ΠΏ, SELinux ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³Ρ ΠΏΠΎΠ³ΠΎΠ»Π΅ΠΌΠΈ ΡΠΏΠΎΡΠΎΠ±Π½ΠΎΡΡΠΈ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° ΠΏΡΠΈΡΡΠ°ΠΏ ΠΎΠ΄ ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π°Π»Π½ΠΈΠΎΡ ΠΌΠΎΠ΄Π΅Π» DAC ΡΡΠΎ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π²ΠΎ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΈΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠΈ Unix/Linux. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΠ΅ Π±ΡΠΎΡΠΎΡ Π½Π° ΠΌΡΠ΅ΠΆΠ½Π°ΡΠ° ΠΏΠΎΡΡΠ° ΡΠΎ ΠΊΠΎΡΠ° ΡΠ΅ ΡΠ΅ ΠΏΠΎΠ²ΡΠ·Π΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΡ ftp, Π΄Π° Π΄ΠΎΠ·Π²ΠΎΠ»ΠΈΡΠ΅ ΠΏΠΈΡΡΠ²Π°ΡΠ΅ ΠΈ ΠΌΠ΅Π½ΡΠ²Π°ΡΠ΅ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π²ΠΎ ΠΎΠ΄ΡΠ΅Π΄Π΅Π½Π° ΠΏΠ°ΠΏΠΊΠ°, Π½ΠΎ Π½Π΅ ΠΈ Π½ΠΈΠ²Π½ΠΎ Π±ΡΠΈΡΠ΅ΡΠ΅.
ΠΠ»Π°Π²Π½ΠΈΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΈ Π½Π° SELinux ΡΠ΅:
- Π‘Π΅ΡΠ²Π΅Ρ Π·Π° ΡΠΏΡΠΎΠ²Π΅Π΄ΡΠ²Π°ΡΠ΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ β ΠΠ»Π°Π²Π½ΠΈΠΎΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·Π°ΠΌ Π·Π° ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΈΡΠ°ΡΠ΅ Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π° Π½Π° ΠΏΡΠΈΡΡΠ°ΠΏ.
- ΠΠ°Π·Π° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π·Π° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ½ΠΈΡΠ΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ.
- ΠΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΡΠ° ΡΠΎ ΠΏΡΠ΅ΡΡΠ΅ΡΠ½ΡΠ²Π°ΡΠΎΡ Π½Π° Π½Π°ΡΡΠ°Π½ΠΈ LSM.
- Selinuxfs - ΠΡΠ΅Π²Π΄ΠΎ-FS, ΠΈΡΡΠΎ ΠΊΠ°ΠΊΠΎ /proc ΠΈ ΠΌΠΎΠ½ΡΠΈΡΠ°Π½ Π²ΠΎ /sys/fs/selinux. ΠΠΈΠ½Π°ΠΌΠΈΡΠ½ΠΎ Π½Π°ΡΠ΅Π»Π΅Π½ΠΎ ΡΠΎ ΠΊΠ΅ΡΠ½Π΅Π»ΠΎΡ Π½Π° Linux ΠΏΡΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ ΠΈ ΡΠΎΠ΄ΡΠΆΠΈ Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ ΡΡΠΎ ΡΠΎΠ΄ΡΠΆΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π·Π° ΡΡΠ°ΡΡΡΠΎΡ Π½Π° SELinux.
- ΠΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ Π²Π΅ΠΊΡΠΎΡΡΠΊΠΈΠΎΡ ΠΊΠ΅Ρ β ΠΠΎΠΌΠΎΡΠ΅Π½ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·Π°ΠΌ Π·Π° Π·Π³ΠΎΠ»Π΅ΠΌΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΠ²Π½ΠΎΡΡΠ°.
ΠΠ°ΠΊΠΎ ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ° SELinux
Π‘Π΅ΡΠΎ ΡΠΎΠ° ΡΡΠ½ΠΊΡΠΈΠΎΠ½ΠΈΡΠ° Π²Π°ΠΊΠ°.
- ΠΠ΄ΡΠ΅Π΄Π΅Π½ ΡΡΠ±ΡΠ΅ΠΊΡ, Π²ΠΎ ΡΠ΅ΡΠΌΠΈΠ½ΠΈ SELinux, Π²ΡΡΠΈ Π΄ΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ Π΄Π΅ΡΡΡΠ²ΠΎ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ ΠΏΠΎ ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° DAC, ΠΊΠ°ΠΊΠΎ ΡΡΠΎ Π΅ ΠΏΡΠΈΠΊΠ°ΠΆΠ°Π½ΠΎ Π½Π° Π³ΠΎΡΠ½Π°ΡΠ° ΡΠ»ΠΈΠΊΠ°. ΠΠ²Π° Π±Π°ΡΠ°ΡΠ΅ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠ° ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΏΡΠ΅ΡΡΠ΅ΡΠ½ΡΠ²Π°ΡΠΎΡ Π½Π° Π½Π°ΡΡΠ°Π½ΠΈ LSM.
- ΠΡΡΠ°ΠΌΡ, Π±Π°ΡΠ°ΡΠ΅ΡΠΎ, Π·Π°Π΅Π΄Π½ΠΎ ΡΠΎ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ½ΠΈΠΎΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅ΡΠΎΡ ΠΈ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΡ, ΡΠ΅ ΠΏΡΠ΅Π½Π΅ΡΡΠ²Π° Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΎΡ SELinux Abstraction and Hook Logic, ΠΊΠΎΡ Π΅ ΠΎΠ΄Π³ΠΎΠ²ΠΎΡΠ΅Π½ Π·Π° ΠΈΠ½ΡΠ΅ΡΠ°ΠΊΡΠΈΡΠ° ΡΠΎ LSM.
- ΠΡΠ³Π°Π½ΠΎΡ Π·Π° ΠΎΠ΄Π»ΡΡΡΠ²Π°ΡΠ΅ Π·Π° ΠΏΡΠΈΡΡΠ°ΠΏΠΎΡ Π½Π° ΡΡΠ±ΡΠ΅ΠΊΡΠΎΡ Π΄ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠΎΡ Π΅ ΡΠ΅ΡΠ²Π΅ΡΠΎΡ Π·Π° ΡΠΏΡΠΎΠ²Π΅Π΄ΡΠ²Π°ΡΠ΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΠΈ ΡΠΎΡ Π΄ΠΎΠ±ΠΈΠ²Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΎΠ΄ SELinux AnHL.
- ΠΠ° Π΄Π° Π΄ΠΎΠ½Π΅ΡΡΠ²Π° ΠΎΠ΄Π»ΡΠΊΠΈ Π·Π° ΠΏΡΠΈΡΡΠ°ΠΏ ΠΈΠ»ΠΈ ΠΎΠ΄Π±ΠΈΠ²Π°ΡΠ΅, ΡΠ΅ΡΠ²Π΅ΡΠΎΡ Π·Π° ΡΠΏΡΠΎΠ²Π΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ ΡΠ΅ ΡΠ²ΡΡΡΠ²Π° ΠΊΠΎΠ½ ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠΎΡ Π·Π° ΠΊΠ΅ΡΠΈΡΠ°ΡΠ΅ ΡΠΎ Π²Π΅ΠΊΡΠΎΡΡΠΊΠΈ ΠΊΠ΅Ρ Π·Π° ΠΏΡΠΈΡΡΠ°ΠΏ (AVC) Π·Π° Π½Π°ΡΠΊΠΎΡΠΈΡΡΠ΅Π½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°.
- ΠΠΊΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π·Π° ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΎΡΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ Π½Π΅ ΡΠ΅ Π½Π°ΡΠ΄Π΅ Π²ΠΎ ΠΊΠ΅ΡΠΎΡ, ΡΠΎΠ³Π°Ρ Π±Π°ΡΠ°ΡΠ΅ΡΠΎ ΡΠ΅ ΠΏΡΠ΅Π½Π΅ΡΡΠ²Π° Π΄ΠΎ Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ Π·Π° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ½ΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ.
- Π Π΅Π·ΡΠ»ΡΠ°ΡΠΎΡ ΠΎΠ΄ ΠΏΡΠ΅Π±Π°ΡΡΠ²Π°ΡΠ΅ΡΠΎ ΠΎΠ΄ Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ ΠΈ AVC ΡΠ΅ Π²ΡΠ°ΡΠ° Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠΎΡ Π·Π° ΡΠΏΡΠΎΠ²Π΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ.
- ΠΠΊΠΎ ΠΏΡΠΎΠ½Π°ΡΠ΄Π΅Π½Π°ΡΠ° ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠ° ΡΠ΅ ΡΠΎΠ²ΠΏΠ°ΡΠ° ΡΠΎ Π±Π°ΡΠ°Π½ΠΎΡΠΎ Π΄Π΅ΡΡΡΠ²ΠΎ, ΡΠΎΠ³Π°Ρ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠ°ΡΠ° Π΅ Π΄ΠΎΠ·Π²ΠΎΠ»Π΅Π½Π°. ΠΠΎ ΡΠΏΡΠΎΡΠΈΠ²Π½ΠΎ, ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡΠ°ΡΠ° Π΅ Π·Π°Π±ΡΠ°Π½Π΅ΡΠ°.
Π£ΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΏΠΎΡΡΠ°Π²ΠΊΠΈΡΠ΅ Π½Π° SELinux
SELinux ΡΠ°Π±ΠΎΡΠΈ Π²ΠΎ Π΅Π΄Π΅Π½ ΠΎΠ΄ ΡΡΠΈΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΠΈ:
- Π‘ΠΏΡΠΎΠ²Π΅Π΄ΡΠ²Π°ΡΠ΅ - Π‘ΡΡΠΎΠ³ΠΎ ΠΏΡΠΈΠ΄ΡΠΆΡΠ²Π°ΡΠ΅ ΠΊΠΎΠ½ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ½ΠΈΡΠ΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ.
- ΠΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ - ΠΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ Π΅ ΠΏΡΠ΅ΠΊΡΡΡΠ²Π°ΡΠ΅ Π½Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΡΠ²Π°ΡΠ°ΡΠ°; ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½Π°ΡΠ° Π±Π΅Π»Π΅ΡΠΊΠ° Π΅ Π½Π°ΠΏΡΠ°Π²Π΅Π½Π° Π²ΠΎ ΡΠΏΠΈΡΠ°Π½ΠΈΠ΅ΡΠΎ.
- ΠΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΎ - ΠΠ΅Π·Π±Π΅Π΄Π½ΠΎΡΠ½ΠΈΡΠ΅ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π½Π΅ ΡΠ΅ Π½Π° ΡΠΈΠ»Π°.
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ Π²ΠΎ ΠΊΠΎΡ ΡΠ΅ΠΆΠΈΠΌ Π΅ SELinux ΡΠΎ ΡΠ»Π΅Π΄Π½Π°Π²Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°.
[admin@server ~]$ getenforce
Permissive
ΠΡΠΎΠΌΠ΅Π½Π° Π½Π° ΡΠ΅ΠΆΠΈΠΌΠΎΡ ΠΏΡΠ΅Π΄ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅, Π½Π° ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΠΎΡΡΠ°Π²ΡΠ²Π°ΡΠ΅ Π½Π° Π½Π°ΠΌΠ΅ΡΠ½ΡΠ²Π°ΡΠ΅ ΠΈΠ»ΠΈ 1. ΠΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΈΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°Ρ ΠΎΠ΄Π³ΠΎΠ²Π°ΡΠ° Π½Π° Π½ΡΠΌΠ΅ΡΠΈΡΠΊΠΈΠΎΡ ΠΊΠΎΠ΄ 0.
[admin@server ~]$ setenfoce enforcing
[admin@server ~]$ setenfoce 1 #ΡΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅
ΠΠΎΠΆΠ΅ΡΠ΅ ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π΄Π° Π³ΠΎ ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΡΠ΅ΠΆΠΈΠΌΠΎΡ ΡΠΎ ΡΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ°:
[admin@server ~]$ cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
# enforcing - SELinux security policy is enforced.
# permissive - SELinux prints warnings instead of enforcing.
# disabled - No SELinux policy is loaded.
SELINUX=enforcing
# SELINUXTYPE= can take one of three values:
# targeted - Targeted processes are protected,
# minimum - Modification of targeted policy. Only selected processes are protected.
# mls - Multi Level Security protection.
SELINUXTYPE=ΡΠ΅Π»
Π Π°Π·Π»ΠΈΠΊΠ°ΡΠ° ΡΠΎ setenfoce Π΅ Π²ΠΎ ΡΠΎΠ° ΡΡΠΎ ΠΊΠΎΠ³Π° ΡΠ΅ ΡΠ΅ ΠΏΠΎΠ΄ΠΈΠ³Π½Π΅ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ, ΡΠ΅ΠΆΠΈΠΌΠΎΡ SELinux ΡΠ΅ ΡΠ΅ ΠΏΠΎΡΡΠ°Π²ΠΈ Π²ΠΎ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎΡΡ ΡΠΎ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠ° Π½Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°ΡΠΎΡ SELINUX Π²ΠΎ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠΊΠ°ΡΠ° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°. ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΎ, ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π²ΠΎ ΡΠΏΡΠΎΠ²Π΅Π΄ΡΠ²Π°ΡΠ΅ΡΠΎ <=> ΠΎΠ½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ΠΎ ΡΡΠ°ΠΏΡΠ²Π°Π°Ρ Π½Π° ΡΠΈΠ»Π° ΡΠ°ΠΌΠΎ ΡΠΎ ΡΡΠ΅Π΄ΡΠ²Π°ΡΠ΅ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠ°ΡΠ° /etc/selinux/config ΠΈ ΠΏΠΎ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°ΡΠ΅.
ΠΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ ΠΊΡΠ°ΡΠΎΠΊ ΠΈΠ·Π²Π΅ΡΡΠ°Ρ Π·Π° ΡΡΠ°ΡΡΡΠΎΡ:
[admin@server ~]$ sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: enforcing
Policy MLS status: enabled
Policy deny_unknown status: allowed
Max kernel policy version: 31
ΠΠ° Π΄Π° Π³ΠΈ Π²ΠΈΠ΄ΠΈΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΈΡΠ΅ Π½Π° SELinux, Π½Π΅ΠΊΠΎΠΈ ΡΡΠ°Π½Π΄Π°ΡΠ΄Π½ΠΈ Π°Π»Π°ΡΠΊΠΈ Π³ΠΎ ΠΊΠΎΡΠΈΡΡΠ°Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΠ°ΡΠΎΡ -Z.
[admin@server ~]$ ls -lZ /var/log/httpd/
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20200920
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20200927
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20201004
-rw-r--r--. root root system_u:object_r:httpd_log_t:s0 access_log-20201011
[admin@server ~]$ ps -u apache -Z
LABEL PID TTY TIME CMD
system_u:system_r:httpd_t:s0 2914 ? 00:00:04 httpd
system_u:system_r:httpd_t:s0 2915 ? 00:00:00 httpd
system_u:system_r:httpd_t:s0 2916 ? 00:00:00 httpd
system_u:system_r:httpd_t:s0 2917 ? 00:00:00 httpd
...
system_u:system_r:httpd_t:s0 2918 ? 00:00:00 httpd
ΠΠΎ ΡΠΏΠΎΡΠ΅Π΄Π±Π° ΡΠΎ Π½ΠΎΡΠΌΠ°Π»Π½ΠΈΠΎΡ ΠΈΠ·Π»Π΅Π· Π½Π° ls -l, ΠΈΠΌΠ° Π½Π΅ΠΊΠΎΠ»ΠΊΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ ΠΏΠΎΠ»ΠΈΡΠ° Π²ΠΎ ΡΠ»Π΅Π΄Π½ΠΈΠΎΠ² ΡΠΎΡΠΌΠ°Ρ:
<user>:<role>:<type>:<level>
ΠΠΎΡΠ»Π΅Π΄Π½ΠΎΡΠΎ ΠΏΠΎΠ»Π΅ ΠΎΠ·Π½Π°ΡΡΠ²Π° Π½Π΅ΡΡΠΎ ΠΊΠ°ΠΊΠΎ Π±Π΅Π·Π±Π΅Π΄Π½ΠΎΡΠ½Π° ΠΊΠ»Π°ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡΠ° ΠΈ ΡΠ΅ ΡΠΎΡΡΠΎΠΈ ΠΎΠ΄ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΡΠ° ΠΎΠ΄ Π΄Π²Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ:
- s0 - Π·Π½Π°ΡΠ΅ΡΠ΅, ΠΈΡΡΠΎ ΡΠ°ΠΊΠ° Π½Π°ΠΏΠΈΡΠ°Π½ΠΎ ΠΊΠ°ΠΊΠΎ ΠΈΠ½ΡΠ΅ΡΠ²Π°Π» ΠΎΠ΄ Π½ΠΈΡΠΊΠΎ-Π²ΠΈΡΠΎΠΊΠΎ Π½ΠΈΠ²ΠΎ
- c0, c1β¦ c1023 - ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΡΠ°.
ΠΡΠΎΠΌΠ΅Π½Π° Π½Π° ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡΠ°ΡΠ° Π·Π° ΠΏΡΠΈΡΡΠ°ΠΏ
ΠΠΎΡΠΈΡΡΠ΅ΡΠ΅ semodule Π·Π° Π²ΡΠΈΡΡΠ²Π°ΡΠ΅, Π΄ΠΎΠ΄Π°Π²Π°ΡΠ΅ ΠΈ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°ΡΠ΅ Π½Π° SELinux ΠΌΠΎΠ΄ΡΠ»ΠΈ.
[admin@server ~]$ semodule -l |wc -l #ΡΠΏΠΈΡΠΎΠΊ Π²ΡΠ΅Ρ
ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ
408
[admin@server ~]$ semodule -e abrt #enable - Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ
[admin@server ~]$ semodule -d accountsd #disable - ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ
[admin@server ~]$ semodule -r avahi #remove - ΡΠ΄Π°Π»ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ
ΠΡΠ² ΡΠΈΠΌ ΠΌΠ΅Π½Π°ΡΠΈΡΠ°ΡΠ΅ Π½Π° Π½Π°ΡΠ°Π²ΡΠ²Π°ΡΠ΅ Π³ΠΎ ΠΏΠΎΠ²ΡΠ·ΡΠ²Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ SELinux ΡΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠ²Π½ΠΈΠΎΡ ΡΠΈΡΡΠ΅ΠΌ, Π²ΡΠΎΡΠΈΠΎΡ ΠΏΡΠΈΠΊΠ°ΠΆΡΠ²Π° ΡΠΏΠΈΡΠΎΠΊ. ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠΎ ΠΏΡΠ΅ΠΊΠΈΠ½ΡΠ²Π°ΡΠΎΡ -r Π³ΠΎ ΠΎΡΡΡΡΠ°Π½ΡΠ²Π° ΠΌΠ°ΠΏΠΈΡΠ°ΡΠ΅ΡΠΎ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ Π½Π° SELinux Π½Π° ΡΠΌΠ΅ΡΠΊΠΈΡΠ΅ Π½Π° ΠΠ‘. ΠΠ±ΡΠ°ΡΠ½ΡΠ²Π°ΡΠ΅ΡΠΎ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠ°ΡΠ° Π·Π° Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΠΎΠΏΡΠ΅Π³ΠΎΡ MLS/MCS Π΅ Π²ΠΎ ΠΏΡΠ΅ΡΡ ΠΎΠ΄Π½ΠΈΠΎΡ Π΄Π΅Π».
[admin@server ~]$ semanage login -a -s user_u karol
[admin@server ~]$ semanage login -l
Login Name SELinux User MLS/MCS Range Service
__default__ unconfined_u s0-s0:c0.c1023 *
root unconfined_u s0-s0:c0.c1023 *
system_u system_u s0-s0:c0.c1023 *
[admin@server ~]$ semanage login -d karol
Π’ΠΈΠΌ ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ Π·Π° ΡΠΏΡΠ°Π²ΡΠ²Π°ΡΠ΅ ΡΠΎ ΠΌΠ°ΠΏΠΈΡΠ°ΡΠ° ΠΏΠΎΠΌΠ΅ΡΡ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈΡΠ΅ ΠΈ ΡΠ»ΠΎΠ³ΠΈΡΠ΅ Π½Π° SELinux.
[admin@server ~]$ semanage user -l
Labeling MLS/ MLS/
SELinux User Prefix MCS Level MCS Range SELinux Roles
guest_u user s0 s0 guest_r
staff_u staff s0 s0-s0:c0.c1023 staff_r sysadm_r
...
user_u user s0 s0 user_r
xguest_u user s0 s0 xguest_r
[admin@server ~]$ semanage user -a -R 'staff_r user_r'
[admin@server ~]$ semanage user -d test_u
ΠΠΎΠΌΠ°Π½Π΄Π½ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ:
- -Π΄ΠΎΠ΄Π°Π΄Π΅ΡΠ΅ ΠΏΡΠΈΡΠΏΠΎΡΠΎΠ±Π΅Π½ Π·Π°ΠΏΠΈΡ Π·Π° ΠΌΠ°ΠΏΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ»ΠΎΠ³ΠΈ;
- -l Π»ΠΈΡΡΠ° Π½Π° ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΈ ΠΊΠΎΡΠΈΡΠ½ΠΈΡΠΈ ΠΈ ΡΠ»ΠΎΠ³ΠΈ;
- -Π³ Π΄Π° ΡΠ΅ ΠΈΠ·Π±ΡΠΈΡΠ΅ Π·Π°ΠΏΠΈΡΠΎΡ Π·Π° ΠΌΠ°ΠΏΠΈΡΠ°ΡΠ΅ Π½Π° ΡΠ»ΠΎΠ³ΠΈ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ;
- -Π Π»ΠΈΡΡΠ° Π½Π° ΡΠ»ΠΎΠ³ΠΈ ΠΏΡΠΈΠΊΠ°ΡΠ΅Π½ΠΈ Π½Π° ΠΊΠΎΡΠΈΡΠ½ΠΈΠΊΠΎΡ;
ΠΠ°ΡΠΎΡΠ΅ΠΊΠΈ, ΠΏΡΠΈΡΡΠ°Π½ΠΈΡΡΠ° ΠΈ ΠΡΠ»ΠΎΠ²ΠΈ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ
Π‘Π΅ΠΊΠΎΡ ΠΌΠΎΠ΄ΡΠ» SELinux ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡΠ²Π° Π·Π±ΠΈΡ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΠΎΠ·Π½Π°ΡΡΠ²Π°ΡΠ΅ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ, Π½ΠΎ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΄ΠΎΠ΄Π°Π΄Π΅ΡΠ΅ ΠΈ ΡΠ²ΠΎΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π΄ΠΎΠΊΠΎΠ»ΠΊΡ Π΅ ΠΏΠΎΡΡΠ΅Π±Π½ΠΎ. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊΠ°ΠΌΠ΅ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΡ Π΄Π° ΠΈΠΌΠ° ΠΏΡΠ°Π²Π° Π·Π° ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ ΠΏΠ°ΠΏΠΊΠ°ΡΠ° /srv/www.
[admin@server ~]$ semanage fcontext -a -t httpd_sys_content_t "/srv/www(/.*)?
[admin@server ~]$ restorecon -R /srv/www/
ΠΡΠ²Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠ° Π½ΠΎΠ²ΠΈ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° ΠΎΠ±Π΅Π»Π΅ΠΆΡΠ²Π°ΡΠ΅, Π° Π²ΡΠΎΡΠ°ΡΠ° Π³ΠΈ ΡΠ΅ΡΠ΅ΡΠΈΡΠ°, ΠΈΠ»ΠΈ ΠΏΠΎΠ΄ΠΎΠ±ΡΠΎ ΠΊΠ°ΠΆΠ°Π½ΠΎ, Π³ΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠ²Π° ΡΠΈΠΏΠΎΠ²ΠΈΡΠ΅ Π½Π° Π΄Π°ΡΠΎΡΠ΅ΠΊΠΈ Π²ΠΎ ΡΠΎΠ³Π»Π°ΡΠ½ΠΎΡΡ ΡΠΎ ΡΠ΅ΠΊΠΎΠ²Π½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π°.
ΠΡΡΠΎ ΡΠ°ΠΊΠ°, TCP/UDP ΠΏΠΎΡΡΠΈΡΠ΅ ΡΠ΅ ΠΎΠ·Π½Π°ΡΠ΅Π½ΠΈ Π½Π° ΡΠ°ΠΊΠΎΠ² Π½Π°ΡΠΈΠ½ ΡΡΠΎ ΡΠ°ΠΌΠΎ ΡΠΎΠΎΠ΄Π²Π΅ΡΠ½ΠΈΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΠΈ ΠΌΠΎΠΆΠ°Ρ Π΄Π° Π³ΠΈ ΡΠ»ΡΡΠ°Π°Ρ. ΠΠ° ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π²Π΅Π±-ΡΠ΅ΡΠ²Π΅ΡΠΎΡ Π΄Π° ΡΠ»ΡΡΠ° Π½Π° ΠΏΠΎΡΡΠ°ΡΠ° 8080, ΡΡΠ΅Π±Π° Π΄Π° ΡΠ° ΠΈΠ·Π²ΡΡΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°.
[admin@server ~]$ semanage port -m -t http_port_t -p tcp 8080
ΠΠ½Π°ΡΠΈΡΠ΅Π»Π΅Π½ Π±ΡΠΎΡ Π½Π° SELinux ΠΌΠΎΠ΄ΡΠ»ΠΈ ΠΈΠΌΠ°Π°Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΠΊΠΎΠΈ ΠΌΠΎΠΆΠ°Ρ Π΄Π° Π·Π΅ΠΌΠ°Ρ ΠΡΠ»ΠΎΠ²ΠΈ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ. Π¦Π΅Π»Π°ΡΠ° Π»ΠΈΡΡΠ° Π½Π° ΡΠ°ΠΊΠ²ΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΠΈΠ΄ΠΈ ΡΠΎ ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅ Π½Π° getsebool -a. ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π³ΠΈ ΠΌΠ΅Π½ΡΠ²Π°ΡΠ΅ Π±ΡΠ»ΠΎΠ²ΠΈΡΠ΅ Π²ΡΠ΅Π΄Π½ΠΎΡΡΠΈ ΠΊΠΎΡΠΈΡΡΠ΅ΡΡΠΈ setsebool.
[admin@server ~]$ getsebool httpd_enable_cgi
httpd_enable_cgi --> on
[admin@server ~]$ setsebool -P httpd_enable_cgi off
[admin@server ~]$ getsebool httpd_enable_cgi
httpd_enable_homedirs --> off
Π Π°Π±ΠΎΡΠΈΠ»Π½ΠΈΡΠ°, Π΄ΠΎΠ±ΠΈΡΡΠ΅ ΠΏΡΠΈΡΡΠ°ΠΏ Π΄ΠΎ Pgadmin-Π²Π΅Π± ΠΈΠ½ΡΠ΅ΡΡΠ΅ΡΡΠΎΡ
ΠΡΠ΄Π΅ Π΄Π° ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΠΌΠ΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅Π½ ΠΏΡΠΈΠΌΠ΅Ρ: ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°Π²ΠΌΠ΅ pgadmin7.6-web Π½Π° RHEL 4 Π·Π° Π΄Π° ΡΠ° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠ°ΠΌΠ΅ Π±Π°Π·Π°ΡΠ° Π½Π° ΠΏΠΎΠ΄Π°ΡΠΎΡΠΈ PostgreSQL. ΠΡΠΎΡΠ΅ΡΠ°Π²ΠΌΠ΅ ΠΌΠ°Π»ΠΊΡ
ΠΠ°ΠΏΠΎΡΠ½ΡΠ²Π°ΠΌΠ΅ ΡΠΎ ΡΠΈΠΏΠΈΡΠ½ΠΈΡΠ΅ ΠΎΡΠΎΠΌΠ½ΠΈΡΠ΅Π½ΠΈ, ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΡΡΠΈ Π³ΠΎ /var/log/httpd/error_log. ΠΠΌΠ° Π½Π΅ΠΊΠΎΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΈ Π·Π°ΠΏΠΈΡΠΈ ΡΠ°ΠΌΡ.
[timestamp] [core:notice] [pid 23689] SELinux policy enabled; httpd running as context system_u:system_r:httpd_t:s0
...
[timestamp] [wsgi:error] [pid 23690] [Errno 13] Permission denied: '/var/lib/pgadmin'
[timestamp] [wsgi:error] [pid 23690]
[timestamp] [wsgi:error] [pid 23690] HINT : You may need to manually set the permissions on
[timestamp] [wsgi:error] [pid 23690] /var/lib/pgadmin to allow apache to write to it.
ΠΠΎ ΠΎΠ²ΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ, ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈ Π½Π° ΠΠΈΠ½ΡΠΊΡ ΡΠ΅ Π±ΠΈΠ΄Π°Ρ Π²ΠΎ ΡΠΈΠ»Π½ΠΎ ΠΈΡΠΊΡΡΠ΅Π½ΠΈΠ΅ Π΄Π° ΠΈΠ·Π²ΡΡΠ°Ρ setencorce 0, ΠΈ ΡΠΎΠ° ΡΠ΅ Π±ΠΈΠ΄Π΅ ΠΊΡΠ°ΡΠΎΡ Π½Π° ΡΠΎΠ°. ΠΡΠΊΡΠ΅Π½ΠΎ, ΡΠ°Ρ Π³ΠΎ Π½Π°ΠΏΡΠ°Π²ΠΈΠ² ΡΠΎΠΊΠΌΡ ΡΠΎΠ° ΠΏΡΠ²ΠΈΠΎΡ ΠΏΠ°Ρ. ΠΠ²Π° Π΅ ΡΠ΅ΠΊΠ°ΠΊΠΎ ΠΈ ΠΈΠ·Π»Π΅Π·, Π½ΠΎ Π΄Π°Π»Π΅ΠΊΡ ΠΎΠ΄ Π½Π°ΡΠ΄ΠΎΠ±Π°Ρ.
Π ΠΏΠΎΠΊΡΠ°Ρ Π½Π΅Π·Π³ΠΎΠ΄Π½ΠΈΡΠ΅ Π΄ΠΈΠ·Π°ΡΠ½ΠΈ, SELinux ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΠΈΠ΄Π΅ Π»Π΅ΡΠ΅Π½ Π·Π° ΠΊΠΎΡΠΈΡΡΠ΅ΡΠ΅. Π‘Π°ΠΌΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΡΡΠ΅ Π³ΠΎ ΠΏΠ°ΠΊΠ΅ΡΠΎΡ setroubleshoot ΠΈ ΠΏΠΎΠ³Π»Π΅Π΄Π½Π΅ΡΠ΅ Π³ΠΎ ΡΠΈΡΡΠ΅ΠΌΡΠΊΠΈΠΎΡ Π΄Π½Π΅Π²Π½ΠΈΠΊ.
[admin@server ~]$ yum install setroubleshoot
[admin@server ~]$ journalctl -b -0
[admin@server ~]$ service restart auditd
ΠΠΌΠ°ΡΡΠ΅ ΠΏΡΠ΅Π΄Π²ΠΈΠ΄ Π΄Π΅ΠΊΠ° ΡΠ΅Π²ΠΈΠ΄ΠΈΡΠ°Π½Π°ΡΠ° ΡΡΠ»ΡΠ³Π° ΠΌΠΎΡΠ° Π΄Π° ΡΠ΅ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ° Π½Π° ΠΎΠ²ΠΎΡ Π½Π°ΡΠΈΠ½ ΠΈ Π΄Π° Π½Π΅ ΡΠ΅ ΠΊΠΎΡΠΈΡΡΠΈ systemctl, ΠΈ ΠΏΠΎΠΊΡΠ°Ρ ΠΏΡΠΈΡΡΡΡΠ²ΠΎΡΠΎ Π½Π° systemd Π²ΠΎ ΠΠ‘. ΠΠΎ Π΄Π½Π΅Π²Π½ΠΈΠΊΠΎΡ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΎΡ ΡΠ΅ Π±ΠΈΠ΄Π°Ρ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈ Π½Π΅ ΡΠ°ΠΌΠΎ ΡΠ°ΠΊΡΠΎΡ Π½Π° Π±Π»ΠΎΠΊΠΈΡΠ°ΡΠ΅, ΡΡΠΊΡ ΠΈ ΠΏΡΠΈΡΠΈΠ½Π°ΡΠ° ΠΈ Π½Π°ΡΠΈΠ½ Π΄Π° ΡΠ΅ Π½Π°Π΄ΠΌΠΈΠ½Π΅ Π·Π°Π±ΡΠ°Π½Π°ΡΠ°.
ΠΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π°ΠΌΠ΅ ΠΎΠ²ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ:
[admin@server ~]$ setsebool -P httpd_can_network_connect 1
[admin@server ~]$ setsebool -P httpd_can_network_connect_db 1
ΠΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ ΠΏΡΠΈΡΡΠ°ΠΏΠΎΡ Π΄ΠΎ Π²Π΅Π±-ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° pgadmin4, ΡΓ¨ ΡΠ°Π±ΠΎΡΠΈ.
ΠΠ·Π²ΠΎΡ: www.habr.com