ΠΠ΄Π½Π° ΠΎΡ ΠΏΡΠΈΡΠΈΠ½ΠΈΡΠ΅ Π·Π° ΠΎΠ³ΡΠΎΠΌΠ½ΠΈΡ ΡΡΠΏΠ΅Ρ
Π½Π° Linux OS Π½Π° Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ, ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ ΡΡΡΠ²ΡΡΠΈ Π΅ ΡΡΠ°Π²Π½ΠΈΡΠ΅Π»Π½ΠΎ Π²ΠΈΡΠΎΠΊΠ°ΡΠ° ΡΡΠ΅ΠΏΠ΅Π½ Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ Π½Π° ΡΠ΄ΡΠΎΡΠΎ, ΡΠ²ΡΡΠ·Π°Π½ΠΈΡΠ΅ ΡΡΠ»ΡΠ³ΠΈ ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎ Π°ΠΊΠΎ
ΠΡΠ΅Π΄ΠΈΡΡΠΎΡΠΈΡ Π½Π° ΠΌΠΎΠ΄ΡΠ»ΠΈΡΠ΅ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ Π½Π° Linux ΠΈ SELinux
Security Enhanced Linux Π΅ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΡΠ°Π²ΠΈΠ»Π° ΠΈ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° Π΄ΠΎΡΡΡΠΏ, Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΈ ΠΈ ΡΠΎΠ»Π΅Π²ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈ Π·Π° Π΄ΠΎΡΡΡΠΏ, Π·Π° Π·Π°ΡΠΈΡΠ° Π½Π° Linux ΡΠΈΡΡΠ΅ΠΌΠΈΡΠ΅ ΠΎΡ ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΈ Π·Π°ΠΏΠ»Π°Ρ ΠΈ ΠΈ ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ»Π°Π±ΠΎΡΡΠΈΡΠ΅ Π½Π° Π΄ΠΈΡΠΊΡΠ΅ΡΠΈΠΎΠ½Π½ΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π΄ΠΎΡΡΡΠΏΠ° (DAC), ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½Π°ΡΠ° Unix ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ. ΠΡΠΎΠ΅ΠΊΡΡΡ ΡΠ΅ Π·Π°ΡΠ°ΠΆΠ΄Π° Π² Π½Π΅Π΄ΡΠ°ΡΠ° Π½Π° ΠΠ³Π΅Π½ΡΠΈΡΡΠ° Π·Π° Π½Π°ΡΠΈΠΎΠ½Π°Π»Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ Π½Π° Π‘ΠΠ©, Π° Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° ΡΠ° ΠΏΡΡΠΊΠΎ Π°Π½Π³Π°ΠΆΠΈΡΠ°Π½ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΡΠ΅Π»ΠΈΡΠ΅ Secure Computing Corporation ΠΈ MITER, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΡΠ΅Π΄ΠΈΡΠ° ΠΈΠ·ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠΊΠΈ Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠΈΠΈ.
ΠΠΎΠ΄ΡΠ»ΠΈ Π·Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ Π½Π° Linux
ΠΠΈΠ½ΡΡ Π’ΠΎΡΠ²Π°Π»Π΄Ρ Π΄ΠΎΠΏΡΠΈΠ½Π΅ΡΠ΅ Ρ ΡΠ΅Π΄ΠΈΡΠ° Π±Π΅Π»Π΅ΠΆΠΊΠΈ Π·Π° Π½ΠΎΠ²ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ Π½Π° NSA, ΡΠ°ΠΊΠ° ΡΠ΅ ΡΠ΅ Π΄Π° ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈ Π² ΠΎΡΠ½ΠΎΠ²Π½ΠΈΡ ΠΊΠ»ΠΎΠ½ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux. Π’ΠΎΠΉ ΠΎΠΏΠΈΡΠ²Π° ΠΎΠ±ΡΠ° ΡΡΠ΅Π΄Π° Ρ Π½Π°Π±ΠΎΡ ΠΎΡ ΠΏΡΠ΅Ρ
Π²Π°ΡΠ°ΡΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π²ΡΡΡ
Ρ ΠΎΠ±Π΅ΠΊΡΠΈ ΠΈ Π½Π°Π±ΠΎΡ ΠΎΡ Π½ΡΠΊΠΎΠΈ Π·Π°ΡΠΈΡΠ½ΠΈ ΠΏΠΎΠ»Π΅ΡΠ° Π² ΡΡΡΡΠΊΡΡΡΠΈΡΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π·Π° ΡΡΡ
ΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΠΎΡΠ²Π΅ΡΠ½ΠΈΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΈ. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ°Π·ΠΈ ΡΡΠ΅Π΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΎΡ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π΅ΠΌΠΈ ΠΌΠΎΠ΄ΡΠ»ΠΈ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π·Π° ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° Π²ΡΠ΅ΠΊΠΈ ΠΆΠ΅Π»Π°Π½ ΠΌΠΎΠ΄Π΅Π» Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ. 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 Π½Π΅ Π΅ ΡΡΡΠΈΡΡ ΠΊΠ°ΡΠΎ ΠΎΠ±ΠΈΡΠ°ΠΉΠ½ΠΈΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π½Π° Unix / Linux, ΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΡΡΡΠ΅ΡΡΠ²ΡΠ²Π°Ρ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π² Π΅Π΄Π½Π° ΠΈ ΡΡΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, Π½ΠΎ ΡΠ° Π½Π°ΠΏΡΠ»Π½ΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠΎ ΡΡΡΠ΅ΡΡΠ²ΠΎ. ΠΡΠ΅ΠΊΠΈ ΡΡΠ°Π½Π΄Π°ΡΡΠ΅Π½ Linux Π°ΠΊΠ°ΡΠ½Ρ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π° Π½Π° Π΅Π΄ΠΈΠ½ ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅ΡΠ΅ Π² SELinux. Π‘Π°ΠΌΠΎΠ»ΠΈΡΠ½ΠΎΡΡΡΠ° Π½Π° SELinux Π΅ ΡΠ°ΡΡ ΠΎΡ ΡΡΠ»ΠΎΡΡΠ½ΠΈΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡΡΠ°, ΠΊΠΎΠΉΡΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΊΡΠΌ ΠΊΠΎΠΈ Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΈ ΠΊΡΠΌ ΠΊΠΎΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΈΡΡΠ΅Π΄ΠΈΠ½ΠΈΡΠ΅.
- Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ - Π SELinux Π΄ΠΎΠΌΠ΅ΠΉΠ½ΡΡ Π΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΡΡ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠ±Π΅ΠΊΡΠ°, Ρ.Π΅. ΠΏΡΠΎΡΠ΅ΡΠ°. ΠΠΎΠΌΠ΅ΠΉΠ½ΡΡ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ Π΄ΠΎΡΡΡΠΏΠ°, ΠΊΠΎΠΉΡΠΎ ΠΈΠΌΠ° Π΄Π°Π΄Π΅Π½ ΠΏΡΠΎΡΠ΅Ρ. ΠΠΎΠΌΠ΅ΠΉΠ½ΡΡ Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎ ΡΠΏΠΈΡΡΠΊ Π½Π° ΡΠΎΠ²Π°, ΠΊΠΎΠ΅ΡΠΎ ΠΏΡΠΎΡΠ΅ΡΠΈΡΠ΅ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΏΡΠ°Π²ΡΡ ΠΈΠ»ΠΈ ΠΊΠ°ΠΊΠ²ΠΈ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΏΡΠΎΡΠ΅Ρ Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅. ΠΡΠΊΠΎΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠΈ Π·Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ ΡΠ° sysadm_t Π·Π° ΡΠΈΡΡΠ΅ΠΌΠ½Π° Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΈΡ ΠΈ user_t, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ Π½Π΅ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ Π΄ΠΎΠΌΠ΅ΠΉΠ½. Π‘ΠΈΡΡΠ΅ΠΌΠ°ΡΠ° init ΡΠ°Π±ΠΎΡΠΈ Π² Π΄ΠΎΠΌΠ΅ΠΉΠ½Π° init_t, Π° ΠΏΠΎΡΠΎΡΠ΅Π½ΠΈΡΡ ΠΏΡΠΎΡΠ΅Ρ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π° Π² Π΄ΠΎΠΌΠ΅ΠΉΠ½Π° named_t.
- ΡΠΎΠ»Ρ - ΠΠ΅ΡΠΎ, ΠΊΠΎΠ΅ΡΠΎ ΡΠ»ΡΠΆΠΈ ΠΊΠ°ΡΠΎ ΠΏΠΎΡΡΠ΅Π΄Π½ΠΈΠΊ ΠΌΠ΅ΠΆΠ΄Ρ Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π½Π° SELinux. Π ΠΎΠ»ΠΈΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡ ΠΊΡΠΌ ΠΊΠ°ΠΊΠ²ΠΈ Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈ Π΄Π°Π΄Π΅Π½ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» ΠΈ Π΄ΠΎ ΠΊΠ°ΠΊΠ²ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ ΠΎΠ±Π΅ΠΊΡΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ ΠΈΠΌΠ° Π΄ΠΎΡΡΡΠΏ. Π’Π°ΠΊΡΠ² ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΡΠΌ Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π΄ΠΎΡΡΡΠΏΠ° ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΡΠ²Π° Π·Π°ΠΏΠ»Π°Ρ Π°ΡΠ° ΠΎΡ Π°ΡΠ°ΠΊΠ° Ρ Π΅ΡΠΊΠ°Π»Π°ΡΠΈΡ Π½Π° ΠΏΡΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ. Π ΠΎΠ»ΠΈΡΠ΅ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π°Ρ Π² ΠΌΠΎΠ΄Π΅Π»Π° Π·Π° Π·Π°ΡΠΈΡΠ° Π½Π° Π±Π°Π·ΠΈΡΠ°Π½ΠΈΡ Π½Π° ΡΠΎΠ»ΠΈ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π΄ΠΎΡΡΡΠΏΠ° (RBAC), ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ Π² SELinux.
- ΠΠΈΠ΄ΠΎΠ²Π΅ β Π’ΠΈΠΏ Π°ΡΡΠΈΠ±ΡΡ Π½Π° ΡΠΏΠΈΡΡΠΊΠ° Π·Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅, ΠΊΠΎΠΉΡΠΎ Π΅ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ Π½Π° ΠΎΠ±Π΅ΠΊΡ ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»Ρ ΠΊΠΎΠΉ ΡΠ΅ ΠΈΠΌΠ° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π½Π΅Π³ΠΎ. ΠΠΎΠ΄ΠΎΠ±Π½ΠΎ Π½Π° Π΄Π΅ΡΠΈΠ½ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° Π΄ΠΎΠΌΠ΅ΠΉΠ½, Ρ ΠΈΠ·ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΠΎΠ²Π°, ΡΠ΅ Π΄ΠΎΠΌΠ΅ΠΉΠ½ΡΡ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° ΠΊΡΠΌ ΠΏΡΠΎΡΠ΅ΡΠ°, Π΄ΠΎΠΊΠ°ΡΠΎ ΡΠΈΠΏΡΡ ΡΠ΅ ΠΏΡΠΈΠ»Π°Π³Π° ΠΊΡΠΌ ΠΎΠ±Π΅ΠΊΡΠΈ ΠΊΠ°ΡΠΎ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, ΡΠΎΠΊΠ΅ΡΠΈ ΠΈ Ρ.Π½.
- Π‘ΡΠ±Π΅ΠΊΡΠΈ ΠΈ ΠΎΠ±Π΅ΠΊΡΠΈ - ΠΡΠΎΡΠ΅ΡΠΈΡΠ΅ ΡΠ° ΡΡΠ±Π΅ΠΊΡΠΈ ΠΈ ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Ρ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ ΠΈΠ»ΠΈ Π·Π°ΡΠΈΡΠ΅Π½ Π΄ΠΎΠΌΠ΅ΠΉΠ½. Π Π΅ΡΡΡΡΠΈΡΠ΅ Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°: ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΠΈ, ΡΠΎΠΊΠ΅ΡΠΈ ΠΈ Ρ.Π½. ΡΠ° ΠΎΠ±Π΅ΠΊΡΠΈ, Π½Π° ΠΊΠΎΠΈΡΠΎ Π΅ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠΈΠΏ, Ρ Π΄ΡΡΠ³ΠΈ Π΄ΡΠΌΠΈ, Π½ΠΈΠ²ΠΎ Π½Π° ΡΠ΅ΠΊΡΠ΅ΡΠ½ΠΎΡΡ.
- ΠΡΠ°Π²ΠΈΠ»Π° Π½Π° SELinux - SELinux ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Π·Π° Π·Π°ΡΠΈΡΠ° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ°. ΠΠΎΠ»ΠΈΡΠΈΠΊΠ°ΡΠ° Π½Π° SELinux Π΄Π΅ΡΠΈΠ½ΠΈΡΠ° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈΡ Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ ΡΠΎΠ»ΠΈ, ΡΠΎΠ»ΠΈΡΠ΅ Π΄ΠΎ Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ ΠΈ Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈΡΠ΅ Π΄ΠΎ ΡΠΈΠΏΠΎΠ²Π΅. ΠΡΡΠ²ΠΎ, ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΡ Π΅ ΡΠΏΡΠ»Π½ΠΎΠΌΠΎΡΠ΅Π½ Π΄Π° ΠΏΠΎΠ»ΡΡΠΈ ΡΠΎΠ»Ρ, ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΡΠΎΠ»ΡΡΠ° Π΅ ΡΠΏΡΠ»Π½ΠΎΠΌΠΎΡΠ΅Π½Π° Π·Π° Π΄ΠΎΡΡΡΠΏ Π΄ΠΎ Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ. Π Π½Π°ΠΊΡΠ°Ρ, Π΄ΠΎΠΌΠ΅ΠΉΠ½ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠΌΠ° Π΄ΠΎΡΡΡΠΏ ΡΠ°ΠΌΠΎ Π΄ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ ΠΎΠ±Π΅ΠΊΡΠΈ.
LSM ΠΈ SELinux Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ°
ΠΡΠΏΡΠ΅ΠΊΠΈ ΠΈΠΌΠ΅ΡΠΎ, LSM ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π½Π΅ ΡΠ° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π΅ΠΌΠΈ Linux ΠΌΠΎΠ΄ΡΠ»ΠΈ. ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΠΎΠ²Π°, ΡΠΎΡΠ½ΠΎ ΠΊΠ°ΡΠΎ SELinux, ΡΠΎΠΉ Π΅ Π΄ΠΈΡΠ΅ΠΊΡΠ½ΠΎ ΠΈΠ½ΡΠ΅Π³ΡΠΈΡΠ°Π½ Π² ΡΠ΄ΡΠΎΡΠΎ. ΠΡΡΠΊΠ° ΠΏΡΠΎΠΌΡΠ½Π° Π² ΠΈΠ·Ρ ΠΎΠ΄Π½ΠΈΡ ΠΊΠΎΠ΄ Π½Π° LSM ΠΈΠ·ΠΈΡΠΊΠ²Π° Π½ΠΎΠ²Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ Π½Π° ΡΠ΄ΡΠΎΡΠΎ. Π‘ΡΠΎΡΠ²Π΅ΡΠ½Π°ΡΠ° ΠΎΠΏΡΠΈΡ ΡΡΡΠ±Π²Π° Π΄Π° Π±ΡΠ΄Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π° Π² Π½Π°ΡΡΡΠΎΠΉΠΊΠΈΡΠ΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ, Π² ΠΏΡΠΎΡΠΈΠ²Π΅Π½ ΡΠ»ΡΡΠ°ΠΉ LSM ΠΊΠΎΠ΄ΡΡ Π½ΡΠΌΠ° Π΄Π° Π±ΡΠ΄Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ ΡΠ»Π΅Π΄ Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅. ΠΠΎ Π΄ΠΎΡΠΈ ΠΈ Π² ΡΠΎΠ·ΠΈ ΡΠ»ΡΡΠ°ΠΉ, ΡΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½ ΠΎΡ ΠΎΠΏΡΠΈΡΡΠ° Π·Π° Π·Π°ΡΠ΅ΠΆΠ΄Π°Π½Π΅ Π½Π° OS.
ΠΡΠΏΡΠΈΠ½Π° 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 ΠΈ ΠΌΠΎΠ΄ΡΠ»Π° Hook Logic, ΠΎΡΠ³ΠΎΠ²ΠΎΡΠ΅Π½ Π·Π° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ΡΠΎ Ρ LSM.
- Π‘ΡΡΠ²ΡΡΡΡ Π·Π° ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° ΠΏΡΠ°Π²ΠΈΠ»Π° Π΅ ΠΎΡΠ³Π°Π½ΡΡ Π·Π° Π²Π·Π΅ΠΌΠ°Π½Π΅ Π½Π° ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΎΡΠ½ΠΎΡΠ½ΠΎ Π΄ΠΎΡΡΡΠΏΠ° Π½Π° ΡΡΠ±Π΅ΠΊΡΠ° Π΄ΠΎ ΠΎΠ±Π΅ΠΊΡΠ° ΠΈ ΡΠΎΠΉ ΠΏΠΎΠ»ΡΡΠ°Π²Π° Π΄Π°Π½Π½ΠΈ ΠΎΡ SELinux AnHL.
- ΠΠ° Π΄Π° Π²Π·Π΅ΠΌΠ΅ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π·Π° Π΄ΠΎΡΡΡΠΏ ΠΈΠ»ΠΈ Π·Π°Π±ΡΠ°Π½Π°, Policy Enforcement Server ΡΠ΅ ΠΏΠΎΠ·ΠΎΠ²Π°Π²Π° Π½Π° ΠΊΠ΅ΡΠΈΡΠ°ΡΠ°ΡΠ° ΠΏΠΎΠ΄ΡΠΈΡΡΠ΅ΠΌΠ° Π½Π° Π½Π°ΠΉ-ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈΡΠ΅ ΠΏΡΠ°Π²ΠΈΠ»Π° Π·Π° Access Vector Cache (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 - ΡΠ΄Π°Π»ΠΈΡΡ ΠΌΠΎΠ΄ΡΠ»Ρ
ΠΡΡΠ²ΠΈ ΠΎΡΠ±ΠΎΡ Π²Π»ΠΈΠ·Π°Π½Π΅ Π² semanage Π°ΡΠΎΡΠΈΠΈΡΠ° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Π½Π° SELinux Ρ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°, Π²ΡΠΎΡΠΈΡΡ Π³ΠΎ ΠΈΠ·Π±ΡΠΎΡΠ²Π°. Π Π½Π°ΠΊΡΠ°Ρ, ΠΏΠΎΡΠ»Π΅Π΄Π½Π°ΡΠ° ΠΊΠΎΠΌΠ°Π½Π΄Π° Ρ ΠΏΡΠ΅Π²ΠΊΠ»ΡΡΠ²Π°ΡΠ΅Π»Ρ -r ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π° ΠΊΠ°ΡΡΠΎΠ³ΡΠ°ΡΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ Π½Π° SELinux ΠΊΡΠΌ Π°ΠΊΠ°ΡΠ½ΡΠΈ Π½Π° OS. ΠΠ±ΡΡΠ½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠΈΠ½ΡΠ°ΠΊΡΠΈΡΠ° Π·Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° MLS/MCS Range ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π² ΠΏΡΠ΅Π΄ΠΈΡΠ½ΠΈΡ ΡΠ°Π·Π΄Π΅Π».
[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
ΠΡΠ±ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π» Π½Π° semanage ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΡΠΏΠΎΡΡΠ°Π²ΡΠ½ΠΈΡΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΈ ΡΠΎΠ»ΠΈ Π½Π° 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
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΠΈ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ°:
- -a Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π·Π°ΠΏΠΈΡ Π·Π° ΡΡΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΡΠΎΠ»ΠΈ;
- -l ΡΠΏΠΈΡΡΠΊ Π½Π° ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π°ΡΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈ ΠΈ ΡΠΎΠ»ΠΈ;
- -d ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π° ΠΏΠ΅ΡΡΠΎΠ½Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Π·Π°ΠΏΠΈΡ Π·Π° ΡΡΠΏΠΎΡΡΠ°Π²ΡΠ½Π΅ Π½Π° ΡΠΎΠ»ΠΈ;
- -R ΡΠΏΠΈΡΡΠΊ Ρ ΡΠΎΠ»ΠΈ, ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΊΡΠΌ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ;
Π€Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΏΠΎΡΡΠΎΠ²Π΅ ΠΈ Π±ΡΠ»Π΅Π²ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ
ΠΡΠ΅ΠΊΠΈ 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.
Π ΡΠΎΠ·ΠΈ ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΠΎΠ²Π΅ΡΠ΅ΡΠΎ Linux Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΈ ΡΠ΅ Π±ΡΠ΄Π°Ρ ΡΠΈΠ»Π½ΠΎ ΠΈΠ·ΠΊΡΡΠ΅Π½ΠΈ Π΄Π° ΡΡΠ°ΡΡΠΈΡΠ°Ρ setencorce 0 ΠΈ Π΄Π° ΠΏΡΠΈΠΊΠ»ΡΡΠ°Ρ Ρ Π½Π΅Π³ΠΎ. Π§Π΅ΡΡΠ½ΠΎ ΠΊΠ°Π·Π°Π½ΠΎ, Π·Π° ΠΏΡΡΠ²ΠΈ ΠΏΡΡ Π³ΠΎ ΠΏΡΠ°Π²Ρ. Π’ΠΎΠ²Π°, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, ΡΡΡΠΎ Π΅ ΠΈΠ·Ρ ΠΎΠ΄, Π½ΠΎ Π΄Π°Π»Π΅Ρ Π½Π΅ Π΅ Π½Π°ΠΉ-Π΄ΠΎΠ±ΡΠΈΡΡ.
ΠΡΠΏΡΠ΅ΠΊΠΈ ΡΡΠΎΠΌΠ°Π²ΠΈΡ Π΄ΠΈΠ·Π°ΠΉΠ½, SELinux ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ΄ΠΎΠ±Π΅Π½ Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ. ΠΡΠΎΡΡΠΎ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ°ΠΉΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΠ° Π·Π° ΠΎΡΡΡΡΠ°Π½ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΈ ΠΏΡΠ΅Π³Π»Π΅Π΄Π°ΠΉΡΠ΅ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΡ.
[admin@server ~]$ yum install setroubleshoot
[admin@server ~]$ journalctl -b -0
[admin@server ~]$ service restart auditd
ΠΠ±ΡΡΠ½Π΅ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΠ΅ ΡΡΠ»ΡΠ³Π°ΡΠ° auditd ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ° ΠΏΠΎ ΡΠΎΠ·ΠΈ Π½Π°ΡΠΈΠ½, Π° Π½Π΅ Ρ systemctl, Π²ΡΠΏΡΠ΅ΠΊΠΈ Π½Π°Π»ΠΈΡΠΈΠ΅ΡΠΎ Π½Π° systemd Π² ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°. Π ΡΠΈΡΡΠ΅ΠΌΠ½ΠΈΡ Π΄Π½Π΅Π²Π½ΠΈΠΊ ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎΡΠΎΡΠ΅Π½ΠΎ Π½Π΅ ΡΠ°ΠΌΠΎ ΡΠ°ΠΊΡΡΡ Π½Π° Π±Π»ΠΎΠΊΠΈΡΠ°Π½Π΅, Π½ΠΎ ΠΈ ΠΏΡΠΈΡΠΈΠ½Π°ΡΠ° ΠΈ Π½Π°ΡΠΈΠ½ Π·Π° ΠΏΡΠ΅ΠΎΠ΄ΠΎΠ»ΡΠ²Π°Π½Π΅ Π½Π° Π·Π°Π±ΡΠ°Π½Π°ΡΠ°.
ΠΠΈΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°ΠΌΠ΅ ΡΠ΅Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ:
[admin@server ~]$ setsebool -P httpd_can_network_connect 1
[admin@server ~]$ setsebool -P httpd_can_network_connect_db 1
ΠΡΠΎΠ²Π΅ΡΡΠ²Π°ΠΌΠ΅ Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΡΠ΅Π± ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° pgadmin4-web, Π²ΡΠΈΡΠΊΠΎ ΡΠ°Π±ΠΎΡΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: www.habr.com