Почему безопасность Moodle — не опция
В Moodle хранятся персональные данные студентов — это регулируется 152-ФЗ. Утечка или взлом могут привести к штрафам Роскомнадзора и репутационному ущербу. 12 настроек ниже закрывают 90% типичных уязвимостей.
1. HTTPS везде
В config.php: $CFG->wwwroot = 'https://your.domain';. Редирект с HTTP на HTTPS через nginx. Проверьте — не должно быть предупреждений о смешанном контенте.
2. Регулярные обновления
Moodle выпускает security releases каждые 2 недели. Включите уведомления: Site administration → Notifications → Enable update notifications. Обновляйте сначала на тестовом стенде.
3. Защита от брутфорса
Site administration → Security → Site security settings: Account lockout threshold: 5 попыток, lockout duration: 30 минут. Дополнительно — fail2ban на сервере.
4. Двухфакторная аутентификация
Плагин factor_totp входит в ядро Moodle 4.x. Site administration → Plugins → Authentication → Manage multifactor authentication. Сделайте 2FA обязательным для ролей Administrator и Manager.
5. Принцип минимальных привилегий
Никогда не давайте Teacher capability moodle/site:config. Регулярно проверяйте: Site administration → Users → Permissions → Define roles.
6. Политика паролей
Минимум 10 символов, заглавные, цифры, спецсимволы. Срок действия — 180 дней для административных аккаунтов.
7. Автоматические бэкапы
Ежедневный dump MySQL + rsync файлов на внешнее хранилище. Ежемесячно — тестовое восстановление. Подробнее: настройка бэкапов Moodle.
8. Защита config.php
Права: chmod 440 config.php, владелец — www-data. В nginx — запрет прямого доступа к *.php в директории moodledata.
9. Антивирусная проверка файлов
Плагин antivirus_clamav сканирует все загружаемые файлы. Критично, если студенты сдают задания с исполняемыми файлами.
10. Мониторинг событий
Site administration → Reports → Security overview — запускайте ежемесячно.
11. Ограничение входа для администраторов
Если администраторы работают из фиксированных IP — ограничьте доступ к /admin/* через nginx.
12. Регулярный аудит
Раз в год: проверка ролей, устаревших плагинов, логов подозрительных входов. Хотите заказать аудит? Напишите мне. Также: чек-лист готовности Moodle.
Опишите задачу — расскажу, как решить её конкретно в вашем случае. Свяжитесь — разберём вместе.