# Сигурност на Moodle след PHP2Shell: как да защитите правилно платформи за обучение

> Защитете Moodle след PHP2Shell: проверете PHP под Server > Environment, рестартирайте cron, предпазете moodledata, проверете плъгините и админите.

Източник: https://phpsos.de/bg/plattformen/moodle/  
Актуалност: 25.10.2026  
Доставчик: PHP SOS, Спешна помощ за PHP и сигурност на сървъри. Незабавна помощ по WhatsApp: https://wa.me/491736494914?text=%D0%97%D0%B4%D1%80%D0%B0%D0%B2%D0%B5%D0%B9%D1%82%D0%B5%2C%20PHP%20SOS%2C%20%D0%B8%D0%BC%D0%B0%D0%BC%D0%B5%20%D0%BD%D1%83%D0%B6%D0%B4%D0%B0%20%D0%BE%D1%82%20%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%20%D1%81%20%D0%BD%D0%B0%D1%88%D0%B8%D1%8F%20PHP%20%D1%81%D1%8A%D1%80%D0%B2%D1%8A%D1%80.%20%D0%A4%D0%B8%D1%80%D0%BC%D0%B0%3A%20%E2%80%A6%20%D0%A3%D0%B5%D0%B1%D1%81%D0%B0%D0%B9%D1%82%3A%20%E2%80%A6

**Накратко:** Сигурността на Moodle зависи след PHP2Shell от PHP на сървъра, а не от Moodle. Тъй като платформите за обучение обработват данни на ученици, студенти и служители, бързото действие е важно. Пачнете PHP за уеб и cron, рестартирайте всички процеси и проверете `config.php`, `moodledata`, плъгините и админ акаунтите.

## Какво означава PHP2Shell за операторите на Moodle

Moodle е разпространен в училища, висши училища, в продължаващото обучение и за вътрешни обучения във фирми. Платформата управлява имена, имейл адреси, принадлежност към курсове, оценки, предадени изпитни работи и публикации във форуми, в училищата често на непълнолетни. PHP уязвимостите CVE-2026-109618 и CVE-2026-109619 позволяват според екипа на PHP изпълнение на злонамерен код от разстояние без вход в системата.

Сървърите на Moodle са почти винаги достъпни от интернет, защото обучаващите се работят от вкъщи. BSI (Федерална служба за информационна сигурност на Германия) препоръчва при ниво на предупреждение 3 незабавна актуализация и, ако това не е възможно, уеб сървърите временно да се изключат от мрежата. За училищата и образователните институции това е организационно трудно, но може да се планира. Специфични за бранша насоки ще намерите на страницата [ИТ сигурност за училища и образователни институции](https://phpsos.de/bg/branchen/schulen-bildung/).

## Сигурност на Moodle: проверка на версията на PHP за уеб и cron

Под **Site administration > Server > Environment** Moodle проверява версията на PHP и други изисквания. Под Server > PHP info администраторите виждат допълнително пълните данни за PHP. И двете описват уеб PHP.

Moodle се нуждае освен това от cron задача, която редовно изпълнява `admin/cli/cron.php` през PHP за командния ред. Тази версия може да се различава и също трябва да е пачната. Поправените версии на оригиналния проект са 8.5.12, 8.4.27, 8.3.36 и 8.2.35; backport-овете често носят по-стари номера. Кои версии на PHP поддържа Вашата версия на Moodle, проверете според системните изисквания в документацията на moodle.org. Как да рестартирате после всички процеси чисто, пише в [Рестартиране на PHP-FPM и на всички worker процеси](https://phpsos.de/bg/php2shell/php-fpm-neustart/).

## Директории и конфигурация в Moodle

| Място | Съдържание | Какво да проверите |
|---|---|---|
| `config.php` | достъп до базата данни, `wwwroot`, път към `moodledata` | вмъкнат код, при подозрение сменете паролата |
| `moodledata/` | файлово хранилище, предадени работи, сесии, кешове | извън коренната директория, без PHP файлове |
| `mod/`, `blocks/`, `local/`, `theme/` | дейности, блокове, локални разширения, дизайни | непознати или променени плъгини |
| `admin/cli/` | скриптове за командния ред | ползват се само през CLI |

Moodle предлага настройка, която пречи на промяната на пътищата до програми през уеб интерфейса. Тя принадлежи в `config.php` и затруднява извикването на програми на сървъра чрез отвлечен админ акаунт:

```php
$CFG->preventexecpath = true;
```

Безопасни проверки в командния ред, като потребител на уеб сървъра:

```bash
# Извеждане на собствените проверки на Moodle за състояние и сигурност
php admin/cli/checks.php
php admin/cli/checks.php --type=security
# Търсене на PHP файлове в директорията с данни (адаптирайте пътя)
find /pfad/zu/moodledata -type f -name "*.php"
```

> **Важно:**
> При подозрение за изтичане на данни в училище или висше училище бързо се включват няколко места: училищното ръководство, органът, длъжностните лица по защита на данните и при нужда надзорният орган. Запазете логовете от 20.10.2026 г. нататък и документирайте всяка мярка с час.

## Плъгини, админ акаунти и качвания

Практичен съвет за планирането: актуализациите на PHP и рестартиранията не трябва да попадат в изпитни периоди или в текущи онлайн тестове. Moodle има режим за поддръжка, който информира потребителите предварително. Срещу PHP2Shell той обаче не защитава, защото и страницата за поддръжка се доставя от PHP.

Moodle живее от плъгини: дейности, инструменти за изпити, връзки с видеоконференции и с училищно управление. Всеки плъгин е допълнителен PHP код и трябва да съответства на версията на Moodle. Под Site administration Moodle показва налични актуализации за ядрото и плъгините. Премахнете напълно плъгините, които никой вече не ползва.

Проверете списъка на администраторите на сайта и глобалните роли с далечни права. Учителите и създателите на курсове обикновено не се нуждаят от глобални права. Активирайте двуфакторното удостоверяване най-малко за администраторите. Разрешените типове файлове за качване трябва да са възможно най-тесни; насоки за това предлага [Сигурно реализиране на качване на файлове в PHP](https://phpsos.de/bg/ratgeber/datei-upload-sicher/).

## Какво може актуализацията на Moodle и какво не

Актуализация на Moodle затваря грешки в Moodle и често позволява по-нови версии на PHP. Тя не пачва PHP, не рестартира нито уеб, нито cron процеси и не премахва чужди файлове от `moodledata`, допълнителни администратори и променени плъгини. И дали през времето преди пача са изтекли данни, актуализацията не отговаря.

Moodle записва входовете и действията допълнително в собствени логове, които администраторите разглеждат под Site administration > Reports. Търсете там целенасочено нередни входове на администратори, нови акаунти с глобални роли и инсталации на плъгини от 17.10.2026 г. нататък. Експортирайте тези записи, преди автоматични почиствания да изтрият по-старите данни. Отчетите допълват логовете на уеб сървъра, но не ги заменят.

## Как помага PHP SOS конкретно?

- Изясняваме отговорността за PHP и получаваме потвърждение за състоянието на пача и рестартирането на уеб и cron.
- Запазваме логове, база данни и `moodledata` преди всяка промяна.
- Проверяваме конфигурацията, плъгините, администраторите, ролите и качванията.
- При желание поддържаме платформата постоянно в [договора за поддръжка на сигурността](https://phpsos.de/bg/leistungen/security-wartungsvertrag/), съобразено с учебната година и изпитните периоди.


## Често задавани въпроси

**Засегнат ли е Moodle от PHP2Shell?**  
Самият Moodle няма нова уязвимост, но работи на PHP. Ако PHP на сървъра е непачнат, според екипа на PHP нападател може да изпълнява код без вход в системата. Актуализацията на Moodle не променя това.

**Къде виждам версията на PHP в Moodle?**  
Под Site administration > Server > Environment Moodle проверява версията на PHP спрямо изискванията си. Дали е внесен backport, Moodle не показва; това потвърждава операторът на сървъра.

**Защо moodledata трябва да е извън уеб директорията?**  
Там лежат качени файлове, предадени работи, сесии и кешове. Ако директорията е достъпна през уеб, съдържанието може да се извика директно. Moodle затова изисква място извън коренната директория.

**Кой отговаря за актуализацията на PHP в училищата?**  
Различно е: училищният орган, областно предприятие, общински център за данни или доставчик. Изяснете отговорността писмено и поискайте потвърждение за състоянието на пача и рестартирането.

## Източници

- [php.net: Съобщения за сигурност](https://www.php.net/)
- [Moodle](https://moodle.org/)
- [BSI (Федерална служба за информационна сигурност на Германия)](https://www.bsi.bund.de/)
- [ОРЗД, чл. 33](https://dsgvo-gesetz.de/art-33-dsgvo/)
