RMU Build: Best Practices and Reference
Recommended hardening and operational add-ons for the Gen-1.5 RMU — Proxmox firewall, RACADM, Dell OpenManage Enterprise, SuperMicro firmware updates, BMC console access, OPNsense GUI, and network/cabling reference tables.
This page covers section V (best practices) and section VI (reference information) of the Gen-1 to Gen-1.5 RMU build runbook.
The best-practice steps significantly improve the operator experience — particularly the ability to update firmware on every server remotely.
[!WARNING] These steps cover foundational hardening only. They do not constitute comprehensive security hardening, nor do they replace ongoing system maintenance. Each node provider is responsible for their own secure and well-maintained environment.
A. Proxmox security (Recommended)
Enable Proxmox firewall — Datacenter level
- In the Proxmox WebUI, select Datacenter in the left panel.
- In the middle panel, scroll to Firewall > Options and select the top Firewall configuration option in the main panel. Click Edit at the top of the list.
- In the dialog, tick the Firewall box and click OK.
Enable Proxmox firewall — RMU level
- Select the RMU in the left panel.
- In the middle panel, scroll to Firewall > Options and select the top Firewall configuration option in the main panel. Click Edit.
- In the dialog, tick the Firewall box and click OK.
Disable RPCBIND
-
Select the RMU in the left panel.
-
Click Shell in the top right.
-
Run these commands one at a time:
systemctl disable rpcbind.target systemctl disable rpcbind.socket systemctl disable rpcbind.service systemctl stop rpcbind.target systemctl stop rpcbind.socket systemctl stop rpcbind.service
B. Install RACADM tool on RMU (Optional, Dell nodes)
This section applies to sites with Dell node machines. Installing RACADM lets the RMU access the iDRAC interface on Dell servers — for example, to update iDRAC settings or open an emergency console shell.
-
In the Proxmox WebUI, select the RMU in the left panel and click Shell in the top right.
-
Execute the following commands:
echo 'deb http://linux.dell.com/repo/community/openmanage/11010/jammy jammy main' | sudo tee -a /etc/apt/sources.list.d/linux.dell.com.sources.list wget https://linux.dell.com/repo/pgp_pubkeys/0x1285491434D8786F.asc apt-key add 0x1285491434D8786F.asc apt-get update apt install gpg libssl-dev -y apt install srvadmin-idracadm8 -y -
To allow the Teleport server to forward the iDRAC web interface, disable the SSL header check on each Dell node. Run this once per Dell node from a shell on the RMU:
racadm -r 10.10.100.55 -u root -p <password> set idrac.webserver.HostHeaderCheck 0[!NOTE]
<password>is the iDRAC/BMC password for the Dell node. If the password has not been reset, it is on the pull-out tab on the front face of the server. If it has been reset and the current password is unknown, you must use a physical console ("crash cart") and boot the server into iDRAC recovery mode to reset it. See iDRAC Access and TSR Logs.
C. Dell OpenManage Enterprise (Recommended, Dell nodes)
Dell OpenManage Enterprise (OME) communicates with the Baseboard Management Controllers (BMCs) of your nodes. It can discover the iDRACs of Dell servers and apply firmware updates remotely.
Create the OME VM
-
From the main Proxmox page, click Create VM.
-
Tick Advanced and Start at boot. Configure:
- VM ID:
123 - Name:
<dc>-ome - Start/Shutdown Order:
10
Click Next.
- VM ID:
-
On the OS tab, select Do not use any media. Set Type to
Other. Click Next. -
On System: ensure Graphic card is
Default, SCSI Controller isVirtIO SCSI single, Machine isDefault (i440fx), BIOS isDefault (SeaBIOS). Click Next. -
On Disks: Bus/Device
IDEand0, Storagelocal-zfs, Disk size (GiB)8, tick Backup, Async IODefault (io_uring). Click Next. -
On CPU: Sockets
1, TypeX86-64-v2-AES, Cores8. Click Next. -
On Memory: Memory (MiB)
16767, Minimum memory (MB)2048. Click Next. -
On Network: Bridge
vmbr1, ModeIntel E1000, untick Firewall. Click Next. -
Do not tick Start after created — the OME image still needs to be mapped to a disk. Click Finish.
Download and import OME
-
Open a shell console on the RMU and download the OME virtual image:
wget --user-agent="Mozilla" -O ome.zip 'https://dl.dell.com/FOLDER07474001M/1/openmanage_enterprise_kvm_format_3.6.1.zip?uid=c802e350-6536-4f28-7a66-93b4f844cd30&fn=openmanage_enterprise_kvm_format_3.6.1.zip' -
Unzip the download:
apt update && apt install unzip -y unzip ome.zip -
Import the QCOW2 image into the OME VM's storage:
cd appliance/qemu-kvm/ qm importdisk 123 openmanage_enterprise.qcow2 local-zfs -
Configure the imported disk as the boot disk:
- Select the OME VM in the left panel.
- Click Hardware.
- Double-click Unused Disk.
- Set Bus/Device to
VirtIO Block. Click Add. - Click Options, then double-click Boot Order.
- Move the device described as
local-zfs:vm-123-disk-1…to position 1 and tick Enable next to it. - Untick the enable box for all other boot devices. Click OK.
-
Select the OME VM and start it.
Configure OME
-
Select the OME VM and click Console. Allow time for the first boot.
-
On EULA, select Accept.
-
Select your keyboard type.
-
Set a non-trivial password and store it in your password manager. Tab to Apply and press Enter.
-
Use the arrow keys to scroll to Set Networking Parameters and press Enter.
-
Press Enter on the available network adapter.
-
Enter the password you just created. Tab to Continue and press Enter.
-
Configure the network:
- IPv4 Address (Static):
10.10.100.23 - Static Gateway:
10.10.100.1 - Static Subnet Mask:
255.255.255.0 - Static Preferred DNS server:
1.1.1.1
Use the arrow keys to navigate to DHCP, then Tab into the editable text fields.
- IPv4 Address (Static):
-
Select Apply.
-
Re-enter your non-trivial password and select Continue.
Share OME with Teleport
-
Open a shell on the RMU server and edit
/etc/teleport.yaml. -
Add the following section under the
app_service -> appsstanza, matching the indentation of the previousname: bo1-rmusection. Replacebo1and.dfinity.networkwith the placeholders used earlier in the runbook:- name: bo1-ome uri: https://10.10.100.23:443 public_addr: "bo1-ome.teleport.bo1.dfinity.network" insecure_skip_verify: true rewrite: redirect: - "10.10.100.23" - "bo1-ome.teleport.bo1.dfinity.network" labels: dc: "bo1" -
Reload the Teleport service:
[!WARNING] If you are accessing the RMU shell via Teleport, your connection will be disconnected when the service restarts.
systemctl restart teleport
Configure the OME web GUI
- From the Teleport Resources page, find the OME tile and select it to open the web UI.
- Sign in. The default user is
adminwith the password set during OME installation. - Click Initial Settings under Step 1.
- Expand Time Configuration and set the timezone — UTC is recommended (DFINITY uses UTC; if you operate more than one data center, a single timezone keeps cross-DC reasoning simpler).
Discover your nodes
-
On Step 2 click Discover Devices to open the Create Discovery Job dialog.
-
Under Device Type, select Server. Ensure Dell iDRAC is selected, click OK.
-
Under IP/Hostname/Range, enter
10.10.100.53-10.10.100.99. -
Under Services API Credentials, enter the iDRAC username and password. If iDRACs use different passwords, click Add and add each IP individually.
-
Click Finish.
[!TIP] If not all nodes are discovered on the first attempt, narrow the range or add each host separately with its own credentials.
-
Monitor the discovery from Monitor > Jobs in the top navigation bar.
Create a baseline
- Click Configuration > Firmware/Driver Compliance.
- Click Create Baseline.
- In the dialog, click Add next to Catalog.
- Enter a name for the catalog (e.g.
Dell Catalog). - Ensure Latest Component versions on Dell.com is enabled. Click Finish.
- Enter a baseline name. Including the
<dc>code is recommended. Click Next. - Click Select Devices.
- Click the small box and tick Across all pages to select all devices. Click OK.
- Click Finish.
Applying firmware updates
Single server
- Click Devices.
- Click the IP address in the Name column to open a single device.
- Click Firmware/Drivers.
- Select the baseline you created earlier in the drop-down.
- Tick the firmware updates you wish to apply.
- Click Update, then Update Now.
- Set Reboot Server immediately to
Graceful Reboot with Forced Shutdown. - Tick Reset idrac.
- Tick Clear Job Queue.
- Click Update.
Multiple servers
- Click Configuration > Firmware/Driver Compliance.
- Tick the box next to the baseline you created earlier.
- Click Check Compliance.
- Click View Report.
- Tick the boxes next to the servers you wish to update.
- Click Make Compliant, then Update Now.
- Set Reboot Server immediately to
Graceful Reboot with Forced Shutdown. - Tick Reset idrac.
- Tick Clear Job Queue.
- Click Update.
D. Update firmware on SuperMicro nodes (Recommended)
-
Open and log in to the BMC of the SuperMicro node you wish to update.
-
Click System > FRU Reading.
-
Note the Board Product Name on this page.
-
Search the SuperMicro firmware page for the latest BMC firmware for that board: supermicro.com/support/resources/bios_ipmi.php?type=BMC.
-
Once you locate your motherboard, click Resources.
-
Under Software, click BMC Firmware.
-
Download and extract the firmware archive.
-
In the BMC, click Maintenance > Firmware Update.
-
Click Enter Update Mode.
-
Click Yes in the confirmation dialog.
-
Click Upload Firmware.
-
Click Yes in the confirmation dialog.
-
Untick Preserve Configuration (unchecking this restores the BMC's factory default settings).
-
Click Start Upgrade.
[!NOTE] After the firmware update completes, clear the cache of any browser that previously connected to that BMC web console.
E. Enable remote access to server console (Recommended, Dell nodes)
These steps depend on Dell OpenManage Enterprise being installed.
Allow iDRACs to be browsable through Teleport
-
In OME, click Devices in the top navigation bar.
-
Click the checkbox in the middle of the screen, then Across all pages to select every node.
-
Click the More Actions drop-down and select RACADM CLI.
-
In the Arguments box, enter:
set idrac.webserver.HostHeaderCheck 0 -
Confirm that all your nodes are listed under Selected devices.
-
Click Finish.
-
Click Monitor in the top navigation bar, then Jobs.
-
Find the Remote command line job and click it. Click View Details. Selecting any individual node shows execution details on the right.
Add Teleport entries for BMC/iDRAC access
-
(No longer needed for the
idrac.shscript) On the MaaS server, in a shell (access via Teleport MaaS SSH access as useradmin), configure themaascommand:sudo apt install jq -Y sudo maas apikey --username dfnadmin stuff:stuff:stuff maas login maas http://localhost:5240/MAAS API key (leave empty for anonymous access): <enter the api key above> -
Rename the existing Teleport configuration to a base file:
sudo mv /etc/teleport.yaml /etc/teleport.yaml-base -
Save the following script as
idrac.shon the MaaS server:#! /usr/bin/env bash # Start with the base /etc/teleport.yaml file and add # the iDRAC device entries to it. if [ -r /etc/teleport.yaml-base ] ; then cp /etc/teleport.yaml-base /etc/teleport.yaml else echo "/etc/teleport.yaml-base not found. Aborting." exit 1 fi # Add a comment at the end of the base configuration to # indicate where the automagic script configuration starts. echo "### Automation added below ###" >> /etc/teleport.yaml echo "Finding iDRAC devices..." # Only pull out the DHCP Dynamic Range (from MaaS) grep '10.10.100.[56789][0-9]' /var/log/syslog | grep DHCPACK | while read a a a a a a a IP a a NAME stuff do echo "$NAME $IP" done | # Get rid of the duplicates sort -u | # Walk the list of NAME/IP and clean up the values while read NAME IP do # Sanitize the NAME variable by removing the '()' and lower casing it NAME="$(echo $NAME | sed -e 's/[()]//g' | tr [:upper:] [:lower:])" echo "$NAME $IP" done | # Add the host to the /etc/teleport.yaml while read NAME IP do echo "Adding ${NAME} to /etc/teleport.yaml ..." tee -a /etc/teleport.yaml <<EOF - name: ${NAME}-idrac uri: https://${IP}:443 #public_addr: "" public_addr: "${NAME}-idrac.teleport.<dc>.dfinity.network" insecure_skip_verify: true rewrite: headers: - "Host: ${NAME}-idrac.teleport.<dc>.dfinity.network" - "Origin: https://${NAME}-idrac.teleport.<dc>.dfinity.network" labels: dc: "<dc>" type: "bmc" EOF done -
Edit
<dc>in the script to match your data center code, save, and execute it:chmod +x ./idrac.sh sudo ./idrac.sh -
When the script completes, reload Teleport:
sudo systemctl reload teleport -
Within a few minutes, your iDRAC devices appear in the Teleport web UI.
F. Enable GUI access to OPNsense devices (Recommended)
This section adds Teleport entries for managing the OPNsense firewalls through the web GUI.
Add IPv6 host entries
Add the IPv6 address of each OPNsense device to the end of the
/etc/hosts file:
<IPv6_of_1st_OPNsense_device> br2-fw01
<IPv6_of_2nd_OPNsense_device> br2-fw02
Add Teleport entries for the OPNsense firewalls
-
Edit
/etc/teleport.yamlon the RMU and add:- name: <dc>-fw01 uri: https://[<IPv6_of_1st_OPNsense_device>]:443 public_addr: "<dc>-fw01.teleport.<dc>.<domain>" insecure_skip_verify: true rewrite: redirect: - "[<IPv6_of_1st_OPNSense_device>]" - "<dc>-fw01.teleport.<dc>.<domain>" labels: dc: "<dc>" - name: <dc>-fw02 uri: https://[<IPv6_of_2nd_OPNSense_device>]:443 public_addr: "<dc>-fw02.teleport.<dc>.<domain>" insecure_skip_verify: true rewrite: redirect: - "[<IPv6_of_2nd_OPNsense_device>]" - "<dc>-fw02.teleport.<dc>.<domain>" labels: dc: "<dc>" -
Reload the Teleport service:
sudo systemctl reload teleport -
The OPNsense GUIs are now visible in Teleport, and clicking each one opens the OPNsense login page.
Reference: internal network layout
All Gen-1 data centers are recommended to use the following private static IP addresses for the management network.
The MaaS DHCPv4 BMC range is 10.10.100.50-10.10.100.99. This
allows for an RMU, fw01, fw02, and 46 IC BMC addresses.
| Name | "Management" Private IPv4 10.10.100.0/24 | "BMC" IPv4 10.10.100.0/24 | Management Public IPv4 | Public IPv4 Uplink (/28) | Public IPv6 Uplink | "Delegated" IPv6 Prefix (::/64) | Notes |
|---|---|---|---|---|---|---|---|
| Upstream Provider IPv6 Uplink Default Router | ${MGMTIPV4}+1 | ${PUBLICIPV4}+1 | ${UPLINKIPV6}::1 | Upstream provider may use something like VRRP on :2/:3 | |||
| RMU | 10.10.100.1 | 10.10.100.50 | ${MGMTIPV4}+2 | ${DELEGATED}::EIP64 | |||
| fw01/router01 | ? | 10.10.100.51 | ${UPLINKIPV6}::4 | ${DELEGATED}::1 | |||
| fw02/router02 or bn01 | ? | 10.10.100.52 | ${UPLINKIPV6}::5 | ${DELEGATED}::2 | |||
| msw01 | 10.10.100.10 | ||||||
| sw01 | 10.10.100.11 | ||||||
| sw02 | 10.10.100.12 | ||||||
| sw03 | 10.10.100.13 | ||||||
| sw04 | 10.10.100.14 | ||||||
| teleport | 10.10.100.22 | ${DELEGATED}::EIP64 | |||||
| maas | 10.10.100.20 | ||||||
| monitoring | 10.10.100.21 | ||||||
| ome | 10.10.100.23 | ||||||
| iDRAC / BMC | 10.10.100.53-10.10.100.99 | ${DELEGATED}::EIP64 | |||||
| Unallocated | 10.100.100.100-10.100.100.254 |
Reference: RMU cabling
If this is a Gen-1 site that already has a SuperMicro RMU, the cabling should already be in place.
[!NOTE] This cabling is not mandatory, but it is the recommended layout.
| Device ID | Network/Port | Device ID | Port |
|---|---|---|---|
| CoreSite Fiber Internet | WAN | mm1-MSW01 | 51 |
| mm1-RMU | WAN | mm1-MSW01 | 2 |
| mm1-MSW01 (Dell 3048) | Management | mm1-MSW01 | 3 |
| mm1-SW02 (Dell 4148) | Management | mm1-MSW01 | 4 |
| mm1-RMU | LOM | mm1-MSW01 | 6 |
| mm1-FW01 | Management | mm1-MSW01 | 7 |
| mm1-FW02 | Management | mm1-MSW01 | 8 |
| mm1-RMU | Management | mm1-MSW01 | 10 |
| mm1-RMU | VLAN 66 | mm1-SW02 | 20 |
| mm1-RMU | LAN | mm1-SW02 | 52 |
| mm1-FW01 | LAN | mm1-SW02 | 53 |
| mm1-FW02 | LAN | mm1-SW02 | 54 |
Reference: checking number of internal drives
-
Ensure the RMU is powered off.
-
Connect a crash cart to the RMU. Connect both the VGA and keyboard.
-
Power it on and press the Del key repeatedly to enter System Setup (BIOS).
-
Use the arrow keys to scroll over to Save and Exit.
-
Under Boot Override, count the number of hard drive entries.
[!NOTE] Normally an RMU has one or two drives in total.
-
Power off the server.
Related
- RMU build — Gen-1.5 — the parent runbook index.
- RMU Build: MaaS Setup — the previous section.
- iDRAC Access and TSR Logs — used when an iDRAC password needs recovery.
- Updating Node Firmware — companion runbook for routine firmware updates.