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