Security and backups
Two-factor authentication, the logs worth reading, integrity checks and a backup you have actually restored.
Bondry ships with the controls; this page is about turning them on and knowing where to look when something is wrong.
Two-factor authentication#
System > Settings > Two-factor authentication decides who is offered it and who is required to use it. Require it for every group that can reach the admin panel. It is the single highest-value setting on this page.
A member who loses their device uses a recovery code. An administrator can reset a member's two-factor authentication from the member screen, which is also why administrator accounts need it themselves.
Sign-in protection#
System > Settings > Login and registration covers the lockout after failed attempts, whether e-mail verification is required and whether new accounts wait for approval. Ban filters (see Members and groups) stop the account before it is created.
Logs#
System > Logs holds seven trails, and the first three answer most questions:
| Log | What it answers |
|---|---|
| System log | What the application did |
| Error log | What went wrong, with the stack trace |
| Email log | Whether a message actually left the server |
| Task log | Whether the scheduler ran |
| Admin log | Which administrator changed what |
| Admin sign-in log | Who signed in to the panel, and from where |
| Search log | What members searched for |
The admin log is the one to read after an unexpected change. Every sensitive action in the panel writes to it, with the account and the IP.
File integrity#
Bondry can verify its own files against the manifest shipped with the version you are running. A file that does not match was either edited on purpose or changed by something you did not authorise. Run it from System > Support after any incident, or from a shell:
php artisan bondry:integrity
Backups#
The updater takes a backup of the files it touches and dumps the database before applying an update. That is a rollback for an update, not a backup strategy.
A real backup covers three things:
- the database;
- the uploads directory;
- the
.envfile, kept somewhere separate, because without the application key the encrypted license token cannot be read.
Warning A backup you have never restored is a hypothesis. Restore one into a throwaway subdomain once, before you need it.
Practical hygiene#
- Keep
APP_DEBUGoff. In production Bondry refuses to boot with it on. - Keep
.envoutside anything the web server serves, with restrictive permissions. - Give the database user only the privileges it needs.
- Apply security releases promptly. That is what the update window is for.