Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° Π·Π° систСмния администратор ΠΏΠΎ SELinux: 42 ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π° Π½Π° Π²Π°ΠΆΠ½ΠΈ Π²ΡŠΠΏΡ€ΠΎΡΠΈ

ΠŸΡ€Π΅Π²ΠΎΠ΄ΡŠΡ‚ Π½Π° статията Π΅ ΠΏΠΎΠ΄Π³ΠΎΡ‚Π²Π΅Π½ спСциално Π·Π° студСнтитС ΠΎΡ‚ курса «Администратор LinuxΒ».

Π¨ΠΏΠ°Ρ€Π³Π°Π»ΠΊΠ° Π·Π° систСмния администратор ΠΏΠΎ SELinux: 42 ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π° Π½Π° Π²Π°ΠΆΠ½ΠΈ Π²ΡŠΠΏΡ€ΠΎΡΠΈ

Π’ΡƒΠΊ Ρ‰Π΅ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ΠΈ Π½Π° Π²Π°ΠΆΠ½ΠΈ Π²ΡŠΠΏΡ€ΠΎΡΠΈ Π·Π° ΠΆΠΈΠ²ΠΎΡ‚Π°, всСлСната ΠΈ всичко останало Π² Linux с ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° сигурност.

β€žΠ’Π°ΠΆΠ½Π°Ρ‚Π° истина, Ρ‡Π΅ Π½Π΅Ρ‰Π°Ρ‚Π° Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ са Ρ‚ΠΎΠ²Π°, Π½Π° ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Ρ‚, Π΅ ΠΎΠ±Ρ‰ΠΎΠΈΠ·Π²Π΅ΡΡ‚Π½Π°β€¦β€œ

β€•Π”ΡŠΠ³Π»Π°Ρ Адамс, Автостопом ΠΏΠΎ Π“Π°Π»Π°ΠΊΡ‚ΠΈΠΊΠ°Ρ‚Π°

Бигурност. ПовишаванС Π½Π° надСТдността. Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅. ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°. Π§Π΅Ρ‚ΠΈΡ€ΠΈΡ‚Π΅ ΠΊΠΎΠ½Π½ΠΈΡ†ΠΈ Π½Π° Апокалипсиса Π·Π° систСмния администратор. ОсвСн Π½Π°ΡˆΠΈΡ‚Π΅ Π΅ΠΆΠ΅Π΄Π½Π΅Π²Π½ΠΈ Π·Π°Π΄Π°Ρ‡ΠΈ β€” ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³, Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎ ΠΊΠΎΠΏΠΈΠ΅, внСдряванС, настройка, обновяванС ΠΈ Ρ‚.Π½. β€” Π½ΠΈΠ΅ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° отговарямС Π·Π° сигурността Π½Π° Π½Π°ΡˆΠΈΡ‚Π΅ систСми. Π”ΠΎΡ€ΠΈ Ρ‚Π΅Π·ΠΈ систСми, ΠΏΡ€ΠΈ ΠΊΠΎΠΈΡ‚ΠΎ Π²ΡŠΠ½ΡˆΠ½ΠΈΡΡ‚ доставчик Π½ΠΈ ΠΏΡ€Π΅ΠΏΠΎΡ€ΡŠΡ‡Π²Π° Π΄Π° Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΠΌΠ΅ ΠΏΠΎΠ²ΠΈΡˆΠ΅Π½Π°Ρ‚Π° сигурност. Π’ΠΎΠ²Π° ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚Π° Π½Π° Π˜Ρ‚ΡŠΠ½ Π₯ΡŠΠ½Ρ‚ ΠΎΡ‚ β€žΠœΠΈΡΠΈΡΡ‚Π° Π½Π΅Π²ΡŠΠ·ΠΌΠΎΠΆΠ½Π°β€œ.

Бблъсквайки сС с Ρ‚Π°Π·ΠΈ Π΄ΠΈΠ»Π΅ΠΌΠ°, някои систСмни администратори Ρ€Π΅ΡˆΠ°Π²Π°Ρ‚ Π΄Π° Π²Π·Π΅ΠΌΠ°Ρ‚ синята Ρ‚Π°Π±Π»Π΅Ρ‚ΠΊΠ°, Π·Π°Ρ‰ΠΎΡ‚ΠΎ мислят, Ρ‡Π΅ Π½ΠΈΠΊΠΎΠ³Π° няма Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π°Ρ‚ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π° Π½Π° голСмия Π²ΡŠΠΏΡ€ΠΎΡ Π·Π° ΠΆΠΈΠ²ΠΎΡ‚Π°, всСлСната ΠΈ всичко останало. И, ΠΊΠ°ΠΊΡ‚ΠΎ всички Π·Π½Π°Π΅ΠΌ, Ρ‚ΠΎΠ·ΠΈ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€ Π΅ 42.

Π’ Π΄ΡƒΡ…Π° Π½Π° β€žΠΠ²Ρ‚ΠΎΡΡ‚ΠΎΠΏΠΎΠΌ ΠΏΠΎ Π³Π°Π»Π°ΠΊΡ‚ΠΈΠΊΠ°Ρ‚Π°β€œ, Ρ‚ΡƒΠΊ са прСдставСни 42 ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π° Π½Π° Π²Π°ΠΆΠ½ΠΈ Π²ΡŠΠΏΡ€ΠΎΡΠΈ относно ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΈ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π°Ρ‚Π° SELinux във Π²Π°ΡˆΠΈΡ‚Π΅ систСми.

1. SELinux Π΅ систСма Π·Π° ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»Π½ΠΎ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ°, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ всСки процСс ΠΈΠΌΠ° Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ (label). ВсСки Ρ„Π°ΠΉΠ», ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³ ΠΈ систСмСн ΠΎΠ±Π΅ΠΊΡ‚ ΡΡŠΡ‰ΠΎ ΠΈΠΌΠ°Ρ‚ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈ. ΠŸΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° управляват Π΄ΠΎΡΡ‚ΡŠΠΏΠ° ΠΌΠ΅ΠΆΠ΄Ρƒ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ процСси ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ. Π―Π΄Ρ€ΠΎΡ‚ΠΎ осигурява спазванСто Π½Π° Ρ‚Π΅Π·ΠΈ ΠΏΡ€Π°Π²ΠΈΠ»Π°.

2. Π”Π²Π΅ ΠΎΡ‚ Π½Π°ΠΉ-Π²Π°ΠΆΠ½ΠΈΡ‚Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ са: ΠœΠ°Ρ€ΠΊΠΈΡ€Π°Π½Π΅ β€” Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈΡ€Π°Π½Π΅ (Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, процСси, ΠΏΠΎΡ€Ρ‚ΠΎΠ²Π΅ ΠΈ Ρ‚.Π½.) ΠΈ Π’ΠΈΠΏΠΎΠ²ΠΎ Π½Π°Π»Π°Π³Π°Π½Π΅ (ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·ΠΎΠ»ΠΈΡ€Π° процСситС Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅).

3. ΠŸΡ€Π°Π²ΠΈΠ»Π½ΠΈΡΡ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚Π° user:role:type:level (ΠΏΠΎ ΠΈΠ·Π±ΠΎΡ€).

4. Π¦Π΅Π»Ρ‚Π° Π½Π° осигуряванС Π½Π° многостСпСнна сигурност (ΠœΠ½ΠΎΠ³ΠΎΡΡ‚Π΅ΠΏΠ΅Π½Π½Π° сигурност β€” MLS) Π΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° процСситС (Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ) Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Π½ΠΈΠ²ΠΎΡ‚ΠΎ Π½Π° сигурност Π½Π° Π΄Π°Π½Π½ΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚. НапримСр, сСкрСтСн процСс Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° Ρ‡Π΅Ρ‚Π΅ ΡΠ²Ρ€ΡŠΡ…ΡΠ΅ΠΊΡ€Π΅Ρ‚Π½ΠΈ Π΄Π°Π½Π½ΠΈ.

5. ΠžΡΠΈΠ³ΡƒΡ€ΡΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉΠ½Π° сигурност (ΠœΠ½ΠΎΠ³ΠΎΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΉΠ½Π° сигурност β€” MCS) Π·Π°Ρ‰ΠΈΡ‚Π°Π²Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ процСси Π΅Π΄ΠΈΠ½ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ машини, ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ OpenShift, пСсSandbox SELinux, ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ ΠΈ Ρ‚.Π½.).

6. Настройки Π½Π° ядрото Π·Π° промяна Π½Π° Ρ€Π΅ΠΆΠΈΠΌΠΈΡ‚Π΅ Π½Π° SELinux ΠΏΡ€ΠΈ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅:

  • autorelabel=1 β†’ Π½Π°ΠΊΠ°Ρ€Π° систСмата Π΄Π° стартира ΠΏΡ€Π΅Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈΡ‚Π΅
  • selinux=0 β†’ ядрото Π½Π΅ Π·Π°Ρ€Π΅ΠΆΠ΄Π° инфраструктурата Π½Π° SELinux
  • enforcing=0 β†’ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ Π² Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚Π΅Π»Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ

7. Ако трябва Π΄Π° прСнасочитС цялата систСма:

# touch /.autorelabel
#reboot

Ако систСмната ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π³Ρ€Π΅ΡˆΠΊΠΈ, ΠΌΠΎΠΆΠ΅ Π΄Π° Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° Π·Π°Ρ€Π΅Π΄ΠΈΡ‚Π΅ Π² Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚Π΅Π»Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ, Π·Π° Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ прСнасочванСто ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ.

8. Π—Π° Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅ Π΄Π°Π»ΠΈ SELinux Π΅ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½: # getenforce

9. Π—Π° Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅/ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° SELinux: # setenforce [1|0]

10. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΡΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ Π½Π° SELinux: # sestatus

11. ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π΅Π½ Ρ„Π°ΠΉΠ»: /etc/selinux/config

12. Как Ρ€Π°Π±ΠΎΡ‚ΠΈ SELinux? Π•Ρ‚ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Π·Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π·Π° ΡƒΠ΅Π± ΡΡŠΡ€Π²ΡŠΡ€ Apache:

  • Π”Π²ΠΎΠΈΡ‡Π½ΠΎ прСдставянС: /usr/sbin/httpdβ†’httpd_exec_t
  • ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π΅Π½ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³: /etc/httpdβ†’httpd_config_t
  • ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ Π·Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ с Π»ΠΎΠ³Π°: /var/log/httpd β†’ httpd_log_t
  • Π‘ΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚Π΅Π»Π΅Π½ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³: /var/www/html β†’ httpd_sys_content_t
  • Π‘Ρ‚Π°Ρ€Ρ‚ΠΈΡ€Π°Ρ‰ скрипт: /usr/lib/systemd/system/httpd.service β†’ httpd_unit_file_d
  • ΠŸΡ€ΠΎΡ†Π΅Ρ: /usr/sbin/httpd -DFOREGROUND β†’ httpd_t
  • ΠŸΠΎΡ€Ρ‚ΠΎΠ²Π΅: 80/tcp, 443/tcp β†’ httpd_t, http_port_t

ΠŸΡ€ΠΎΡ†Π΅Ρ, стартиран Π² контСкста httpd_t, ΠΌΠΎΠΆΠ΅ Π΄Π° взаимодСйства с ΠΎΠ±Π΅ΠΊΡ‚ с Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ httpd_something_t.

13. Много ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠ°Ρ‚ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ -Z Π·Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄, създаванС ΠΈ промяна Π½Π° контСкст:

  • ls -Z
  • id -Z
  • ps -Z
  • netstat -Z
  • cp -Z
  • mkdir -Z

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ΠΈΡ‚Π΅ сС установяват, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ сС ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° контСкста Π½Π° родитСлската ΠΈΠΌ дирСктория (с някои ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ). RPM ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π·Π°Π΄Π°Π²Π°Ρ‚ контСксти ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° инсталацията.

14. Има Ρ‡Π΅Ρ‚ΠΈΡ€ΠΈ основни ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΈ Π·Π° Π³Ρ€Π΅ΡˆΠΊΠΈ Π² SELinux, ΠΊΠΎΠΈΡ‚ΠΎ са описани ΠΏΠΎ-ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ Π² Ρ‚ΠΎΡ‡ΠΊΠΈ 15-21 ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ:

  • ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ с ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ‚Π°
  • ΠŸΠΎΡ€Π°Π΄ΠΈ Π½Π΅Ρ‰ΠΎ, ΠΊΠΎΠ΅Ρ‚ΠΎ SELinux трябва Π΄Π° Π·Π½Π°Π΅
  • Π“Ρ€Π΅ΡˆΠΊΠ° Π² ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π°/ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅Ρ‚ΠΎ SELinux
  • Π’Π°ΡˆΠ°Ρ‚Π° информация ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚ΠΈΡ€Π°Π½Π°

15. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ‚Π°: Π°ΠΊΠΎ Π²Π°ΡˆΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² /srv/myweb са ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½ΠΈ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ, Π΄ΠΎΡΡ‚ΡŠΠΏΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΎΡ‚ΠΊΠ°Π·Π°Π½. Π•Ρ‚ΠΎ няколко Π½Π°Ρ‡ΠΈΠ½Π° Π΄Π° ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Ρ‚ΠΎΠ²Π°:

  • Ако Π·Π½Π°Π΅Ρ‚Π΅ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚Π°:
    # semanage fcontext -a -t httpd_sys_content_t '/srv/myweb(/.*)?'
  • Ако Π·Π½Π°Π΅Ρ‚Π΅ Ρ„Π°ΠΉΠ» с Π΅ΠΊΠ²ΠΈΠ²Π°Π»Π΅Π½Ρ‚Π½Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°:
    # semanage fcontext -a -e /srv/myweb /var/www
  • Π’ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°ΠΉΠΊΠΈ контСкста (Π·Π° Π΄Π²Π°Ρ‚Π° случая):
    # restorecon -vR /srv/myweb

16. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌ с ΠΌΠ°Ρ€ΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ‚Π°: Π°ΠΊΠΎ прСмСститС Ρ„Π°ΠΉΠ»Π°, вмСсто Π΄Π° Π³ΠΎ ΠΊΠΎΠΏΠΈΡ€Π°Ρ‚Π΅, Ρ„Π°ΠΉΠ»ΡŠΡ‚ Ρ‰Π΅ Π·Π°ΠΏΠ°Π·ΠΈ своя ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π΅Π½ контСкст. Π—Π° Π΄Π° ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Ρ‚ΠΎΠ·ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ:

  • ΠŸΡ€ΠΎΠΌΠ΅Π½Π΅Ρ‚Π΅ контСкстната ΠΊΠΎΠΌΠ°Π½Π΄Π° с Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚Π°:
    # chcon -t httpd_system_content_t /var/www/html/index.html
  • ΠŸΡ€ΠΎΠΌΠ΅Π½Π΅Ρ‚Π΅ контСкстната ΠΊΠΎΠΌΠ°Π½Π΄Π° с Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚Π° Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ°Ρ‚Π°:
    # chcon --reference /var/www/html/ /var/www/html/index.html
  • Π’ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²Π΅Ρ‚Π΅ контСкста (Π·Π° Π΄Π²Π°Ρ‚Π° случая): # restorecon -vR /var/www/html/

17. Ако SELinux трябва Π΄Π° Π·Π½Π°Π΅, Ρ‡Π΅ HTTPD ΡΠ»ΡƒΡˆΠ° Π½Π° ΠΏΠΎΡ€Ρ‚ 8585, ΡƒΠ²Π΅Π΄ΠΎΠΌΠ΅Ρ‚Π΅ SELinux:

# semanage port -a -t http_port_t -p tcp 8585

18. SELinux трябва Π΄Π° Π·Π½Π°Π΅ логичСски стойности, ΠΊΠΎΠΈΡ‚ΠΎ позволяват промяна Π½Π° части ΠΎΡ‚ ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° Π½Π° SELinux ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° изпълнСниС Π±Π΅Π· Π·Π½Π°Π½ΠΈΠ΅ Π·Π° прСзапис Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° Π½Π° SELinux. НапримСр, Π°ΠΊΠΎ искатС httpd Π΄Π° ΠΈΠ·ΠΏΡ€Π°Ρ‰Π° ΠΈΠΌΠ΅ΠΉΠ», Π²ΡŠΠ²Π΅Π΄Π΅Ρ‚Π΅: # setsebool -P httpd_can_sendmail 1

19. SELinux трябва Π΄Π° Π·Π½Π°Π΅ логичСски стойности Π·Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅/ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° настройки Π½Π° SELinux:

  • Π—Π° Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ всички логичСски стойности: # getsebool -a
  • Π—Π° Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ описаниСто Π½Π° всяка: # semanage boolean -l
  • Π—Π° Π΄Π° Π·Π°Π΄Π°Π΄Π΅Ρ‚Π΅ логичСско Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅: # setsebool [_boolean_] [1|0]
  • Π—Π° постоянно Π·Π°Π΄Π°Π²Π°Π½Π΅ Π΄ΠΎΠ±Π°Π²Π΅Ρ‚Π΅ -P. НапримСр: # setsebool httpd_enable_ftp_server 1 -P

20. ΠŸΠΎΠ»ΠΈΡ‚ΠΈΠΊΠΈΡ‚Π΅/Π΄ΠΎΠ±Π°Π²ΠΊΠΈΡ‚Π΅ Π½Π° SELinux ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ Π³Ρ€Π΅ΡˆΠΊΠΈ, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ:

  • НСправилни ΠΊΠΎΠ΄ΠΎΠ²ΠΈ ΠΏΡŠΡ‚Π΅ΠΊΠΈ
  • ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ
  • ΠŸΡ€Π΅Π½Π°ΡΠΎΡ‡Π²Π°Π½Π΅ Π½Π° stdout
  • Π˜Π·Ρ‚ΠΈΡ‡Π°Π½ΠΈΡ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ дСскриптори
  • Изпълнима ΠΏΠ°ΠΌΠ΅Ρ‚
  • Π›ΠΎΡˆΠΎ построСни Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ

ΠžΡ‚Π²Π°Ρ€ΡΠΉΡ‚Π΅ Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈ (Π½Π΅ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°ΠΉΡ‚Π΅ ΠΎΡ‚Ρ‡Π΅Ρ‚ Π² Bugzilla; Π² Bugzilla няма SLA).

21. Π’Π°ΡˆΠ°Ρ‚Π° информация ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚ΠΈΡ€Π°Π½Π°, Π°ΠΊΠΎ ΠΈΠΌΠ°Ρ‚Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈ Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΎΠΏΠΈΡ‚Π²Π°Ρ‚ Π΄Π°:

  • Π—Π°Ρ€Π΅Π΄ΠΈΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π½Π° ядрото
  • Π˜Π·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ Ρ€Π΅ΠΆΠΈΠΌΠ° Π½Π° ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° SELinux
  • ΠŸΠΈΡˆΠ΅Ρ‚Π΅ Π² etc_t/shadow_t
  • ΠŸΡ€ΠΎΠΌΠ΅Π½Π΅Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»Π°Ρ‚Π° Π½Π° iptables

22. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚ΠΈ Π½Π° SELinux Π·Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π·Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°:

# yum -y install setroubleshoot setroubleshoot-server

РСстартирайтС ΠΈΠ»ΠΈ пСрСзапустСтС auditd слСд инсталиранСто.

23. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅

journalctl

Π·Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° списък с всички Π»ΠΎΠ³ΠΎΠ²Π΅, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с setroubleshoot:

# journalctl -t setroubleshoot --since=14:20

24. Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ journalctl Π·Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° списък с всички Π»ΠΎΠ³ΠΎΠ²Π΅, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ Π½Π° SELinux. НапримСр:

# journalctl _SELINUX_CONTEXT=system_u:system_r:policykit_t:s0

25. ΠŸΡ€ΠΈ възникванС Π½Π° Π³Ρ€Π΅ΡˆΠΊΠ° Π½Π° SELinux, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ Π»ΠΎΠ³ setroubleshoot с ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π·Π° няколко възмоТни Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ.
НапримСр, ΠΎΡ‚ journalctl:

Jun 14 19:41:07 web1 setroubleshoot: SELinux прСдотвратява httpd ΠΎΡ‚ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Π½Π° Ρ„Π°ΠΉΠ»Π° /var/www/html/index.html. Π—Π° пълния ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ пуснСтС: sealert -l 12fd8b04-0119-4077-a710-2d0e0ee5755e

# sealert -l 12fd8b04-0119-4077-a710-2d0e0ee5755e
SELinux прСдотвратява httpd ΠΎΡ‚ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Π½Π° Ρ„Π°ΠΉΠ»Π° /var/www/html/index.html.

***** Плъгин restorecon (99.5 % увСрСност) ΠΏΡ€Π΅Π΄Π»Π°Π³Π° ************************

Ако искатС Π΄Π° ΠΏΠΎΠΏΡ€Π°Π²ΠΈΡ‚Π΅ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚Π°,
/var/www/html/index.html подразбиращият Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ трябва Π΄Π° бъдС httpd_syscontent_t.
Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° restorecon.
ΠŸΡ€Π°Π²Π΅Ρ‚Π΅
# /sbin/restorecon -v /var/www/html/index.html

26. Π›ΠΎΠ³ΠΈΡ€Π°Π½Π΅: SELinux записва информация Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ мСста:

  • /var/log/messages
  • /var/log/audit/audit.log
  • /var/lib/setroubleshoot/setroubleshoot_database.xml

27. Π›ΠΎΠ³ΠΈΡ€Π°Π½Π΅: Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΎΡ‚ SELinux Π² логовия Π°ΡƒΠ΄Π°:

# ausearch -m AVC,USER_AVC,SELINUX_ERR -ts today

28. Π—Π° Π΄Π° Π½Π°ΠΌΠ΅Ρ€ΠΈΡ‚Π΅ ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ SELinux Access Vector Cache (AVC) Π·Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° услуга:

# ausearch -m avc -c httpd

29. Π£Ρ‚ΠΈΠ»ΠΈΡ‚Π° audit2allow ΡΡŠΠ±ΠΈΡ€Π° информация ΠΎΡ‚ Π»ΠΎΠ³ΠΎΠ²Π΅Ρ‚Π΅ Π½Π° Π·Π°Π±Ρ€Π°Π½Π΅Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΈ слСд Ρ‚ΠΎΠ²Π° Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° ΠΏΡ€Π°Π²ΠΈΠ»Π° Π·Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° Π½Π° SELinux. НапримСр:

  • Π—Π° Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌΠΎ описаниС Π½Π° ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π°Ρ‚Π° Π·Π° ΠΎΡ‚ΠΊΠ°Π·Π° Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏ: # audit2allow -w -a
  • Π—Π° Π΄Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄Π°Ρ‚Π΅ ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π·Π° ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° Ρ‚ΠΈΠΏΠΎΠ²Π΅, Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π²Π°Ρ‰ΠΎ Π·Π°Π±Ρ€Π°Π½Π΅Π½ Π΄ΠΎΡΡ‚ΡŠΠΏ: # audit2allow -a
  • Π—Π° Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ потрСбитСлски ΠΌΠΎΠ΄ΡƒΠ»: # audit2allow -a -M mypolicy
  • ΠžΠΏΡ†ΠΈΡ -M създава Ρ„Π°ΠΉΠ» Π·Π° ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΡ€ΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° Ρ‚ΠΈΠΏ (.te) с ΡƒΠΊΠ°Π·Π°Π½ΠΎΡ‚ΠΎ ΠΈΠΌΠ΅ ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π° ΠΏΡ€Π°Π²ΠΈΠ»ΠΎΡ‚ΠΎ Π² ΠΏΠ°ΠΊΠ΅Ρ‚ Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° (.pp): mypolicy.pp mypolicy.te
  • Π—Π° Π΄Π° инсталиратС потрСбитСлски ΠΌΠΎΠ΄ΡƒΠ»: # semodule -i mypolicy.pp

30. Π—Π° Π΄Π° настроитС ΠΎΡ‚Π΄Π΅Π»Π΅Π½ процСс (Π΄ΠΎΠΌΠ΅Π½) Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌ Π½Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅: # semanage permissive -a httpd_t

31. Ако Π²Π΅Ρ‡Π΅ Π½Π΅ искатС Π΄ΠΎΠΌΠ΅ΠΉΠ½ΡŠΡ‚ Π΄Π° бъдС Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½: # semanage permissive -d httpd_t

32. Π—Π° Π΄Π° ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ всички Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈ Π΄ΠΎΠΌΠ΅ΠΉΠ½ΠΈ: # semodule -d permissivedomains

33. Π’ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΠ°Ρ‚Π° Π½Π° SELinux MLS: # yum install selinux-policy-mls
Π² /etc/selinux/config:

SELINUX=permissive
SELINUXTYPE=mls

Π£Π²Π΅Ρ€Π΅Ρ‚Π΅ сС, Ρ‡Π΅ SELinux Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² Ρ€Π΅ΠΆΠΈΠΌ Π½Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅: # setenforce 0
Π˜Π·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ скрипт fixfiles, Π·Π° Π΄Π° сС Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€Π°, Ρ‡Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡ€Π΅Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚ΠΈΡ€Π°Π½ΠΈ ΠΏΡ€ΠΈ слСдващото рСстартиранС:

# fixfiles -F onboot # reboot

34. Π‘ΡŠΠ·Π΄Π°ΠΉΡ‚Π΅ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π½Π° MLS: # useradd -Z staff_u john

Използвайки ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° useradd, ΡΠ²ΡŠΡ€ΠΆΠ΅Ρ‚Π΅ Π½ΠΎΠ² ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» с ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π» Π½Π° SELinux (Π² Ρ‚ΠΎΠ·ΠΈ случай, staff_u).

35. Π—Π° Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅Ρ‚ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° SELinux ΠΈ Linux: # semanage login -l

36. ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Ρ‚Π΅ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π·Π° потрСбитСля: # semanage login --modify --range s2:c100 john

37. Π—Π° Π΄Π° ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Ρ‚Π΅ Π΅Ρ‚ΠΈΠΊΠ΅Ρ‚Π° Π² Π΄ΠΎΠΌΠ°ΡˆΠ½Π°Ρ‚Π° дирСктория Π½Π° потрСбитСля (ΠΏΡ€ΠΈ нСобходимост): # chcon -R -l s2:c100 /home/john

38. Π—Π° Π΄Π° Π²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ‚Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ: # chcat -L

39. Π—Π° Π΄Π° ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈΡ‚Π΅ ΠΈΠ»ΠΈ Π΄Π° Π·Π°ΠΏΠΎΡ‡Π½Π΅Ρ‚Π΅ Π΄Π° ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚Π΅ свои собствСни, ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Ρ‚Π΅ Ρ„Π°ΠΉΠ»Π° ΠΏΠΎ слСдния Π½Π°Ρ‡ΠΈΠ½:

/etc/selinux/_<selinuxtype>_/setrans.conf

40. Π—Π° Π΄Π° стартиратС ΠΊΠΎΠΌΠ°Π½Π΄Π° ΠΈΠ»ΠΈ скрипт Π² ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ Ρ„Π°ΠΉΠ», Ρ€ΠΎΠ»ΠΈ ΠΈ контСкст Π½Π° потрСбитСля:

# runcon -t initrc_t -r system_r -u user_u yourcommandhere

  • -t контСкст Π½Π° Ρ„Π°ΠΉΠ»Π°
  • -r контСкст Π½Π° ролята
  • -u контСкст Π½Π° потрСбитСля

41. ΠšΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ, Ρ€Π°Π±ΠΎΡ‚Π΅Ρ‰ΠΈ с Π΄Π΅Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½ SELinux:

  • Podman: # podman run --security-opt label=disable …
  • Docker: # docker run --security-opt label=disable …

42. Ако трябва Π΄Π° прСдоставитС Π½Π° ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€Π° пълСн Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ систСмата:

  • Podman: # podman run --privileged …
  • Docker: # docker run --privileged …

И Π²Π΅Ρ‡Π΅ Π·Π½Π°Π΅Ρ‚Π΅ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€Π°. Π—Π°Ρ‚ΠΎΠ²Π°, моля: Π½Π΅ ΠΏΠ°Π½ΠΈΠΊΡŒΠΎΡΠ²Π°ΠΉΡ‚Π΅ ΠΈ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°ΠΉΡ‚Π΅ SELinux.

Π›ΠΈΠ½ΠΊΠΎΠ²Π΅:

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster