Updated May 8, 2026 A fresh Raff Linux VM ships ready-to-run, but you should harden it before exposing services. This guide takes a brand-new VM from create to a state safe for production, in about 10 minutes. Steps are written for Ubuntu / Debian; equivalents for RHEL family (CentOS / AlmaLinux / Rocky) are noted inline. For Windows VMs, the equivalent hardening is built into Windows Server defaults; the work is in the dashboard side (Reset password, Firewall).Documentation Index
Fetch the complete documentation index at: https://docs.rafftechnologies.com/llms.txt
Use this file to discover all available pages before exploring further.
Before you start
- VM is
active— see Create a VM - You can SSH in as
root(or you’ve added an SSH key in the create flow) - An SSH public key on your local machine for the new user
1. Connect as root
2. Update the system
Get the latest security patches before doing anything else. Ubuntu / Debian:3. Create a non-root user with sudo
Running asroot over SSH is a known-bad practice. Create a real user and give it sudo.
Ubuntu / Debian:
4. Copy your SSH public key to the new user
From your local machine (not the VM):ssh-copy-id isn’t available, do it manually on the VM:
5. Lock down SSH
Edit/etc/ssh/sshd_config:
systemctl restart if reload doesn’t pick up changes):
6. Set up a firewall
Define a default-deny inbound policy and explicitly allow what you need. Ubuntu / Debian — UFW:7. Enable automatic security updates
Set the VM to apply security patches without you remembering to. Ubuntu / Debian:/etc/apt/apt.conf.d/50unattended-upgrades includes the security source.
RHEL family:
/etc/dnf/automatic.conf to set apply_updates = yes if you want full installs (default is download-only).
8. (Optional) fail2ban
fail2ban watches auth logs and bans IPs that fail repeatedly — cheap insurance for any VM with public SSH.
Ubuntu / Debian:
/etc/fail2ban/jail.local if you want longer ban times.
9. Set the timezone (optional)
10. Reboot
If the kernel updated in step 2 (or if you’re paranoid about pending changes):raff and confirm everything’s still working.
You’re done — checklist
- System fully patched
- Non-root user with sudo and SSH key login
- Root SSH login disabled
- Password SSH login disabled
- Firewall enabled with default-deny inbound
- Automatic security updates running
- (Optional) fail2ban running
- (Optional) sensible timezone
Next steps
Firewall
Tighten the platform-level firewall to match your OS firewall.
Enable backups
Schedule daily or weekly backups before going live.
Monitoring & metrics
Read your VM’s CPU/RAM/network from the dashboard.
Recover a locked-out VM
What to do if the firewall or SSH config locks you out.