Yandex Builds Secure KVM Access for BareMetal Servers with IPMI Proxy and Network Isolation

Yandex Cloud engineers developed a layered architecture to grant external users safe KVM access to dedicated BareMetal servers while protecting the shared IPMI network. The solution combines IPMI Proxy containers that normalize vendor-specific protocols into VNC, IPMI Router instances running jool for IPv6-to-IPv4 translation, and strict L2/L3 controls using 802.1X, eBPF, and switch ACLs. DHCP is delivered statelessly by deriving IPv4 addresses from MAC addresses to simplify failover with VRRP. Client-side risks from legacy Java and weak hashes are contained by running minimal containers and mounting ISO images from S3 as external volumes. Continuous permission checks every ten seconds ensure long-lived sessions do not become persistent attack paths. The resulting design unifies access across hardware platforms inside the Yandex Cloud console without exposing BMCs to lateral movement.

HabrTranslated from Russian

Read at source

Yandex BareMetal engineers have published a detailed account of how they enabled external customers to use KVM over IPMI without exposing the management network to the kinds of attacks that previously compromised an internal cloud of 25,000 hosts.

The service must deliver two critical capabilities: installation of custom operating systems and recovery when network settings are misconfigured. Both require remote console and virtual media access that legacy BMC firmware only provides through proprietary protocols, often Java Web Start applications signed with outdated hashes such as md4.

To unify access, the team created IPMI Proxy. Each user session launches a lightweight Docker container containing only the components required for a given hardware platform: an XWindow system, a VNC server, a legacy Java runtime with relaxed security settings, Firefox for HTML5 KVM, and optional Java applications for ISO mounting. The container converts the vendor-specific protocol into standard VNC, which noVNC then renders inside the Yandex Cloud console.

Because many BMCs speak only IPv4 while Yandex infrastructure uses IPv6, the team deployed IPMI Router servers running the jool kernel module for stateless NAT64 translation. Each IPv4 address is mapped to a predictable IPv6 address by preserving the last three octets, allowing DHCP to remain stateless and eliminating the need to synchronize lease databases during VRRP failover.

Security controls were added at every layer. Switch ACLs forward frames only toward IPMI Router MAC addresses. 802.1X authentication prevents MAC spoofing. An eBPF program on the routers drops any packet whose IPv4 address does not match the expected MAC, blocking ARP poisoning. Inside the proxy containers, network rules enforced by ip6tables restrict outbound connections to the single authorized BMC.

ISO images stored in S3 are mounted from outside the container as volumes rather than granting the container direct S3 access. Permission checks performed every ten seconds through the Yandex Cloud IAM model ensure that only users with current server-management rights can maintain an active KVM session.

The resulting architecture normalizes KVM and virtual media across heterogeneous hardware while keeping the IPMI fabric isolated from both external attackers and compromised neighboring servers.

Meridian digestThe week's most consequential security stories, distilled into one briefing.See the digest

More in Other

Mail.ru Reduces Lifetime 1TB Cloud Storage Promo to Standard 8GB Quota for Select Users
Kimi K3 Open Model Surpasses Closed AI Leaders with Million-Token Context and 896 Experts
Innostage Completes Functional Testing of PT NGFW 1.10.3 Across 156 Criteria