User Tools

Site Tools


doc:installation:x2gobroker

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
doc:installation:x2gobroker [2013/05/12 13:12]
sunweaver
doc:installation:x2gobroker [2023/03/27 15:22] (current)
gratuxri typo
Line 1: Line 1:
 ====== Installing X2Go Session Broker ====== ====== Installing X2Go Session Broker ======
  
-The X2Go Session Broker falls into two components.+The X2Go Session Broker falls into three components.
  
   * X2Go Session Broker Daemon/WSGI   * X2Go Session Broker Daemon/WSGI
Line 41: Line 41:
   * [[http://code.x2go.org/gitweb?p=x2gobroker.git;a=blob_plain;f=etc/x2gobroker-wsgi.apache.conf|X2Go Session Broker WSGI support added globally]]   * [[http://code.x2go.org/gitweb?p=x2gobroker.git;a=blob_plain;f=etc/x2gobroker-wsgi.apache.conf|X2Go Session Broker WSGI support added globally]]
   * [[http://code.x2go.org/gitweb?p=x2gobroker.git;a=blob_plain;f=etc/x2gobroker-wsgi.apache.vhost|X2Go Session Broker WSGI support as VirtualHost]]   * [[http://code.x2go.org/gitweb?p=x2gobroker.git;a=blob_plain;f=etc/x2gobroker-wsgi.apache.vhost|X2Go Session Broker WSGI support as VirtualHost]]
 +
 +
 +
 +===== X2Go Session Broker Authentication Service =====
 +
 +Package name: '''x2gobroker-authservice'''
 +
 +On Debian based systems:
 +
 +<code bash>
 +$ sudo apt-get install x2gobroker-authservice
 +</code>
 +
 +The X2Go Session Broker Authentication Service normally gets installed on the machine that also has ''x2gobroker-daemon'' or ''x2gobroker-wsgi'' installed. The broker code itself runs as system user ''x2gobroker'' whereas the authentication service has to run as root. By security design, the functionality of the broker that requires root privileges has been separated from the rest of the broker.
 +
 +The X2Go Session Broker Authentication Service requires root privileges for a few PAM based authentication backends. The default installation authenticates against PAM, on default Linux systems, PAM authentication (''pam_unix.so'') requires root privileges by the authentication process.
 +
 +With other PAM setups (e.g. ''pam_ldap.so'') root privileges are not required and it is ok to not install ''x2gobroker-authservice''.
 +
 +Furthermore, X2Go Session Broker can be extended by other (non-PAM) authentication methods. The currently available authentication mechanisms in X2Go Session Broker are listed [[http://code.x2go.org/gitweb?p=x2gobroker.git;a=tree;f=x2gobroker/authmechs|here]].
 +
 +===== X2Go Session Broker Agent =====
 +
 +Package name: '''x2gobroker-agent'''
 +
 +On Debian based systems:
 +
 +<code bash>
 +$ sudo apt-get install x2gobroker-agent
 +</code>
 +
 +Installing X2Go Session Broker Agent is optional. The broker agent has to be installed on machines that are in the roll of an X2Go Server (i.e. in the role of a terminal server running X2Go).
 +
 +The X2GO Session Broker Agent is a requirement for load balancing setups and is also needed if X2Go Client shall be aware of already running X2Go Sessions. X2Go Client in non-broker mode resumes a suspended session (if exactly there is one) automatically. Other than that, X2Go Client in broker mode waits for resuming instructions from the session broker. The session broker, however, requires feedback from the broker agent to notice that there is a suspended/running session for a certain user.
 +
 +Thus, the broker agent is like a man-in-the-middle. It sits between X2Go Session Broker and the X2Go Server(s) that the session broker provides. Through the X2Go Session Broker Agent the broker core can obtain information on provided X2Go Servers for all users on that server host. 
 +
 +The currently available functions of the broker agent are:
 +
 +  * list user sessions of any user
 +  * deploy SSH public keys on behalf of any user
 +  * drop SSH public keys on behalf of any user
 +  * render an ordered list of X2Go Servers and their usage (by number of running/suspended sessions), only needed in load balancing setups
 +  * suspend sessions on behalf of any user
 +  * render a list of used X2Go Servers
 +  * (more to come...)
 +
 +**Note:** The X2Go Session Broker Agent gets installed setuid root (group: x2gobroker system group, permissions: 0750). System administrators should be aware of this. If someone hacks the x2gobroker user account on one of your X2Go Servers, this hacker can then execute certain X2Go related commands with root privileges on the X2Go Server system.
  
  
 ===== X2Go Session Broker: Backends and Frontends ===== ===== X2Go Session Broker: Backends and Frontends =====
  
-The concept of X2Go Session Broker as provided in [[http://code.x2go.org/gitweb?p=x2gobroker.git|X2Go Git]] is highly modular. The X2Go Session Broker Daemon can be easily extended with //broker backends// and //WebUI frontends//.+The design of X2Go Session Broker as provided in [[http://code.x2go.org/gitweb?p=x2gobroker.git|X2Go Git]] is highly modular. The X2Go Session Broker Daemon can be easily extended with //broker backends// and //WebUI frontends//
 + 
 +==== Broker Backends ==== 
 + 
 +The backends deal with the storage of, the rendering of and possibly the user/group/client based filtering of session profiles which then get provided via X2Go Session Broker to the querying X2Go client application. 
 + 
 +==== Broker WebUI Frontends ==== 
 + 
 +The WebUI frontends deal with delivering the list of session profiles (available for this user/group/client address) to the X2Go client application (X2Go Client: text/plain WebUI, Unity Greeter: UCCS WebUI).
  
 ==== Currently available broker backends ==== ==== Currently available broker backends ====
Line 59: Line 115:
   * The '''uccs''' WebUI frontend: usable with Unity Greeter (experimental)   * The '''uccs''' WebUI frontend: usable with Unity Greeter (experimental)
  
 +===== Setting up Config Files =====
  
-====X2Go Session Broker Authentication Service =====+==== Configuration of X2Go Session Broker ====
  
-Package name: '''x2gobroker-authservice'''+For a basic configuration with the INI file backend and the standalone daemon (recommended for beginners) you only need to touch. Click on the config file names below to retrieve more info on how to modify/tweak those individual files.
  
-On Debian based systems:+  * [[x2gobroker:conf|/etc/x2go/x2gobroker.conf]] 
 +  * [[x2gobroker:daemondefaults|/etc/defaults/x2gobroker-daemon]] 
 +  * [[x2gobroker:inifilebackend|/etc/x2go/broker/x2gobroker-sessionprofiles.conf]]
  
-<code bash> +The X2Go Session Broker uses several more configuration files. Below is a complete list (for version 0.0.2.x, if not applicable to later versions anymore, please update the below lists). The files are linked to their initial layout (in X2Go Git) to show what they look like directly after installation of the session broker packages.
-$ sudo apt-get install x2gobroker-authservice +
-</code>+
  
-The X2Go Session Broker Authentication Service normally gets installed on the machine that also has ''x2gobroker-daemon'' or ''x2gobroker-wsgi'' installedThe broker code itself runs as system user ''x2gobroker'' whereas the authentication service has to run as rootBy security designthe functionality of the broker that requires root privileges has been separated from the rest of the broker.+__X2Go Session Broker's Core:__ 
 +[[http://code.x2go.org/gitweb?p=x2gobroker.git;a=blob;f=debian/python-x2gobroker.default|/etc/default/python-x2gobroker]] (enviroment variables, used to set defaults in Python X2Go Session Broker with impact on the daemon __and__ the authentication service), 
 +**[[http://code.x2go.org/gitweb?p=x2gobroker.git;a=blob;f=etc/x2gobroker.conf|/etc/x2go/x2gobroker.conf]]** (main configuration file), 
 +**[[http://code.x2go.org/gitweb?p=x2gobroker.git;a=blob;f=etc/broker/x2gobroker-sessionprofiles.conf|/etc/x2go/broker/x2gobroker-sessionprofiles.conf]]** (configuration file for the INI file backend), 
 +[[http://code.x2go.org/gitweb?p=x2gobroker.git;a=blob;f=pam/x2gobroker|/etc/pam.d/x2gobroker]] (PAM configuration for X2Go Session Broker Authservice), 
 +[[http://code.x2go.org/gitweb?p=x2gobroker.git;a=blob;f=etc/broker/x2gobroker-loggers.conf|/etc/x2go/broker/x2gobroker-loggers.conf]] (don't touch!)
  
-The X2Go Session Broker Authentication Service requires root privileges for a few PAM based authentication backends. The default installation authenticates against PAM, on default Linux systems, PAM authentication (''pam_unix.so'') requires root privileges by the authentication process. 
  
-With other PAM setups (e.g''pam_ldap.so''root privileges are not required and it is ok to not install ''x2gobroker-authservice''.+__X2Go Session Broker Daemon:__ 
 +**[[http://code.x2go.org/gitweb?p=x2gobroker.git;a=blob;f=debian/x2gobroker-daemon.default|/etc/default/x2gobroker-daemon]]** (enviroment variables, used to set defaults in Python X2Go Session Broker with impact on the daemon only), 
 +[[http://code.x2go.org/gitweb?p=x2gobroker.git;a=blob;f=logrotate/x2gobroker-daemon|/etc/logrotate.d/x2gobroker-daemon]] (rotate broker logfiles) 
 + 
 +__X2Go Session Broker WSGI:__ 
 +[[http://code.x2go.org/gitweb?p=x2gobroker.git;a=blob;f=etc/x2gobroker-wsgi-apache.conf|/etc/x2go/x2gobroker-wsgi.apache.conf]] (global implementation, enabled by default) 
 +[[http://code.x2go.org/gitweb?p=x2gobroker.git;a=blob;f=etc/x2gobroker-wsgi.apache.vhost|/etc/x2go/x2gobroker-wsgi.apache.vhost]] (VirtualHost example for the WSGI implementation of X2Go Session Broker) 
 +[[http://code.x2go.org/gitweb?p=x2gobroker.git;a=blob;f=logrotate/x2gobroker-wsgi|/etc/logrotate.d/x2gobroker-wsgi]] (rotate WSGI logfile) 
 + 
 +==== Configuration of X2Go Session Broker Authentication Service ==== 
 + 
 +The authentication service normally does not need any configuration, unless you strongly deviated from the default setup. 
 + 
 +__X2Go Session Broker Authentication Service:__ 
 +[[http://code.x2go.org/gitweb?p=x2gobroker.git;a=blob;f=debian/x2gobroker-authservice.default|/etc/default/x2gobroker-authservice]]  (enviroment variables, used to set defaults in Python X2Go Session Broker with impact on the authentication service only), 
 +[[http://code.x2go.org/gitweb?p=x2gobroker.git;a=blob;f=etc/broker/x2gobroker-authservice-logger.conf|/etc/x2go/broker/x2gobroker-authservice-logger.conf]] (don't touch) 
 +[[http://code.x2go.org/gitweb?p=x2gobroker.git;a=blob;f=logrotate/x2gobroker-authservice|/etc/logrotate.d/x2gobroker-authservice]] (rotate the authentication service's logfile)
  
-Furthermore, X2Go Session Broker can extended by other (non-PAM) authentication methods. The currently available authentication mechanisms in X2Go Session Broker are listed [[http://code.x2go.org/gitweb?p=x2gobroker.git;a=tree;f=x2gobroker/authmechs|here]]. 
  
  
Line 109: Line 185:
 Where... Where...
   * ''<broker-base-url>'' is <hostname>:<port>/<broker-base-path>   * ''<broker-base-url>'' is <hostname>:<port>/<broker-base-path>
-  * ''<frontend>'' can be either of [[http://code.x2go.org/gitweb?p=x2gobroker.git;a=blob_plain;f=x2gobroker/web|the available broker WebUI frontends]] (except the files base.py and extras.py all files here are broker WebUI frontends) +  * ''<frontend>'' can be either of [[http://code.x2go.org/gitweb?p=x2gobroker.git;a=tree;f=x2gobroker/brokers|the available broker WebUI frontends]] (drop the ''%%_%%broker'' ending, the files ''%%__%%init%%__%%.py'' and ''base_broker.py'' are not frontends) 
-  * ''<backend>'' can be either of [[http://code.x2go.org/gitweb?p=x2gobroker.git;a=blob_plain;f=x2gobroker/web|the available broker WebUI frontends]]+  * ''<backend>'' can be either of [[http://code.x2go.org/gitweb?p=x2gobroker.git;a=tree;f=x2gobroker/web|the available broker backends]] (except the files ''%%__%%init%%__%%.py'' and ''extras.py'')
  
 **Example:** ''http://localhost:8080/plain/zeroconf'' **Example:** ''http://localhost:8080/plain/zeroconf''
  
doc/installation/x2gobroker.1368364373.txt.gz · Last modified: 2013/05/12 13:12 by sunweaver