b55becc698fcd2f27d1213729e5de6173e232197
[x2gobroker.git] / etc / x2gobroker.conf
1 # This file is part of the  X2Go Project - http://www.x2go.org
2 # Copyright (C) 2011-2014 by Oleksandr Shneyder <oleksandr.shneyder@obviously-nice.de>
3 # Copyright (C) 2011-2014 by Heinz-Markus Graesing <heinz-m.graesing@obviously-nice.de>
4 # Copyright (C) 2012-2014 by Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
5 #
6 # X2Go Session Broker is free software; you can redistribute it and/or modify
7 # it under the terms of the GNU Affero General Public License as published by
8 # the Free Software Foundation; either version 3 of the License, or
9 # (at your option) any later version.
10 #
11 # X2Go Session Broker is distributed in the hope that it will be useful,
12 # but WITHOUT ANY WARRANTY; without even the implied warranty of
13 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 # GNU Affero General Public License for more details.
15 #
16 # You should have received a copy of the GNU Affero General Public License
17 # along with this program; if not, write to the
18 # Free Software Foundation, Inc.,
19 # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
20
21 ###
22 ### GLOBAL section
23 ###
24
25 [global]
26
27 # Allow unauthenticated connections? Then set both require-password and require-cookie to false.
28
29 # Verify username/password combination sent by client
30 #require-password = true
31
32 # To secure server-client communication the client can start the communication
33 # with a pre-set, agreed on authentication ID. Set the below value to true
34 # to make the X2Go Session Broker require this feature
35 #require-cookie = false
36
37 # X2Go supports two different cookie authentication modes (static and dynamic).
38 # Dynamic cookies send new cookie to client on every request.  This could possibly
39 # cause issues if a client ever tries multiple requests at the same time.
40 #use-static-cookie = true
41
42 # Once a client is authenticated their password is not revalidated until this
43 # many seconds have elapsed from their initial authentication.
44 #auth-timeout = 36000
45
46 # Client cookies (both static and dynamic) must be stored as local files.
47 # This is the directory where those files will be stored.  Please make sure
48 # the permissions are set to allow the x2go broker process to write to this directory
49 #cookie-directory = '/var/lib/x2gobroker/cookies'
50
51 # Pre and Post authentication scripts give you the option to run outside scripts
52 # or adjust the values of variables for users logging in.  Pre scripts run just
53 # before user authentication and Post scripts run just after even if authentication fails.
54 # Select Session scripts run after load balancing right before the chosen server is sent
55 # to the client.
56 #
57 # Set to list of scripts, comma seperated, with no spaces between.
58 #pre_auth_scripts =
59 #post_auth_scripts =
60 #select_session_scripts =
61
62 # Every server-client communication (between X2Go Client and broker) has to be
63 # accompanied by this initial authentication cookie if require-cookie is set above.
64 # This should be in the format of a UUID.
65 #my-cookie = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
66
67 # By default the broker will pin user sessions to the IP address from which they
68 # origionally authenticate.  If you would like to skip that check set this to false.
69 #verify-ip = true
70
71 # X2Go Session Broker knows about two output formats: a text/plain based output
72 # and a text/json based output that is compatible with UCCS. The different outputs
73 # run under different URLs.
74
75 # enable {base_url}/plain/
76 #enable-plain-output = true
77
78 # enable {base_url}/json/
79 #enable-json-output = true
80
81 # enable {base_url}/uccs/
82 #enable-uccs-output = false
83
84 # use this URL base to create URL field in UCCS-style JSON output
85 #my-uccs-url-base = http://localhost:8080/
86
87 # default authentication mechanism for all broker backends
88 # Available auth mechs: pam, none, https_get
89 #default-auth-mech = pam
90
91 # how does this X2Go Session Broker instance retrieve user and group
92 # information from the system? (defaults for all broker backends)
93 # Available user/group db backends: libnss
94 #default-user-db = libnss
95 #default-group-db = libnss
96
97 # on large deployments it is recommended to ignore primary group
98 # memberships traversing into all user accounts for primary group
99 # detection can be quite CPU intensive on the X2Go Broker server.
100 #ignore-primary-group-memberships = true
101
102 # X2Go session autologin via X2Go Session Broker
103 #
104 # Once authenticated against the session
105 # broker, the user becomes a trusted user. That is, the X2Go session login can
106 # be automatized by a very temporary SSH pub/priv key pair. Prior to the session
107 # login the key is generated, after successful session login, the key is dropped
108 # immediately.
109 #
110 # This option can be overridden by the session profile parameter
111 # broker-session-autologin={true|false}
112 #default-session-autologin=false
113
114 # X2Go's authorized_keys file for broker mediated autologin sessions
115 #
116 # For the X2Go auto-login via X2Go Session Broker feature to work thoroughly,
117 # the X2Go Session Broker has to place the temporary public SSH key into the
118 # user's home directory. It is not recommended to use SSH's default
119 # authorized_keys file for this but a separate and X2Go-specific authorized_keys
120 # file ($HOME/.x2go/authorized_keys).
121 #
122 # Of course, the SSH daemon has to be made aware of this. This can be configured
123 # in /etc/ssh/sshd_config like this (older SSH server versions):
124 #
125 #    --- /etc/ssh/sshd_config.no-x2go        2013-03-01 09:57:04.000000000 +0100
126 #    +++ /etc/ssh/sshd_config        2013-03-01 09:56:57.000000000 +0100
127 #    @@ -28,7 +28,8 @@
128 #
129 #    RSAAuthentication yes
130 #    PubkeyAuthentication yes
131 #    AuthorizedKeysFile     %h/.ssh/authorized_keys
132 #   +AuthorizedKeysFile2    %h/.x2go/authorized_keys
133 #
134 #    # Don't read the user's ~/.rhosts and ~/.shosts files
135 #    IgnoreRhosts yes
136 #
137 # or like this (more recent SSH server versions):
138 #
139 #    --- /etc/ssh/sshd_config.no-x2go        2013-03-01 09:57:04.000000000 +0100
140 #    +++ /etc/ssh/sshd_config        2013-03-01 09:56:57.000000000 +0100
141 #    @@ -28,7 +28,7 @@
142 #
143 #    RSAAuthentication yes
144 #    PubkeyAuthentication yes
145 #   -AuthorizedKeysFile     %h/.ssh/authorized_keys
146 #   +AuthorizedKeysFile     %h/.ssh/authorized_keys %h/.x2go/authorized_keys
147 #
148 #    # Don't read the user's ~/.rhosts and ~/.shosts files
149 #    IgnoreRhosts yes
150 #
151 # This option can be overridden by the session profile parameter
152 # broker-authorized-keys=<file-location>
153 #default-authorized-keys=%h/.x2go/authorized_keys
154
155 # X2Go Broker Agent query mode
156 #
157 # The X2Go Broker Agent is needed for multi-server sites configured for
158 # load balancing. Multi-server sites require a setup that uses the
159 # PostgreSQL X2Go session DB backend. The X2Go Broker Agent has to be installed
160 # on the local system (mode: LOCAL) or on all X2Go Servers (mode: SSH) in a
161 # multi-server farm.
162 #
163 # So, there are three query modes for the X2GO Broker Agent: NONE, LOCAL and
164 # SSH.
165 #
166 #    NONE  - Try to get along without X2Go Broker Agent queries. For simple
167 #            broker setups this may suffice. For load-balancing or reliable
168 #            session suspending and resuming the broker agent is a must!!!
169 #
170 #    LOCAL - This LOCAL mode only works for _one_ configured multi-server farm.
171 #            If this X2Go Session Broker is supposed to serve many different
172 #            multi-server farms, then the LOCAL mode will not work!!!
173 #
174 #            How it works: Assume that the local system has an X2Go Broker Agent
175 #            that knows about the multi-server setup. This means: X2Go Server
176 #            has to be installed locally and the X2Go Server has to be
177 #            configured to use the multi-server farm's PostgreSQL session DB
178 #            backend.
179 #
180 #            The local system that is running the broker does not necessarily
181 #            have to be a real application server. It only has to be aware of
182 #            running/suspended sessions within the X2Go multi-server farm setup.
183 #
184 #            A typical use-case is X2Go on top of a Debian Edu Terminal-Server
185 #            farm:
186 #
187 #              TJENER -> PostgreSQL DB, X2Go Server, X2Go Session Broker +
188 #                  Broker Agent
189 #              TS01 - TS0X -> X2Go Server configured to use the PostgreSQL DB
190 #                  on TJENER
191 #
192 #    SSH   - The more generic approach, but also more complex. It allows that
193 #            the broker on this system may serve for many different X2Go Server
194 #            multi-server setups.
195 #
196 #            With the SSH agent query mode, the X2Go Session Broker will query
197 #            one of the X2Go Servers in the targeted multi-server setup (through
198 #            SSH). The SSH authentication is done by a system user account
199 #            (normally UID=x2gobroker) and SSH pub/priv key authentication has
200 #            to be configured to make this work.
201 #
202 #            All X2Go Servers in a multi-server farm need the X2Go Broker Agent
203 #            installed, whereas this local system running the X2Go Session
204 #            Broker does not need a local X2Go Broker Agent at all.
205 #
206 # The agent query mode can be configured on a per-broker-backend basis, the
207 # below value is the default.
208 #default-agent-query-mode=NONE
209
210
211 ###
212 ### Auth Mechs section
213 ###
214
215 #[authmech_pam]
216 # no configurable options for this authentication mechanism
217
218 #[authmech_https_get]
219 #host = my.webserver.com
220 #path = /auth/index.html
221 #port = 443
222
223
224 ###
225 ### BACKEND section
226 ###
227
228 # Possible X2Go Session Broker backends:
229 #
230 # 1. backend = zeroconf (activated by default)
231 # Use the ZeroConf X2Go Session Broker backend, this backend is for demo only
232 # and only operates on localhost. Make sure you have x2gobroker-daemon and
233 # and x2goserver installed on the same machine. No need to install
234 # x2gobroker-agent.
235
236 # 2. backend = infile (deactivated by default)
237 # The IniFile X2Go Session Broker backend is for providing session profiles
238 # to multiple users/clients on a text config file basis (.ini file format).
239 #
240 # The session profile setup is accomplished by an extra configuration file,
241 # by default named /etc/x2go/broker/x2gobroker-sessionproiles.conf.
242 #
243 # For small-scale deployments the IniFile backend is the recommended backend.
244
245 [broker_zeroconf]
246 #enable = false
247 #auth-mech = pam
248 #user-db = libnss
249 #group-db = libnss
250 #desktop-shell = KDE
251
252 [broker_inifile]
253 #enable = true
254 #session-profiles = /etc/x2go/broker/x2gobroker-sessionprofiles.conf
255
256 #[broker_ldap] -> MUSIC OF THE FUTURE
257 #enable = false
258 #auth-mech = ldap
259 #user-db = ldap
260 #group-db = ldap
261 #uri = ldap://localhost:389
262 #base = dc=example,dc=org
263 #user-search-filter = (&(objectClass=posixAccount)(uid=*))
264 #host-search-filter = (&(objectClass=ipHost)(serial=X2GoServer)(cn=*))
265 #group-search-filter = (&(objectClass=posifxGroup)(cn=*))
266 #starttls = false
267 #agent-query-mode = SSH
268