OneTerm: A Lightweight Bastion Host That Won't Weigh You Down
You've got servers. You've got people who need to access those servers. And you've got that nagging feeling that letting everyone connect directly isn't exactly a great security posture. The usual answer is a bastion host, but a lot of them come with the kind of setup complexity that makes you question whether it's worth the trouble. OneTerm is an attempt to fix that—a simple, lightweight, flexible bastion host built around the 4A concept: Authentication, Authorization, Account, and Audit.
What It Does
OneTerm acts as an intermediary between your users and your critical systems. Instead of letting people connect directly to servers, you route them through OneTerm first. Users authenticate once, then access internal servers through the jump server approach. Since OneTerm is the only externally accessible entry point, your internal infrastructure stays shielded from direct exposure.
The project is written in Go (version 1.18 or higher) with a Vue-based UI built on Ant Design Pro. It's an enterprise-level product, but the emphasis here is on "lightweight" and "flexible"—this isn't a sprawling platform that takes weeks to deploy and months to understand. The README is upfront about the 4A framework driving the design: strict access control, centralized account management, and comprehensive auditing through session recording and activity logs.
Why It's Cool
-
Session recording that's actually useful. OneTerm records user sessions with servers, which means when something goes wrong—or when you just need to understand what happened—you can replay the recording and see the exact operations performed. This isn't just a log file with timestamps; it's a full session you can review.
-
A single entry point that simplifies everything. Your users don't need to remember multiple credentials for different systems. They authenticate through OneTerm and access what they need from there. That's better for security (fewer credentials floating around) and better for your users (less friction, fewer password reset tickets).
-
The jump server model reduces your attack surface. Since OneTerm is the only thing exposed externally, attackers can't directly target your internal servers. You've essentially consolidated your risk into one hardened point that you can focus on protecting.
-
Password management gets centralized. OneTerm lets you enforce enhanced password policies and manage credentials through a single entry point. If you've ever tried to audit password strength across a dozen different systems, you know why this matters.
-
Audit logs that trace everything. The README mentions that OneTerm records user logins and activities, providing audit logs for investigation when security incidents occur. Every user's behavior is traceable and auditable—which is exactly what you need when compliance folks come asking questions.
How to Try It
The fastest way to get a feel for OneTerm is the online demo:
- Go to oneterm.v1ops.com
- Log in with username
demooradmin - Password is
123456
For a real deployment, you'll want to grab a stable release from the releases page. The README notes that the main branch may be unstable during development, so don't pull from there unless you're intentionally living on the edge.
Head to the GitHub repository for the full source, and check out the product documentation for design details and setup instructions. The project is licensed under Apache 2.0, so you can dig into the code and see how it works.
Final Thoughts
OneTerm is aimed at teams that need bastion host functionality without the overhead of heavier commercial solutions. If you're running a small-to-medium infrastructure and want session recording, centralized access control, and audit logging without a massive deployment project, this is worth a look. The 4A framework gives it a solid conceptual foundation, and the Go-plus-Vue stack keeps things relatively simple to maintain. It's not trying to be everything to everyone—it's trying to be a bastion host that does the core job well and stays out of your way. For a lot of teams, that's exactly the right trade-off.
Follow @githubprojects for more developer tools and open source projects.