Console Menu
The VM image shows a menu on the console in your hypervisor instead of a login prompt. It is the way in when the web interface cannot be reached: it shows the address, tests the connection to sslbrain Cloud, sets up the network, and can restart, update and reinstall the appliance.
The menu is plain text. If something writes over the screen, press Enter and it prints again. Answer yes/no questions with yes; anything else, including an empty line, is a no.
Restart, update and reinstall go through the same controller as the dashboard. The menu never calls Docker directly, so an update from the console passes the same signature check and the same rollback as one from the web interface.
Main menu
The top of the menu shows the appliance software version, the VM image version and the address to open the web interface on. If the appliance has no address yet, it says so instead and points to item 3.
| Choice | Menu item | What it does |
|---|---|---|
| 1 | Status, and how to reach the web interface | Address, operating system, OS updates, hostname, whether the appliance runs, free space, controller state, versions and the certificate fingerprint. See below. |
| 2 | Test the connection to sslbrain Cloud | Tests the three names the appliance needs. See below. |
| 3 | Configure the network | Static IPv4 address with prefix, gateway, DNS servers and hostname, saved in netplan. The same tool opens by itself at first boot if DHCP has not given an address within 30 seconds. |
| 4 | View logs | A submenu with three logs. See below. |
| 5 | Restart the appliance | Asks the controller to restart the appliance container and shows the result. |
| 6 | Update to the latest version | The controller pulls the image, checks its signature and rolls back if the new version does not start. |
| 7 | Free disk space | Removes unused Docker images and build cache, including the previous version otherwise kept for rollback. The running appliance is untouched. Shows free space before and after. |
| 8 | Reboot this machine | Reboots the whole machine after confirmation. |
| 9 | Danger zone | Root shell, support SSH, OS update, disk, reinstall and root password. See below. |
When you ask for an action
Restart, update and reinstall are written as a request to the controller, which picks it up within a minute and works for a few minutes. The menu stays on screen and shows how long it has waited. When the controller is done, it prints WORKED or FAILED with the controller's own result line and the version now running. Pressing Enter while it waits returns you to the menu and the action carries on. If it is not finished after 15 minutes, the menu points you to the log under item 4.
1: Status
| Address | The appliance's IP address. |
| Operating sys | Operating system and kernel version. |
| OS updates | Whether automatic security updates are on, when they last ran, and how many are waiting. The appliance takes security updates every day and reboots at 03:00 only when an update needs it. |
| Hostname | The machine's hostname. |
| Appliance | running, STOPPED or not installed. |
| Data volume | Free and used space on the data volume. |
| Controller | When the controller last ran. It runs every minute. After more than three minutes it says NOT RUNNING: the controller is the only thing that starts the appliance after a reboot, so a stopped controller means the machine will not come back by itself next time. |
| Last action | The controller's latest log line. |
| Versions | Two numbers that count different things. Appliance software version is the container, which updates in place. VM image version is the virtual machine, its operating system and this menu, and it does not change when the software updates. |
At the bottom are the web interface's address and the SHA-256 fingerprint of the certificate the appliance serves. The appliance makes its own certificate at first boot, so the browser warns the first time. Compare the fingerprint in the browser with the one the menu shows before you accept the warning.
2: Test the connection to sslbrain Cloud
| Name | Used for |
|---|---|
| cloud.sslbrain.com | Hub API, activation and licence |
| acme.sslbrain.com | ACME |
| registry.sslbrain.com | The appliance image and updates |
Each name shows reachable with the HTTP status, NAME DOES NOT RESOLVE or NO ANSWER. A name that does not resolve is a DNS problem; no answer is usually a firewall. The appliance needs all three to run normally.
4: View logs
| Choice | Log | Contents |
|---|---|---|
| 1 | The appliance, last 200 lines | The last 200 lines from the appliance container. |
| 2 | The controller: updates, restarts, signature checks | The last 200 lines of the controller log. |
| 3 | First boot: image pull, verification, activation | The last 200 lines from first boot. |
| b | Back | Back to the main menu. |
The log opens in less so you can scroll. Press q to return.
9: Danger zone
Everything that can leave the appliance worse than it was lives here, so the main menu only holds items that are safe to pick without thinking. The menu opens with the warning This may break your installation, please backup first, and each item states its own risk before it does anything.
| Choice | Menu item |
|---|---|
| 1 | Open a root shell (recorded) |
| 2 | Temporary SSH for support (closes itself after 24 hours) |
| 3 | View recorded shell sessions |
| 4 | Force an OS update now |
| 5 | Claim new space from the virtual disk |
| 6 | Reinstall the appliance software (data kept) |
| 7 | Password on the root account |
| 0 | Back to the main menu |
1: Open a root shell (recorded)
Opens a root shell on the appliance. Type exit to return to the menu.
The whole session is recorded. The recording contains everything shown on screen during the session: commands, output, and anything you typed or displayed, keys, passwords and customer data included. It is stored on the appliance under /var/log/sslbrain/shell-sessions/, readable by root only, and is never sent anywhere on its own. The last 20 sessions are kept, and a single recording is cut at 5 MB. When a shell was opened and closed is also written to a separate audit log.
The shell is recorded rather than locked because a lock protects nothing on an appliance that runs on your own hypervisor: whoever can open the console can also boot the machine into recovery mode or attach its disk to another machine. What is worth having is a record of what happened, for whoever picks the problem up afterwards. If you want the shell behind a password anyway, use item 7.
2: Temporary SSH for support (closes itself after 24 hours)
Opens SSH so FairSSL support can log in and help. SSH listens on ports 22 and 10022 and accepts only FairSSL support's own keys, which are built into the image. There is no password, and nobody else can use it.
SSH closes itself after at most 24 hours, across a reboot too. You can close it earlier from the same item. The screen shows the state before and after, read from the machine rather than assumed.
3: View recorded shell sessions
Lists the last ten recorded root shell sessions, newest first, with time and size, and the command to read one. Treat the recordings as sensitive: keys and passwords shown or typed during a session are in them. A shell opened over temporary SSH is not recorded here; it is in the system journal.
4: Force an OS update now
Runs immediately what the appliance otherwise does by itself every day: refreshes the package lists and installs security updates. It then runs a full upgrade of all packages on top. The full upgrade is the part that can break things, because it moves packages the appliance depends on, Docker among them. If the update needs a reboot, the menu says so; the appliance takes it at 03:00, or you reboot from the main menu.
5: Claim new space from the virtual disk
Use this after making the virtual disk bigger in vSphere, Hyper-V or virsh. It grows the partition, the volume and the filesystem to fill the space that is now there. It cannot make the virtual disk itself bigger; that is done in the hypervisor, with the appliance powered off.
6: Reinstall the appliance software (data kept)
Pulls the appliance image again, checks its signature and recreates the container from scratch, at the version now running. Your data is not touched: certificates, settings, accounts and the database live on the machine outside the container and are attached to the new one. Use it when the software behaves oddly and an ordinary update has not helped. It takes a few minutes and the web interface is down meanwhile.
7: Password on the root account
Sets, changes or removes a password on the root account itself. The menu item shows whether one is set (set or not set). The password is typed twice without being shown and must be at least 8 characters. The operating system (PAM) checks it, not the menu.
What it locks
- The root shell in the menu (danger zone item 1), which asks for the password before it opens
The web interface and the appliance itself are unaffected.
What it does NOT lock
- Access to the virtual machine in the hypervisor
- Recovery mode, such as booting from GRUB with
init=/bin/bash - Attaching the appliance's disk to another machine
That is deliberate. There is no GRUB password and no disk encryption, so a forgotten root password does not make the appliance unusable, and so we can still help. Full disk encryption is the only thing that would close those routes, and it cannot be reconciled with an appliance that reboots itself at 03:00 for kernel updates: a passphrase nobody types means the machine never comes back.
Keep the password somewhere you will find it. FairSSL support does not have it and cannot read it off the appliance. Removing it again puts the appliance back as it shipped: the root shell in the menu opens with no question asked.