
How Schools Can Host Their Own Learning Platforms Securely
Many schools start with a free hosted classroom tool and later run into its limits. They have no say over where student data sits, features change without notice, and the vendor will not support the integrations teachers ask for. Running an open-source learning platform such as Moodle on infrastructure the school controls solves those problems and creates a new one, which is security.
A secure self-hosted platform does not require a large IT department. It requires a short list of controls applied consistently, plus a hosting setup that removes the weakest points before the first pupil logs in.
Choosing where the platform lives
The first decision is physical. A server in a cupboard at school depends on the building's power, cooling and internet line, and a single outage during exam week can shut out every pupil at once. Renting a virtual or dedicated server in a professional data centre removes those weak points while keeping full administrative control in the school's hands.
Providers such as Delta.BG offer servers located in Bulgaria, which keeps student records inside the EU and simplifies data protection paperwork under GDPR. Local support in the same time zone also matters when a teacher reports a problem at 7:45 on a Monday.
Ask the provider about network-level DDoS filtering, snapshot backups and how quickly failed hardware is replaced. Schools rarely think about denial-of-service attacks until a disgruntled student rents one for a few euros on the morning of a test.
Check also whether the provider offers out-of-band console access, which lets an administrator recover a server that has locked itself out after a bad firewall rule.
What attackers actually go after
School systems hold an attractive mix of data, including names, addresses, grades, medical notes, special education records and staff financial details. The US Cybersecurity and Infrastructure Security Agency studied the problem in depth, and its report on safeguarding K-12 organisations from cybersecurity threats found that publicly disclosed incidents at US schools rose from around 400 in 2018 to a cumulative total of more than 1,300 by 2021.
The same report cites data from K12 SIX showing that 55% of school data breaches between 2016 and 2021 happened through vendors rather than the schools themselves. In January 2022 a ransomware attack on a single website hosting company took down the sites of 5,000 schools at once, and some could not even email families about closures.
The consequences are measured in lost teaching. According to Government Accountability Office figures quoted in the report, learning time lost after an attack ranged from three days to three weeks, and full recovery took between two and nine months.
The pattern is not limited to the United States. Schools everywhere run similar software, buy from similar vendors and face the same ransomware groups, which treat education as a soft target because systems are often outdated and recovery budgets are thin.
The report also cites the Multi-State Information Sharing and Analysis Center, where 29% of school and district members said they had been victims of a cyber incident. The incidents ranged from student data breaches and ransomware to website defacement and strangers joining online lessons.
The six controls that matter most
CISA's recommendations are deliberately short because most schools lack the staff for anything longer. For a self-hosted learning platform, they translate into a concrete checklist.
- Multi-factor authentication for every administrator and teacher account, ideally with security keys or app-based codes.
- Scheduled patching of the platform, its plugins and the operating system, checked weekly.
- Tested backups stored off the server, with a restore drill at least once a term.
- Minimal exposure, meaning only ports 80 and 443 open to the internet and SSH restricted to known addresses.
- An incident response plan that names who calls whom, written before it is needed.
- Staff training focused on phishing, since a stolen teacher password is the usual way in.
Multi-factor authentication deserves priority. Learning platforms are full of accounts with elevated rights, and teachers often reuse passwords across services. Recent Moodle versions support MFA natively, so enabling it is a configuration change rather than a project.
Hardening the server itself
A clean installation is the easiest one to secure. Start from a minimal Linux image, add only the web server, database and PHP version the platform requires, and remove anything else. Every extra service is another thing to patch and another door to watch.
Run the database on a private network interface and never expose it to the internet. Keep uploaded files outside the web root so a malicious upload cannot be executed directly. A web application firewall such as ModSecurity with the OWASP Core Rule Set blocks common injection attempts against PHP applications.
Logs are the part most schools skip. Ship authentication and web server logs to a separate location so an intruder cannot erase the trail, and set an alert for repeated failed logins on administrator accounts. Fail2ban can block the offending address automatically after a few attempts.
Encrypt everything in transit with a TLS certificate that renews automatically, and set the platform to refuse plain HTTP. Disable directory listing on the web server and delete default installation files such as sample configs and test scripts, which attackers scan for. Where possible, restrict the site administration path to the school network or a VPN.
Plugins, integrations and the vendor problem
Open-source platforms owe much of their usefulness to plugins, and much of their risk too. A plugin written by a single developer and last updated four years ago has the same access to the database as the core code. Before installing anything, check when it was last maintained, how many sites use it and whether it is listed as compatible with the current platform version.
Integrations raise the vendor question the CISA data highlights. Each video conferencing tool, plagiarism checker or single sign-on provider connected to the platform receives some student data. Keep a written list of every integration, what it can access and who approved it, and review the list every September when the school year starts.
Contracts matter as much as code. Ask each vendor for a data processing agreement under GDPR and for a commitment to notify the school of any breach within a fixed number of hours.
Running it with a small team
Most schools will have one or two people looking after the platform alongside other duties. Automation is how they keep up. Unattended security updates for the operating system, a nightly script that copies backups off the server and a monthly calendar reminder to update the platform cover most routine work.
Managed hosting is worth considering if nobody on staff is comfortable at a Linux command line. The provider handles the operating system and hardware, while the school keeps control of courses, content and user accounts. Such a split usually costs less than a new hire, and it removes the single point of failure when the one person who understands the server goes on leave.
Sharing the load with neighbouring schools is another option. Several institutions can run separate instances on one well-maintained server, splitting the cost and the expertise, provided each instance has its own database and its own admin accounts.
Document everything in a short runbook kept outside the server, covering where backups live, how to restore them, who holds which credentials and which provider number to call. A new staff member should be able to recover the platform from that document alone.
