# Bezpečnost Moodle po PHP2Shell: jak správně zabezpečit vzdělávací platformy

> Zabezpečte Moodle po PHP2Shell: ověřte PHP v Server > Prostředí, restartujte cron, chraňte moodledata a zkontrolujte pluginy i účty správců.

Zdroj: https://phpsos.de/cs/plattformen/moodle/  
Stav: 25.10.2026  
Poskytovatel: PHP SOS, Nouzová pomoc pro PHP a bezpečnost serverů. Okamžitá pomoc přes WhatsApp: https://wa.me/491736494914?text=Dobr%C3%BD%20den%2C%20PHP%20SOS%2C%20pot%C5%99ebujeme%20pomoc%20s%20na%C5%A1%C3%ADm%20PHP%20serverem.%20Firma%3A%20%E2%80%A6%20Web%3A%20%E2%80%A6

**Stručně:** Bezpečnost Moodle závisí po PHP2Shell na PHP serveru, ne na Moodle. Protože vzdělávací platformy zpracovávají data žáků, studentů a zaměstnanců, je rychlé jednání důležité. Záplatujte PHP pro web i cron, restartujte všechny procesy a zkontrolujte `config.php`, `moodledata`, pluginy a účty správců.

## Co PHP2Shell znamená pro provozovatele Moodle

Moodle je rozšířeno na školách, vysokých školách, v dalším vzdělávání i pro interní školení ve firmách. Platforma spravuje jména, e-mailové adresy, příslušnost ke kurzům, známky, odevzdané práce a příspěvky ve fórech, na školách často nezletilých. Zranitelnosti PHP CVE-2026-109618 a CVE-2026-109619 umožňují podle týmu PHP spuštění škodlivého kódu na dálku bez přihlášení.

Servery Moodle jsou téměř vždy dostupné z internetu, protože se studující učí z domova. BSI (německý spolkový úřad pro informační bezpečnost) doporučuje při varovném stupni 3 okamžitou aktualizaci a, pokud to nejde, dočasné odpojení webových serverů od sítě. Pro školy a vzdělávací instituce je to organizačně obtížné, ale plánovatelné. Poznámky specifické pro obor najdete v článku [IT bezpečnost pro školy a vzdělávací instituce](https://phpsos.de/cs/branchen/schulen-bildung/).

## Bezpečnost Moodle: kontrola verze PHP pro web i cron

V nabídce **Správa webu > Server > Prostředí** kontroluje Moodle verzi PHP a další požadavky. V Server > Informace o PHP vidí administrátoři navíc úplné údaje o PHP. Obojí popisuje webové PHP.

Moodle dále potřebuje úlohu cron, která pravidelně spouští `admin/cli/cron.php` přes PHP pro příkazovou řádku. Tato verze se může lišit a musí být také záplatována. Opravené verze upstreamu jsou 8.5.12, 8.4.27, 8.3.36 a 8.2.35; backporty často nesou starší čísla. Které verze PHP vaše verze Moodle podporuje, ověříte podle systémových požadavků v dokumentaci na moodle.org. Jak poté čistě restartovat všechny procesy, popisuje článek [Restart PHP-FPM a všech workerů](https://phpsos.de/cs/php2shell/php-fpm-neustart/).

## Adresáře a konfigurace v Moodle

| Místo | Obsah | Bod kontroly |
|---|---|---|
| `config.php` | Přístup k databázi, `wwwroot`, cesta k `moodledata` | Vložený kód, heslo při podezření změnit |
| `moodledata/` | Úložiště souborů, odevzdané práce, relace, cache | Mimo kořen dokumentů, žádné soubory PHP |
| `mod/`, `blocks/`, `local/`, `theme/` | Aktivity, bloky, lokální rozšíření, vzhledy | Neznámé nebo změněné pluginy |
| `admin/cli/` | Skripty příkazové řádky | Použitelné jen přes CLI |

Moodle nabízí nastavení, které brání změně cest k programům přes webové rozhraní. Patří do `config.php` a ztěžuje volání programů na serveru přes ukradený účet správce:

```php
$CFG->preventexecpath = true;
```

Neškodné kontroly na příkazové řádce, jako uživatel webového serveru:

```bash
# Vypsat vlastní kontroly stavu a bezpečnosti Moodle
php admin/cli/checks.php
php admin/cli/checks.php --type=security
# Najít soubory PHP v datovém adresáři (upravit cestu)
find /pfad/zu/moodledata -type f -name "*.php"
```

> **Důležité:**
> Při podezření na únik dat na škole nebo vysoké škole je rychle zapojeno několik míst: vedení školy, zřizovatel, pověřenci pro ochranu osobních údajů a případně dozorový úřad. Zálohujte logy od 20. 10. 2026 a každé opatření zdokumentujte s časem.

## Pluginy, účty správců a nahrávky

Praktická rada pro plánování: aktualizace PHP a restarty by neměly připadnout na zkouškové období ani na probíhající online testy. Moodle má režim údržby, který uživatele předem informuje. Před PHP2Shell ale nechrání, protože i stránku údržby doručuje PHP.

Moodle žije z pluginů: aktivit, zkušebních nástrojů, napojení na videokonference a školní správu. Každý plugin je dodatečný kód PHP a musí odpovídat verzi Moodle. V části Správa webu Moodle zobrazuje dostupné aktualizace jádra a pluginů. Pluginy, které už nikdo nepoužívá, odstraňte úplně.

Zkontrolujte seznam administrátorů webu a globální role s rozsáhlými právy. Učitelé a tvůrci kurzů obvykle globální práva nepotřebují. Aktivujte dvoufázové přihlášení alespoň pro administrátory. Povolené typy souborů pro nahrávání by měly být vymezeny co nejpřísněji; rady nabízí článek [Bezpečné nahrávání souborů v PHP](https://phpsos.de/cs/ratgeber/datei-upload-sicher/).

## Co aktualizace Moodle zvládne a co ne

Aktualizace Moodle uzavře chyby v Moodle a často umožní novější verze PHP. Nezáplatuje PHP, nerestartuje ani webové procesy, ani procesy cron a neodstraní cizí soubory z `moodledata`, další administrátory ani změněné pluginy. Ani to, zda v době před záplatou unikla data, aktualizace nezodpoví.

Moodle protokoluje přihlášení a akce také ve vlastních logech, které administrátoři najdou v části Správa webu > Sestavy. Hledejte tam cíleně nápadná přihlášení administrátorů, nové účty s globálními rolemi a instalace pluginů od 17. 10. 2026. Tyto záznamy exportujte dříve, než automatické čištění starší data smaže. Sestavy doplňují logy webového serveru, ale nenahrazují je.

## Jak konkrétně pomáhá PHP SOS?

- Ujasníme odpovědnost za PHP a necháme si potvrdit stav záplat a restart webu i cronu.
- Zálohujeme logy, databázi a `moodledata` před každou změnou.
- Kontrolujeme konfiguraci, pluginy, administrátory, role a nahrávky.
- Na přání platformu trvale spravujeme v rámci [bezpečnostní servisní smlouvy](https://phpsos.de/cs/leistungen/security-wartungsvertrag/), přizpůsobené školnímu roku a zkouškovým obdobím.


## Časté dotazy

**Týká se PHP2Shell Moodle?**  
Moodle samo žádnou novou zranitelnost nemá, ale běží na PHP. Pokud PHP serveru není záplatované, může útočník podle týmu PHP spustit kód bez přihlášení. Aktualizace Moodle na tom nic nemění.

**Kde v Moodle vidím verzi PHP?**  
V nabídce Správa webu > Server > Prostředí kontroluje Moodle verzi PHP vůči svým požadavkům. Zda je nasazen backport, Moodle neukazuje; to potvrdí provozovatel serveru.

**Proč musí moodledata ležet mimo webový adresář?**  
Jsou tam nahrané soubory, odevzdané práce, relace a cache. Pokud je adresář dostupný přes web, lze obsah případně vyvolat přímo. Moodle proto vyžaduje umístění mimo kořen dokumentů.

**Kdo odpovídá za aktualizaci PHP u škol?**  
Je to různé: zřizovatel školy, zemský provozní úřad, komunální datové centrum nebo dodavatel. Odpovědnost ujasněte písemně a nechte si potvrdit stav záplat a restart.

## Zdroje

- [php.net: bezpečnostní oznámení](https://www.php.net/)
- [Moodle](https://moodle.org/)
- [BSI (německý spolkový úřad pro informační bezpečnost)](https://www.bsi.bund.de/)
- [GDPR čl. 33](https://dsgvo-gesetz.de/art-33-dsgvo/)
