-
Notifications
You must be signed in to change notification settings - Fork 1
Home
CABS, or Connection Automation Broker System, was designed and written by the Brigham Young University College of Engineering and Technology to allow students to connect remotely to do their homework on university owned machines. The CABS client allows a user to supply a username and password, and receive a list of pools of computers they can connect to, based on their LDAP group memberships. Once a user chooses a pool to connect to, they are assigned a machine in that pool, and their computer establishes a connection to that remote machine.
This system was initially coded to handle brokering connections to HP's RGS protocol, but is also currently being used to broker Microsoft RDP connections as well. It could also be adapted to be used for ssh, or any other client protocol.
Running a cabs system involves running a broker, agents, an admin website, clients, a database, an optional auto-it checker, and the option to use LDAP for authentication and association to various pools by group membership.
Most of the components were written in Python and could theoretically be supported on any operating system with a bit of work. The client currently has been tested on Windows, Linux and Mac. The agent has been tested on Windows and Linux. The broker and management website have been tested on Linux. The Auto-It checker has only been written for and tested on Windows.
Windows | Linux | macOS | |
---|---|---|---|
Broker | No | ✓ Yes | No |
RDP GUI Client | ✓ Yes | No | No |
RDP CLI Client | No | ✓ Yes | ✓ Yes |
RGS GUI Client | ✓ Yes | ✓ Yes | No |
RGS CLI Client | No | No | ✓ Yes |
Agent | ✓ Yes | ✓ Yes | No |
RDP GUI Client | ✓ Yes | No | No |
Database | No | ✓ Yes | No |
Admin Site | No | ✓ Yes | No |
Auto-It Checker | ✓ Yes | No | No |
Note that a "No" in most cases does not mean it is incompatible, but rather that it has not yet been written for, or tested on that operating system.
RDP and RGS are completely supported and already implemented, but adding new protocols is not that hard.
Currently no. When a client connects to a broker, it is assumed that all of the agents querying that broker are all using the same connection protocol, such as RGS, or ssh, or RDP. There is currently no code on the broker to keep track of what connection protocols an agent can or client talk. The current method to support more than one protocol is to run more than one broker server on separate machines or ports and use different branded clients connecting on different server ports or IP addresses to establish connections.
Python was chosen for portability between Windows, Mac and Linux.