User Tools

Site Tools


wiki:advanced:multi-node:x2goserver-pgsql

Differences

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

Link to this comparison view

Both sides previous revision Previous revision
Previous revision
Next revision Both sides next revision
wiki:advanced:multi-node:x2goserver-pgsql [2013/02/15 10:52]
wiki:advanced:multi-node:x2goserver-pgsql [2013/03/12 20:39]
sunweaver
Line 1: Line 1:
 +====== X2Go Server with PostgreSQL database backend ======
 +
 +**Note:** This wiki page explains how you can configure X2Go with PostgreSQL as database backend. However, this is only recommended for sites that run more than one X2Go Server (X2Go multi-node farms). 
 +
 +If you have one standalone X2Go server then please use the SQLite database backend (which is the default after installation of the ''x2goserver'' package).
 +
 +With X2Go Server v3.0.99.0 the whole session database backend code had been fully rewritten due to a serious security issue that had been brought up by Morty, Reinhard and Arw. Sind then, the ''sudo'' command is no longer required by ''x2goserver'' to neither contact the
 +SQLite database (installation default) nor the PostgreSQL database. Since v3.0.99.x PostgreSQL views and rules are used to restrict users from modifying or accessing data of other users.
 +
 +For accessing the X2Go/PostgreSQL database X2Go Server uses the Perl DBI package.
 +
 +===== Preparations =====
 +
 +
 +  * configure PostgreSQL server to enable TCP connections from your X2Go Server host
 +  * configure PostgreSQL server for md5 authentication for users from X2Go Server in 
 +
 +<code>
 +/etc/postgresql/(version)/main/pg_hba.conf
 +</code>
 +
 +**Example:**
 +
 +<code>
 +# IPv4 local connections:
 +
 +host    all         all         127.0.0.1/32          md5
 +</code>
 +
 +You must create a database user which can create databases and users for
 +X2Go database administration. You can also use the ''postgres'' user to do this
 +job.
 +
 +You must save the password of this user in the file
 +
 +<code>
 +/etc/x2go/x2gosql/passwords/pgadmin
 +</code>
 +
 +Only root should have access to
 +this file. It will be used only for database and user creation, you
 +may/should delete it after these tasks are done. You can set a new password
 +using this command on your PostgreSQL server:
 +
 +<code>
 +$ su postgres -c "psql"
 +psql (8.4.8)
 +
 +You are using psql, the command-line interface to PostgreSQL.
 +Type:  \copyright for distribution terms
 +       \h for help with SQL commands
 +       \? for help with psql commands
 +       \g or terminate with semicolon to execute query
 +       \q to quit
 +
 +postgres=# alter user postgres encrypted password '<secret-password>';
 +ALTER ROLE
 +postgres=# \q
 +
 +</code>
 +
 +===== Database configuration in file /etc/x2go/x2gosql/sql =====
 +
 +
 +<code>
 +#postgres or sqlite
 +backend=postgres
 +
 +[postgres]
 +host=localhost
 +port=5432
 +
 +#database admin (must have permissions to create databases and users)
 +dbadmin=postgres
 +
 +#disable: SSL connections are never used
 +#allow: try non-SSL, then SSL
 +#prefer: try SSL, then non-SSL
 +#require: connect only with SSL
 +#default - prefer
 +ssl=prefer
 +</code>
 +
 +===== Database administration using ''/usr/lib/x2go/script/x2godbadmin'' (on X2Go Server) =====
 +
 +
 +<code>
 +$ /usr/lib/x2go/script/x2godbadmin --help
 +X2Go SQL admin interface. Use it to create the X2Go session database and insert or
 +remove users or groups in X2Go session database.
 +
 +Usage:
 +x2godbadmin --createdb
 +x2godbadmin --listusers
 +x2godbadmin --adduser|rmuser <UNIX user>
 +x2godbadmin --addgroup|rmgroup <UNIX group>
 +</code>
 +
 +==== Create database (evoke on X2Go server) ====
 +
 +
 +<code>
 +$ x2godbadmin --createdb
 +</code>
 +
 +==== Create database users ====
 +
 +
 +<code>
 +You can add UNIX users or groups to database using commands
 +$ x2godbadmin --adduser example
 +
 +<code>
 +$ x2godbadmin --addgroup x2gousers
 +</code>
 +
 +After that step users of the posix group ''x2gousers'' can create X2Go sessions. Of course, any other group could be used here, as well.
 +
  
wiki/advanced/multi-node/x2goserver-pgsql.txt ยท Last modified: 2016/03/29 19:40 by stefanbaur