Server hardening is only the first layer. The ERP-specific risks that actually lose data are access control, database privileges, audit trails and untested backups - here is a checklist that works.
An ERP in production is the one system that holds everything - your finance, payroll, inventory and customer records in one database - so a security failure is not an IT problem, it is a business problem. Hardening the server underneath it is necessary, but it is only the first layer, because most real ERP incidents do not come from a compromised server. They come from the wrong person having access to a module, an application connecting to the database with admin privileges, a change nobody can trace, or a backup that turns out to be unrestorable the day it is needed. The checklist below covers the ERP-specific layers that server hardening does not reach.
A compromised website can be restored from a backup and rebuilt in a day. An ERP cannot, because the value is the accumulated live data - every invoice, every payroll run, every stock movement - and because the people who use it daily are not technical. Three consequences follow. First, the data is the asset: encryption, access control and tested restores matter more than any firewall rule. Second, the threat is often internal: an employee with broader permissions than their role needs, a contractor who was never offboarded, or an honest mistake in a financial screen that no audit trail can explain. Third, downtime is measured in payroll and shipping delays, not in page views, so every control here is chosen to keep the system running, not just to lock it down.
Most ERP incidents shrink to one sentence: someone had access they should not have had. Fix it with role-based access tied to actual jobs, and grant the minimum each role needs - a warehouse user reads inventory and writes stock movements, but never sees payroll; an accountant sees the ledger but cannot edit a closed period. Separate the everyday user from the administrator, require multi-factor authentication for anyone with admin or financial privileges, and review dormant accounts every quarter: an account that has not logged in for 90 days should be disabled, and every leaver must be offboarded the same day, not at the end of the month. Write the roles down, get them signed off by each department head, and audit them against reality twice a year - permissions drift open over time and never drift back on their own.
The ERP application should never connect to its database as a superuser or admin. Create one database user with privileges limited to exactly the schemas and tables the application needs - no dropping, no user management - so a flaw in the application cannot wipe the ledger. Keep every credential, API key and payment-gateway secret out of the source repository and out of the ERP config directory in plain text: load them from the server environment or a secrets manager, and rotate them when staff with access leave. Encrypt traffic between the application and the database rather than trusting the local network, and switch on encryption at rest for the database volume. Finally, keep production data out of non-production environments: a staging server holding a copy of real customer records is a leak waiting to happen, so anonymise or mask the data before it is copied anywhere.
When a figure is wrong at month-end, the first question is who changed it and when. An audit log that records the user, the screen, the record and the timestamp - kept where even an admin cannot edit it, and retained for at least a year - answers that question in minutes instead of days, and it is exactly what a regulator asks for after an incident. Backups belong in the same breath, with one rule: a backup is not a backup until you have restored it. Take daily automated backups, keep copies off the server and off the site, enable point-in-time recovery so you can roll back to the hour before a bad import, and run a real restore drill every quarter into a throwaway environment. The drill is the only test that matters, and the companies that skip it are the ones that discover the backup was silently failing at the moment they needed it most.
Do not put the ERP administration interface on the public internet. Restrict it to an IP allowlist or a company VPN, put a web application firewall in front, and expose only what staff and integrations actually need. Keep the stack patched on a fixed cadence - the ERP core, the database, the operating system and every integration - and test each update in a staging environment before it touches production, because an untested ERP patch can break a payment flow as easily as it closes a hole. Then name one person accountable: someone who owns the checklist, runs the quarterly restore drill, reviews the audit anomalies, and reports to management. Security work that belongs to everyone belongs to no one, and on an ERP that is how controls quietly lapse until an audit - or an incident - finds them.
No, and confusing the two is why gaps get missed. Server hardening - SSH keys, a firewall, automatic updates, TLS - is the foundation, and it is where you start. But ERP risk is mostly about data: who can reach which records, whether the database connection is over-privileged, whether changes are traceable, and whether you can actually restore. A hardened server running an ERP with wide-open roles and an untested backup is still one bad click away from a data problem.
A full restore drill at least once a quarter, into a throwaway environment, then a spot-check that the restored data is usable - open the ledger, run a report, confirm the totals match. Daily automated backups with off-site copies are the baseline, and point-in-time recovery is what lets you undo a bad import to the hour. The quarterly drill is the part most teams skip, and it is the only part that proves the rest works.
Role-based access with least privilege. It is the one control that shrinks the blast radius of every other failure - a leaked password, a misclicked import, a compromised laptop - because the attacker or the mistake hits a wall of permissions that does not include payroll or the closed ledger. It is also the cheapest to put right: it costs a meeting with each department head and a review of what each role actually needs.
ERP and enterprise systems built with role-based access, audit logging and tested deployment practices - book a free scoping session.
The companion guide: what an ERP project actually costs, what the quote includes, and how to turn a range into a fixed price.
The server-level foundation this checklist builds on - SSH keys, a firewall, automatic updates, TLS and daily backups.
EGYmass handles hosting, security, and ongoing management - so you can focus on your product.
Get a Free Consultation