Π‘ΡΠΊΠΎΠ½ΠΎΠΌΡŒΡ‚Π΅ 15% Π½Π° всСх хостинговых услугах

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ свои Π½Π°Π²Ρ‹ΠΊΠΈ ΠΈ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ скидку Π½Π° любой Ρ‚Π°Ρ€ΠΈΡ„Π½Ρ‹ΠΉ ΠΏΠ»Π°Π½

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠ΄: Skills ΠΠ°Ρ‡Π°Ρ‚ΡŒ
Π ΡƒΠ±Ρ€ΠΈΠΊΠΈ
Linux Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ SELinux ΠΈ ΠΊΠ°ΠΊ ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Ρ‹ΡΠΈΡ‚ΡŒ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Π½Π° Linux сСрвСрах?

Когда Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ систСмных администраторов Π΄ΡƒΠΌΠ°ΡŽΡ‚ ΠΎΠ± усилСнии бСзопасности сСрвСра Linux, ΠΎΠ½ΠΈ ΡΠΎΡΡ€Π΅Π΄ΠΎΡ‚ΠΎΡ‡ΠΈΠ²Π°ΡŽΡ‚ΡΡ Π½Π° основах: ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΎΠ² Π² Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΠΌ состоянии, настройка ΠΏΡ€Π°Π²ΠΈΠ» брандмауэра ΠΈ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ доступа SSH. Π­Ρ‚ΠΎ всС Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ шаги β€” Π½ΠΎ ΠΎΠ½ΠΈ ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΏΡ€ΠΎΠ±Π΅Π». Один ΠΈΠ· самых ΠΌΠΎΡ‰Π½Ρ‹Ρ… ΠΈ часто Π½Π΅Π΄ΠΎΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Ρ… ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΎΠ² бСзопасности, доступных Π² Linux, β€” это SELinux (Security-Enhanced Linux), Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ контроля доступа уровня ядра, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Π½Ρ‹ΠΉ для Π»ΠΎΠΊΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΡƒΠ³Ρ€ΠΎΠ· Π΄ΠΎ Ρ‚ΠΎΠ³ΠΎ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ пСрСрастут Π² ΠΏΠΎΠ»Π½Ρ‹Π΅ ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚Π°Ρ†ΠΈΠΈ систСмы.

НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ Π² срСдС VPS Hosting, высоконагруТСнном ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π° Dedicated Servers ΠΈΠ»ΠΈ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠΉ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Shared Web Hosting, SELinux ΠΌΠΎΠΆΠ΅Ρ‚ ΡΡ‚Π°Ρ‚ΡŒ Ρ€Π΅ΡˆΠ°ΡŽΡ‰ΠΈΠΌ ΡƒΡ€ΠΎΠ²Π½Π΅ΠΌ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΡ€Π΅Π²Ρ€Π°Ρ‚ΠΈΡ‚ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹ΠΉ Π²Π·Π»ΠΎΠΌ Π² Π»ΠΎΠΊΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ, восстанавливаСмый ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ SELinux?

SELinux β€” это ΠΌΠΎΠ΄ΡƒΠ»ΡŒ бСзопасности ядра Linux, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΠ΅Ρ‚ Mandatory Access Control (MAC). Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ½ΡΡ‚ΡŒ, ΠΏΠΎΡ‡Π΅ΠΌΡƒ это Π²Π°ΠΆΠ½ΠΎ, сначала Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ ΠΎΠ½ замСняСт β€” ΠΈΠ»ΠΈ, Ρ‚ΠΎΡ‡Π½Π΅Π΅, Ρ‡Ρ‚ΠΎ ΠΎΠ½ дополняСт.

Врадиционная модСль бСзопасности Linux основана Π½Π° Discretionary Access Control (DAC). Π’ DAC Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ доступа ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ Π²Π»Π°Π΄Π΅Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ ΠΈ члСнством Π² Π³Ρ€ΡƒΠΏΠΏΠ°Ρ…. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ root ΠΈΠΌΠ΅Π΅Ρ‚ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΡƒΡŽ Π²Π»Π°ΡΡ‚ΡŒ Π½Π°Π΄ всСй систСмой. Если Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ доступ root, ΠΎΠ½ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ всё.

Π’ ΠΌΠΎΠ΄Π΅Π»ΠΈ MAC SELinux доступ рСгулируСтся систСмными ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°ΠΌΠΈ бСзопасности, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ядра. ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Π΄Π°ΠΆΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ root подчиняСтся этим ограничСниям. ΠŸΡ€ΠΎΡ†Π΅ΡΡ, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΉ ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ root, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡ‚ΡŒ дСйствия, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΅Π³ΠΎ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° SELinux Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ явно.

SELinux Π±Ρ‹Π» ΠΏΠ΅Ρ€Π²ΠΎΠ½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½ АгСнтством Π½Π°Ρ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΠΉ бСзопасности (NSA) Π² сотрудничСствС с Red Hat ΠΈ Π±Ρ‹Π» ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½ Π² основноС ядро Linux Π² Π½Π°Ρ‡Π°Π»Π΅ 2000-Ρ… Π³ΠΎΠ΄ΠΎΠ². БСгодня это стандартный ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… дистрибутивов Linux, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ RHEL, CentOS, Fedora, AlmaLinux ΠΈ Rocky Linux.

Π“Π΄Π΅ традиционная Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ Linux Π΄Π°Π΅Ρ‚ сбой

ΠšΠ»Π°ΡΡΠΈΡ‡Π΅ΡΠΊΠ°Ρ модСль Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ UNIX Ρ…ΠΎΡ€ΠΎΡˆΠΎ слуТила Linux Π² Ρ‚Π΅Ρ‡Π΅Π½ΠΈΠ΅ дСсятилСтий, Π½ΠΎ ΠΎΠ½Π° содСрТит структурныС слабости, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ соврСмСнныС Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΠΈ рСгулярно ΡΠΊΡΠΏΠ»ΡƒΠ°Ρ‚ΠΈΡ€ΡƒΡŽΡ‚:

  • Root всСмогущ. Π›ΡŽΠ±ΠΎΠΉ эксплойт, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΠΎΠ²Ρ‹ΡˆΠ°Π΅Ρ‚ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΈ Π΄ΠΎ root, Π΄Π°Π΅Ρ‚ Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΡƒ Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ доступ ΠΊΠΎ всСй систСмС β€” Ρ„Π°ΠΉΠ»Π°ΠΌ, Π±Π°Π·Π°ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, сокСтам сСти ΠΈ всСму ΠΎΡΡ‚Π°Π»ΡŒΠ½ΠΎΠΌΡƒ.
  • ΠšΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚Π°Ρ†ΠΈΡ сСрвиса Ρ€Π°Π²Π½Π° ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚Π°Ρ†ΠΈΠΈ систСмы. Уязвимый ΠΌΠΎΠ΄ΡƒΠ»ΡŒ Apache, ΠΏΠ»ΠΎΡ…ΠΎ написанный PHP-скрипт ΠΈΠ»ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ настроСнноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Π½Ρ‹ для пСрСмСщСния ΠΏΠΎ всСму сСрвСру.
  • Π‘ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Π²Π΅ΠΊΡ‚ΠΎΡ€Ρ‹ Π°Ρ‚Π°ΠΊ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ обходят DAC. Π’Π΅Π±-ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠΈ, эксплойты ΠΏΠΎΠ²Ρ‹ΡˆΠ΅Π½ΠΈΡ ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ, ΠΏΠΎΠ±Π΅Π³ΠΈ ΠΈΠ· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² ΠΈ Π°Ρ‚Π°ΠΊΠΈ Ρ†Π΅ΠΏΠΎΡ‡ΠΊΠΈ поставок Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π°Π½Ρ‹ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Ρ… Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ, Π½ΠΎ ΠΏΡ€ΠΈ этом Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ катастрофичСский ΡƒΡ‰Π΅Ρ€Π±.

Π‘Ρ†Π΅Π½Π°Ρ€ΠΈΠΉ Π°Ρ‚Π°ΠΊΠΈ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ ΠΌΠΈΡ€Π΅

Рассмотрим Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½Π΅Π½Π½ΡƒΡŽ ΡƒΡΠ·Π²ΠΈΠΌΠΎΡΡ‚ΡŒ CMS, которая позволяСт Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊΡƒ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Π²Π΅Π±-ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΡƒ.

Π‘Π΅Π· SELinux: Π—Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ Ρ‡ΠΈΡ‚Π°Π΅Ρ‚ config.php, ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅Ρ‚ ΡƒΡ‡Π΅Ρ‚Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π²Ρ‹Π³Ρ€ΡƒΠΆΠ°Π΅Ρ‚ Π±Π°Π·Ρƒ Π΄Π°Π½Π½Ρ‹Ρ…, пСрСмСщаСтся Π±ΠΎΠΊΠΎΠΌ Π½Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Π΅ сайты ΠΈ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎ достигаСт ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ доступа root. Π’Π΅ΡΡŒ стСк скомпромСтирован с ΠΎΠ΄Π½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ Π²Ρ…ΠΎΠ΄Π°.

Π‘ SELinux: ΠŸΡ€ΠΎΡ†Π΅ΡΡ Π²Π΅Π±-сСрвСра Apache Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Π΄ΠΎΠΌΠ΅Π½Π΅ httpd_t. ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° строго ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ httpd_t. Π’Π΅Π±-ΠΎΠ±ΠΎΠ»ΠΎΡ‡ΠΊΠ° Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ Π²Π½Π΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π° содСрТимого, Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Ρ‚ΡŒ нСсанкционированныС сСтСвыС соСдинСния ΠΈ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΊΠ°ΡΠ°Ρ‚ΡŒΡΡ Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ систСмы. ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ содСрТится Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ прилоТСния.

Π­Ρ‚ΠΎ основноС ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ цСнности SELinux: сдСрТиваниС ΡƒΡ‰Π΅Ρ€Π±Π° ΠΏΡƒΡ‚Π΅ΠΌ изоляции процСссов.

Как Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ SELinux: контСксты бСзопасности ΠΈ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ

SELinux Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΏΡƒΡ‚Π΅ΠΌ присвоСния контСкста бСзопасности (ΠΌΠ΅Ρ‚ΠΊΠΈ) ΠΊΠ°ΠΆΠ΄ΠΎΠΌΡƒ процСссу, Ρ„Π°ΠΉΠ»Ρƒ, ΠΏΠΎΡ€Ρ‚Ρƒ ΠΈ сСтСвому сокСту Π² систСмС. ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚, ΠΊΠ°ΠΊΠΈΠ΅ контСксты ΠΌΠΎΠ³ΡƒΡ‚ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡ‚Π²ΠΎΠ²Π°Ρ‚ΡŒ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ. Π―Π΄Ρ€ΠΎ примСняСт эти ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ΅ доступа.

ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹ΠΉ ΠΏΡ€ΠΈΠΌΠ΅Ρ€

ΠžΠ±ΡŠΠ΅ΠΊΡ‚ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ бСзопасности
ΠŸΡ€ΠΎΡ†Π΅ΡΡ Apachehttpd_t
Π€Π°ΠΉΠ»Ρ‹ Π²Π΅Π±-сайтаhttpd_sys_content_t
Π€Π°ΠΉΠ» ΠΏΠ°Ρ€ΠΎΠ»Π΅ΠΉ Shadowshadow_t

ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ° SELinux Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ httpd_t Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ„Π°ΠΉΠ»Ρ‹ с ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ httpd_sys_content_t. Она Π½Π΅ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ httpd_t Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ shadow_t.

Если Apache β€” Π·Π°ΠΊΠΎΠ½Π½ΠΎ ΠΈΠ»ΠΈ Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ эксплуатации β€” попытаСтся ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ /etc/shadow, ядро ΠΎΡ‚ΠΊΠ»ΠΎΠ½ΠΈΡ‚ запрос ΠΈ Π·Π°ΠΏΠΈΡˆΠ΅Ρ‚ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΡƒΡŽ запись ΠΎ Π½Π°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠΈ Π² /var/log/audit/audit.log. Атака блокируСтся ΠΈ докумСнтируСтся ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

Π Π΅ΠΆΠΈΠΌΡ‹ Ρ€Π°Π±ΠΎΡ‚Ρ‹ SELinux

SELinux Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ‚Ρ€Π΅Ρ… Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ…:

РСТимПовСдСниС
EnforcingΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ. ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ.
PermissiveΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΡ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ, Π½ΠΎ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‚ΡΡ. ПолСзно для Π°ΡƒΠ΄ΠΈΡ‚Π° ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ.
DisabledSELinux ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½. НС рСкомСндуСтся для производствСнных срСд.

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈ установка Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ°

# Check current SELinux status
getenforce
sestatus

# Temporarily switch to permissive mode (no reboot required)
setenforce 0

# Switch back to enforcing mode
setenforce 1

Π§Ρ‚ΠΎΠ±Ρ‹ постоянно ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ, ΠΎΡ‚Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΠΉΡ‚Π΅ /etc/selinux/config ΠΈ установитС SELINUX=enforcing (ΠΈΠ»ΠΈ permissive), Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚Π΅ΡΡŒ.

> Π›ΡƒΡ‡ΡˆΠ°Ρ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°: Π Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°ΠΉΡ‚Π΅ Π½ΠΎΠ²Ρ‹Π΅ сСрвСры Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Permissive. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΆΡƒΡ€Π½Π°Π»Ρ‹ Π°ΡƒΠ΄ΠΈΡ‚Π°, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Π»ΡŽΠ±Ρ‹Π΅ Π·Π°ΠΊΠΎΠ½Π½Ρ‹Π΅ процСссы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚ΠΌΠ΅Ρ‡Π°ΡŽΡ‚ΡΡ, настройтС ваши ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ ΠΈ Π·Π°Ρ‚Π΅ΠΌ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ Π½Π° Enforcing для производства. Π­Ρ‚ΠΎΡ‚ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Π΅ сбои, обСспСчивая Ρ‚ΠΎΡ‡Π½ΠΎΡΡ‚ΡŒ Π²Π°ΡˆΠΈΡ… ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ.

Π’ΠΈΠΏΡ‹ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ SELinux

SELinux поставляСтся с нСсколькими Ρ‚ΠΈΠΏΠ°ΠΌΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ, подходящими для Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… срСд:

Targeted Policy (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈ рСкомСндуСтся)

ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ ограничСния MAC Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ сСтСвым сСрвисам, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ Apache, Nginx, Postfix, Dovecot ΠΈ DNS. ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ процСссы Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚ Π² Π½Π΅ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΌ Π΄ΠΎΠΌΠ΅Π½Π΅. Π­Ρ‚ΠΎ Π»ΡƒΡ‡ΡˆΠΈΠΉ баланс ΠΌΠ΅ΠΆΠ΄Ρƒ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ удобством использования для ΠΏΠΎΠ΄Π°Π²Π»ΡΡŽΡ‰Π΅Π³ΠΎ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Π½Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ VPS ΠΈ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… сСрвСров.

Strict Policy

ΠŸΡ€ΠΈΠΌΠ΅Π½ΡΠ΅Ρ‚ MAC ΠΊΠΎ всСм процСссам Π² систСмС, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ сСансы. ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°Π΅Ρ‚ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡŒΠ½ΡƒΡŽ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ, Π½ΠΎ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ большС управлСния ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°ΠΌΠΈ ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΎΠ³ΠΎ ΠΎΠΏΡ‹Ρ‚Π°.

MLS/MCS (Multi-Level Security / Multi-Category Security)

ΠŸΡ€ΠΎΠ΄Π²ΠΈΠ½ΡƒΡ‚Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для государствСнных, классифицированных ΠΈΠ»ΠΈ высокорСгулируСмых срСд, Π³Π΄Π΅ Π΄Π°Π½Π½Ρ‹Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΠΈΠ·ΠΎΠ»ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… уровнях ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ.

Для Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π° Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π½ΠΈΠΉ производствСнных сСрвСров Targeted Policy являСтся ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹ΠΌ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ SELinux Π²Π°ΠΆΠ΅Π½ для хостинга, DevOps ΠΈ соотвСтствия трСбованиям

SELinux обСспСчиваСт ΠΎΡ‰ΡƒΡ‚ΠΈΠΌΡ‹Π΅ прСимущСства бСзопасности Π² ΡˆΠΈΡ€ΠΎΠΊΠΎΠΌ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… контСкстов:

Π˜Π·ΠΎΠ»ΡΡ†ΠΈΡ процСссов

ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ сСрвис Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² собствСнном Π΄ΠΎΠΌΠ΅Π½Π΅ бСзопасности. ΠšΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚Π°Ρ†ΠΈΡ ΠΎΠ΄Π½ΠΎΠ³ΠΎ сСрвиса β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Π΅Π±-прилоТСния β€” Π½Π΅ прСдоставляСт доступ ΠΊ Π΄Ρ€ΡƒΠ³ΠΈΠΌ сСрвисам, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠΌ Π½Π° Ρ‚ΠΎΠΌ ΠΆΠ΅ хостС. Π­Ρ‚ΠΎ особСнно Ρ†Π΅Π½Π½ΠΎ Π² ΠΌΠ½ΠΎΠ³ΠΎΠΏΡ€ΠΈΠ»ΠΎΠΆΠ½Ρ‹Ρ… сСрвСрных срСдах.

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ

SELinux обСспСчиваСт ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏ Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ядра. ΠŸΡ€ΠΎΡ†Π΅ΡΡΡ‹ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ доступ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ рСсурсам, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΈΠΌ явно Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹. Π”Π°ΠΆΠ΅ Ссли Π·Π»ΠΎΡƒΠΌΡ‹ΡˆΠ»Π΅Π½Π½ΠΈΠΊ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΠΏΡ€Π°Π²Π° root Π² ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½ΠΎΠΌ процСссС, ΠΎΠ½ Π½Π΅ смоТСт ΠΏΡ€Π΅Π²Ρ‹ΡΠΈΡ‚ΡŒ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Π΅ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΎΠΉ.

Π–ΡƒΡ€Π½Π°Π»Ρ‹ Π°ΡƒΠ΄ΠΈΡ‚Π° ΠΈ судСбная экспСртиза

КаТдая ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° ΠΎΡ‚ΠΊΠ°Π·Π°Π½Π½ΠΎΠ³ΠΎ доступа рСгистрируСтся Π² /var/log/audit/audit.log с ΠΏΠΎΠ»Π½Ρ‹ΠΌ контСкстом: задСйствованный процСсс, рСсурс, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ ΠΎΠ½ пытался ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ, контСксты бСзопасности ΠΎΠ±ΠΎΠΈΡ… ΠΈ врСмСнная ΠΌΠ΅Ρ‚ΠΊΠ°. Π­Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ ΡΡƒΠ΄Π΅Π±Π½ΡƒΡŽ экспСртизу послС ΠΈΠ½Ρ†ΠΈΠ΄Π΅Π½Ρ‚Π° Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ эффСктивной.

Π‘Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ²

SELinux ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Π΅Ρ‚ Π²Ρ‹Ρ…ΠΎΠ΄ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΎΠ² Docker ΠΈ Podman Π·Π° ΠΈΡ… Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΈ доступ ΠΊ рСсурсам хоста. Π­Ρ‚ΠΎ критичСский ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π·Π°Ρ‰ΠΈΡ‚Ρ‹ для ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… Π½Π°Π³Ρ€ΡƒΠ·ΠΎΠΊ, Π³Π΄Π΅ уязвимости Π²Ρ‹Ρ…ΠΎΠ΄Π° ΠΈΠ· ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° ΡΠ²Π»ΡΡŽΡ‚ΡΡ извСстным классом Π°Ρ‚Π°ΠΊ.

БоотвСтствиС Π½ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½Ρ‹ΠΌ трСбованиям

SELinux являСтся ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π΅ΠΌ Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊΠ°Ρ… соотвСтствия, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ PCI DSS, HIPAA ΠΈ стандарты бСзопасности Π²ΠΎΠ΅Π½Π½Ρ‹Ρ…/государствСнных ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΉ. Запуск SELinux Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Enforcing с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΎΠΉ часто являСтся ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌ условиСм для прохоТдСния Π°ΡƒΠ΄ΠΈΡ‚ΠΎΠ² бСзопасности Π² Ρ€Π΅Π³ΡƒΠ»ΠΈΡ€ΡƒΠ΅ΠΌΡ‹Ρ… отраслях.

ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ SELinux для систСмных администраторов

Π’ΠΎΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ часто ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ для управлСния SELinux Π² повсСднСвных опСрациях:

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° статуса SELinux

getenforce
sestatus

ВосстановлСниС контСкстов Ρ„Π°ΠΉΠ»ΠΎΠ² послС пСрСмСщСния Π²Π΅Π±-Ρ„Π°ΠΉΠ»ΠΎΠ²

Когда Ρ„Π°ΠΉΠ»Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ вмСсто копирования, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΊΠΈ бСзопасности. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ restorecon для исправлСния:

restorecon -Rv /var/www/html

Бписок ΠΌΠ΅Ρ‚ΠΎΠΊ бСзопасности Ρ„Π°ΠΉΠ»ΠΎΠ²

ls -Z /var/www/html

Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Π²Π΅Π±-сСрвису исходящиС соСдинСния (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, для Π²Ρ‹Π·ΠΎΠ²ΠΎΠ² API ΠΈΠ»ΠΈ проксирования)

setsebool -P httpd_can_network_connect 1

Π Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ Apache ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π°Ρ‚ΡŒΡΡ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ…

setsebool -P httpd_can_network_connect_db 1

ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ Π½Π΅Π΄Π°Π²Π½ΠΈΡ… Π·Π°ΠΏΡ€Π΅Ρ‰Ρ‘Π½Π½Ρ‹Ρ… дСйствий Π² ΠΆΡƒΡ€Π½Π°Π»Π΅ Π°ΡƒΠ΄ΠΈΡ‚Π°

ausearch -m avc -ts recent

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΎΠ³ΠΎ модуля ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ ΠΈΠ· ΠΎΡ‚ΠΊΠ°Π·ΠΎΠ² Π°ΡƒΠ΄ΠΈΡ‚Π°

audit2allow -a -M my_custom_policy
semodule -i my_custom_policy.pp

> Π’Π°ΠΆΠ½ΠΎ: ВсСгда исслСдуйтС ΠΎΡ‚ΠΊΠ°Π·Ρ‹ Π°ΡƒΠ΄ΠΈΡ‚Π° ΠΏΠ΅Ρ€Π΅Π΄ созданиСм ΠΏΡ€Π°Π²ΠΈΠ» Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ. audit2allow β€” это ΠΌΠΎΡ‰Π½Ρ‹ΠΉ инструмСнт, Π½ΠΎ слСпоС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ всСх ΠΎΡ‚ΠΊΠ°Π·ΠΎΠ² ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΡ‚ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ SELinux. ΠŸΠΎΠΉΠΌΠΈΡ‚Π΅, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄ΠΎΠ΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ, ΠΏΡ€Π΅ΠΆΠ΄Π΅ Ρ‡Π΅ΠΌ ΠΏΡ€ΠΈΠΌΠ΅Π½ΡΡ‚ΡŒ Π΅Π³ΠΎ.

Common SELinux Pitfalls and How to Avoid Them

ΠžΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ SELinux вмСсто Π΅Π³ΠΎ исправлСния. НаиболСС распространСнная ошибка администраторов β€” постоянноС ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ SELinux ΠΏΡ€ΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΠΈ ΠΎΡ‚ΠΊΠ°Π·Π°. Π­Ρ‚ΠΎ удаляСт Ρ†Π΅Π»Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ Π·Π°Ρ‰ΠΈΡ‚Ρ‹. ВмСсто этого ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ audit2allow ΠΈ setsebool для Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, сохраняя SELinux Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ.

ΠΠ΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΊΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ² послС Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ развСртывания. Если Π²Ρ‹ Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ Ρ„Π°ΠΉΠ»Ρ‹ прилоТСния, копируя ΠΈΡ… ΠΈΠ· нСстандартного располоТСния, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΡƒΠ½Π°ΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚ΡŒ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΊΠΈ. ВсСгда запускайтС restorecon послС Ρ€ΡƒΡ‡Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ Π² ΠΊΠΎΡ€Π½Π΅Π²Ρ‹Ρ… ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ… Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π°Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π»ΠΎΠ³ΠΎΠ² Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Permissive. ΠŸΡ€ΠΎΠΏΡƒΡΠΊ Ρ„Π°Π·Ρ‹ Permissive ΠΈ ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ нСпосрСдствСнно Π² Ρ€Π΅ΠΆΠΈΠΌ Enforcing Π½Π° Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌ сСрвСрС β€” это Π²Π΅Ρ€Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ ΠΊ Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹ΠΌ сбоям. ВсСгда провСряйтС ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ Π½Π° соотвСтствиС Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌΡƒ Ρ‚Ρ€Π°Ρ„ΠΈΠΊΡƒ ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΡ… ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ.

SELinux ΠΈ AlexHost: готовая ΠΊ использованию Π² production Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ с нуля

Π‘Π΅Ρ€Π²Π΅Ρ€Ρ‹ AlexHost, Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ Π½Π° ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½Ρ‹Ρ… дистрибутивах Linux (AlmaLinux, Rocky Linux, CentOS), ΠΏΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ΡΡ с SELinux ΠΈΠ· ΠΊΠΎΡ€ΠΎΠ±ΠΊΠΈ. НСзависимо ΠΎΡ‚ Ρ‚ΠΎΠ³ΠΎ, Ρ€Π°Π·Π²Π΅Ρ€Ρ‚Ρ‹Π²Π°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹ стСк Π²Π΅Π±-ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, сСрвСр Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡƒΡŽ срСду микросСрвисов, SELinux обСспСчиваСт Π±Π°Π·ΠΎΠ²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ контроля доступа, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π΄Π΅Π»Π°Π΅Ρ‚ ваши Ρ€Π°Π±ΠΎΡ‡ΠΈΠ΅ Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ устойчивыми ΠΊ эксплуатации.

Если Π²Ρ‹ управляСтС своим сСрвСром Ρ‡Π΅Ρ€Π΅Π· панСль управлСния, VPS с cPanel ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ совмСстимы с SELinux Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Targeted, ΠΈ сам cPanel поставляСтся с конфигурациями, ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΌΠΈ SELinux для своих управляСмых сСрвисов.

Для ΠΊΠΎΠΌΠ°Π½Π΄, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌ трСбуСтся ΠΏΠΎΠ»Π½Ρ‹ΠΉ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒ Π½Π°Π΄ своСй ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΎΠΉ бСзопасности β€” Π²ΠΊΠ»ΡŽΡ‡Π°Ρ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈ SELinux, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ MLS ΠΈΠ»ΠΈ усилСниС бСзопасности, управляСмоС соотвСтствиСм β€” Dedicated Servers ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ ΠΈΠ·ΠΎΠ»ΡΡ†ΠΈΡŽ ΠΈ доступ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ root, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ для Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ ΠΈ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ MAC ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠ³ΠΎ уровня Π±Π΅Π· ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠΉ ΠΎΠ±Ρ‰Π΅ΠΉ инфраструктуры.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

SELinux β€” это Π½Π΅ просто Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ бСзопасности, Π° Ρ„ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π½Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ пСрСопрСдСляСт способ примСнСния контроля доступа Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ядра Linux. Благодаря ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡŽ процСссов Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ Π΄ΠΎΠΌΠ΅Π½Π°ΠΌΠΈ бСзопасности, ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ Π½Π°ΠΈΠΌΠ΅Π½ΡŒΡˆΠΈΡ… ΠΏΡ€ΠΈΠ²ΠΈΠ»Π΅Π³ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ±ΠΎΠΉΡ‚ΠΈ Π΄Π°ΠΆΠ΅ root, ΠΈ созданию ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹Ρ… ΠΆΡƒΡ€Π½Π°Π»ΠΎΠ² Π°ΡƒΠ΄ΠΈΡ‚Π° ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠΈ ΠΎΡ‚ΠΊΠ°Π·Π° Π² доступС, SELinux ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ стандартный сСрвСр Linux Π² Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΡƒΡΡ‚ΠΎΠΉΡ‡ΠΈΠ²ΡƒΡŽ ΠΈ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΡƒΡŽ систСму.

Π”Π°, SELinux Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ инвСстиций: ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ контСкстов бСзопасности, написаниС ΠΈΠ»ΠΈ настройка ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊ ΠΈ ΠΏΡ€ΠΈΠ²Π΅Ρ€ΠΆΠ΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‡Π΅ΠΌΡƒ процСссу, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ рассматриваСт ΠΎΡ‚ΠΊΠ°Π·Ρ‹ ΠΊΠ°ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ, Π° Π½Π΅ прСпятствия. Но для любого сСрвСра, ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Π·Π°ΠΏΡƒΡΠΊΠ°ΡŽΡ‰Π΅Π³ΠΎ общСдоступныС сСрвисы ΠΈΠ»ΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅Π³ΠΎ Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π½ΠΎΡ€ΠΌΠ°Ρ‚ΠΈΠ²Π½ΠΎ-ΠΏΡ€Π°Π²ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ соотвСтствия, эти инвСстиции Π½Π΅ ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹ΠΌΠΈ β€” ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡŽΡ‚ΡΡ Π±Π°Π·ΠΎΠ²Ρ‹ΠΌ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.

НастройтС Π΅Π³ΠΎ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ, Π΄Π΅Ρ€ΠΆΠΈΡ‚Π΅ Π΅Π³ΠΎ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Enforcing, ΠΈ SELinux Π±ΡƒΠ΄Π΅Ρ‚ ΠΌΠΎΠ»Ρ‡Π° ΡΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Ρ‚ΡŒ ΡƒΠ³Ρ€ΠΎΠ·Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΎΠΌ случаС скомпромСтировали Π±Ρ‹ всю Π²Π°ΡˆΡƒ инфраструктуру.