e6a2f30b03f9eb3f799937f907fd423f998333c5
[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)
63 # has to be accompanied by this initial authentication cookie if require-cookie
64 # is set above. This should be in the format of a UUID.
65 #my-cookie = xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
66
67 # More secure...  As this x2gobroker.conf file has 0644 file permissions,
68 # all users with SSH access to this broker server can view this x2gobroker.conf
69 # file and thus, the value for 'my-cookie' is exposed.
70 #
71 # By storing the authentication cookie/ID in a separate file, you get the chance
72 # of securing the cookie from other users that have access to the broker machine.
73 #
74 # When running X2Go Session Broker as http daemon, then setting the
75 # x2gobroker.authid file readable only by members of the $X2GO_DAEMON_GROUP
76 # (normally POSIX group "x2gobroker") should suffice:
77 #
78 #   $ chown :x2gobroker /etc/x2go/broker/x2gobroker.authid
79 #   $ chmod 0640 /etc/x2go/broker/x2gobroker.authid
80 #
81 # If you use the 'my-cookie-file' parameter below, then it supersedes the 'my-cookie'
82 # UUID hash from above.
83 #my-cookie-file = /etc/x2go/broker/x2gobroker.authid
84
85 # By default the broker will pin user sessions to the IP address from which they
86 # origionally authenticate.  If you would like to skip that check set this to false.
87 #verify-ip = true
88
89 # X2Go Session Broker knows about two output formats: a text/plain based output
90 # and a text/json based output that is compatible with UCCS. The different outputs
91 # run under different URLs.
92
93 # enable {base_url}/plain/
94 #enable-plain-output = true
95
96 # enable {base_url}/json/
97 #enable-json-output = true
98
99 # enable {base_url}/uccs/
100 #enable-uccs-output = false
101
102 # use this URL base to create URL field in UCCS-style JSON output
103 #my-uccs-url-base = http://localhost:8080/
104
105 # default authentication mechanism for all broker backends
106 # Available auth mechs: pam, none, https_get
107 #default-auth-mech = pam
108
109 # how does this X2Go Session Broker instance retrieve user and group
110 # information from the system? (defaults for all broker backends)
111 # Available user/group db backends: libnss
112 #default-user-db = libnss
113 #default-group-db = libnss
114
115 # on large deployments it is recommended to ignore primary group
116 # memberships traversing into all user accounts for primary group
117 # detection can be quite CPU intensive on the X2Go Broker server.
118 #ignore-primary-group-memberships = true
119
120 # X2Go session autologin via X2Go Session Broker
121 #
122 # Once authenticated against the session
123 # broker, the user becomes a trusted user. That is, the X2Go session login can
124 # be automatized by a very temporary SSH pub/priv key pair. Prior to the session
125 # login the key is generated, after successful session login, the key is dropped
126 # immediately.
127 #
128 # This option can be overridden by the session profile parameter
129 # broker-session-autologin={true|false}
130 #default-session-autologin=false
131
132 # X2Go's authorized_keys file for broker mediated autologin sessions
133 #
134 # For the X2Go auto-login via X2Go Session Broker feature to work thoroughly,
135 # the X2Go Session Broker has to place the temporary public SSH key into the
136 # user's home directory. It is not recommended to use SSH's default
137 # authorized_keys file for this but a separate and X2Go-specific authorized_keys
138 # file ($HOME/.x2go/authorized_keys).
139 #
140 # Of course, the SSH daemon has to be made aware of this. This can be configured
141 # in /etc/ssh/sshd_config like this (older SSH server versions):
142 #
143 #    --- /etc/ssh/sshd_config.no-x2go        2013-03-01 09:57:04.000000000 +0100
144 #    +++ /etc/ssh/sshd_config        2013-03-01 09:56:57.000000000 +0100
145 #    @@ -28,7 +28,8 @@
146 #
147 #    RSAAuthentication yes
148 #    PubkeyAuthentication yes
149 #    AuthorizedKeysFile     %h/.ssh/authorized_keys
150 #   +AuthorizedKeysFile2    %h/.x2go/authorized_keys
151 #
152 #    # Don't read the user's ~/.rhosts and ~/.shosts files
153 #    IgnoreRhosts yes
154 #
155 # or like this (more recent SSH server versions):
156 #
157 #    --- /etc/ssh/sshd_config.no-x2go        2013-03-01 09:57:04.000000000 +0100
158 #    +++ /etc/ssh/sshd_config        2013-03-01 09:56:57.000000000 +0100
159 #    @@ -28,7 +28,7 @@
160 #
161 #    RSAAuthentication yes
162 #    PubkeyAuthentication yes
163 #   -AuthorizedKeysFile     %h/.ssh/authorized_keys
164 #   +AuthorizedKeysFile     %h/.ssh/authorized_keys %h/.x2go/authorized_keys
165 #
166 #    # Don't read the user's ~/.rhosts and ~/.shosts files
167 #    IgnoreRhosts yes
168 #
169 # This option can be overridden by the session profile parameter
170 # broker-authorized-keys=<file-location>
171 #default-authorized-keys=%h/.x2go/authorized_keys
172
173 # X2Go Session Broker can also mediate logins to SSH proxy servers
174 #
175 # The authorized_keys file location on SSH proxy servers
176 # for temporarily deploying SSH pubkey strings can be configured
177 # below.
178 #
179 # This option can be overridden by the session profile parameter
180 # broker-sshproxy-authorized-keys=<file-location>
181 #default-sshproxy-authorized-keys=%h/.x2go/authorized_keys
182
183 # X2Go Broker Agent query mode
184 #
185 # The X2Go Broker Agent is needed for multi-server sites configured for
186 # load balancing. Multi-server sites require a setup that uses the
187 # PostgreSQL X2Go session DB backend. The X2Go Broker Agent has to be installed
188 # on the local system (mode: LOCAL) or on all X2Go Servers (mode: SSH) in a
189 # multi-server farm.
190 #
191 # So, there are three query modes for the X2GO Broker Agent: NONE, LOCAL and
192 # SSH.
193 #
194 #    NONE  - Try to get along without X2Go Broker Agent queries. For simple
195 #            broker setups this may suffice. For load-balancing or reliable
196 #            session suspending and resuming the broker agent is a must!!!
197 #
198 #    LOCAL - This LOCAL mode only works for _one_ configured multi-server farm.
199 #            If this X2Go Session Broker is supposed to serve many different
200 #            multi-server farms, then the LOCAL mode will not work!!!
201 #
202 #            How it works: Assume that the local system has an X2Go Broker Agent
203 #            that knows about the multi-server setup. This means: X2Go Server
204 #            has to be installed locally and the X2Go Server has to be
205 #            configured to use the multi-server farm's PostgreSQL session DB
206 #            backend.
207 #
208 #            The local system that is running the broker does not necessarily
209 #            have to be a real application server. It only has to be aware of
210 #            running/suspended sessions within the X2Go multi-server farm setup.
211 #
212 #            A typical use-case is X2Go on top of a Debian Edu Terminal-Server
213 #            farm:
214 #
215 #              TJENER -> PostgreSQL DB, X2Go Server, X2Go Session Broker +
216 #                  Broker Agent
217 #              TS01 - TS0X -> X2Go Server configured to use the PostgreSQL DB
218 #                  on TJENER
219 #
220 #    SSH   - The more generic approach, but also more complex. It allows that
221 #            the broker on this system may serve for many different X2Go Server
222 #            multi-server setups.
223 #
224 #            With the SSH agent query mode, the X2Go Session Broker will query
225 #            one of the X2Go Servers in the targeted multi-server setup (through
226 #            SSH). The SSH authentication is done by a system user account
227 #            (normally UID=x2gobroker) and SSH pub/priv key authentication has
228 #            to be configured to make this work.
229 #
230 #            All X2Go Servers in a multi-server farm need the X2Go Broker Agent
231 #            installed, whereas this local system running the X2Go Session
232 #            Broker does not need a local X2Go Broker Agent at all.
233 #
234 # The agent query mode can be configured on a per-broker-backend basis, the
235 # below value is the default.
236 #default-agent-query-mode=NONE
237
238
239 ###
240 ### Auth Mechs section
241 ###
242
243 #[authmech_pam]
244 # no configurable options for this authentication mechanism
245
246 #[authmech_https_get]
247 #host = my.webserver.com
248 #path = /auth/index.html
249 #port = 443
250
251
252 ###
253 ### BACKEND section
254 ###
255
256 # Possible X2Go Session Broker backends:
257 #
258 # 1. backend = zeroconf (activated by default)
259 # Use the ZeroConf X2Go Session Broker backend, this backend is for demo only
260 # and only operates on localhost. Make sure you have x2gobroker-daemon and
261 # and x2goserver installed on the same machine. No need to install
262 # x2gobroker-agent.
263
264 # 2. backend = infile (deactivated by default)
265 # The IniFile X2Go Session Broker backend is for providing session profiles
266 # to multiple users/clients on a text config file basis (.ini file format).
267 #
268 # The session profile setup is accomplished by an extra configuration file,
269 # by default named /etc/x2go/broker/x2gobroker-sessionproiles.conf.
270 #
271 # For small-scale deployments the IniFile backend is the recommended backend.
272
273 [broker_zeroconf]
274 #enable = false
275 #auth-mech = pam
276 #user-db = libnss
277 #group-db = libnss
278 #desktop-shell = KDE
279
280 [broker_inifile]
281 #enable = true
282 #session-profiles = /etc/x2go/broker/x2gobroker-sessionprofiles.conf
283
284 #[broker_ldap] -> MUSIC OF THE FUTURE
285 #enable = false
286 #auth-mech = ldap
287 #user-db = ldap
288 #group-db = ldap
289 #uri = ldap://localhost:389
290 #base = dc=example,dc=org
291 #user-search-filter = (&(objectClass=posixAccount)(uid=*))
292 #host-search-filter = (&(objectClass=ipHost)(serial=X2GoServer)(cn=*))
293 #group-search-filter = (&(objectClass=posifxGroup)(cn=*))
294 #starttls = false
295 #agent-query-mode = SSH
296