]> git.sur5r.net Git - bacula/docs/blob - docs/manuals/en/main/consoleconf.tex
Tweak SetIP command
[bacula/docs] / docs / manuals / en / main / consoleconf.tex
1 %%
2 %%
3
4 \chapter{Console Configuration}
5 \label{ConsoleConfChapter}
6 \index[general]{Configuration!Console}
7 \index[general]{Console Configuration}
8
9 \section{General}
10 \index[general]{General}
11
12 The Console configuration file is the simplest of all the configuration files,
13 and in general, you should not need to change it except for the password. It
14 simply contains the information necessary to contact the Director or
15 Directors. 
16
17 For a general discussion of the syntax of configuration files and their
18 resources including the data types recognized by {\bf Bacula}, please see
19 the \ilink{Configuration}{ConfigureChapter} chapter of this manual.
20
21 The following Console Resource definition must be defined: 
22
23 \section{The Director Resource}
24 \label{DirectorResource3}
25 \index[general]{Director Resource}
26 \index[general]{Resource!Director}
27
28 The Director resource defines the attributes of the Director running on the
29 network. You may have multiple Director resource specifications in a single
30 Console configuration file. If you have more than one, you will be prompted to
31 choose one when you start the {\bf Console} program. 
32
33 \begin{description}
34 \item [Director]
35    \index[console]{Director}
36    Start of the Director directives.
37
38 \item [Name = \lt{}name\gt{}]
39    \index[console]{Name}
40    The director name used to select  among different Directors, otherwise, this
41    name is not used. 
42
43 \item [DIRPort = \lt{}port-number\gt{}]
44    \index[dir]{DIRPort}
45    Specify the port to use to connect  to the Director. This value will most
46    likely already be set to the value  you specified on the {\bf
47    \verb:--:with-base-port} option of the  {\bf ./configure} command. This port must be
48    identical to the  {\bf DIRport} specified in the {\bf Director} resource of
49    the \ilink{Director's configuration}{DirectorChapter} file.  The
50    default is 9101 so this directive is not normally specified. 
51
52 \item [Address = \lt{}address\gt{}]
53    \index[dir]{Address}
54    Where the address is a host name,  a fully qualified domain name, or a network
55    address used to connect  to the Director. 
56
57 \item [Password = \lt{}password\gt{}]
58    \index[dir]{Password}
59    Where the password is the  password needed for the Director to accept the
60    Console connection.  This password must be identical to the {\bf Password}
61    specified in  the {\bf Director} resource of the 
62    \ilink{Director's configuration}{DirectorChapter} file. This 
63    directive is required. 
64 \end{description}
65
66 An actual example might be: 
67
68 \footnotesize
69 \begin{verbatim}
70 Director {
71   Name = HeadMan
72   address = rufus.cats.com
73   password = xyz1erploit
74 }
75 \end{verbatim}
76 \normalsize
77
78 \section{The ConsoleFont Resource}
79 \index[general]{Resource!ConsoleFont}
80 \index[general]{ConsoleFont Resource}
81
82 The ConsoleFont resource is available only in the GNOME version of the
83 console. It permits you to define the font that you want used to display in
84 the main listing window. 
85
86 \begin{description}
87
88 \item [ConsoleFont]
89    \index[console]{ConsoleFont}
90    Start of the ConsoleFont directives. 
91
92 \item [Name = \lt{}name\gt{}]
93    \index[console]{Name}
94    The name of the font. 
95
96 \item [Font = \lt{}Pango Font Name\gt{}]
97    \index[console]{Font}
98    The string value given here defines the desired font. It  is specified in the
99    Pango format. For example, the default specification is: 
100
101 \footnotesize
102 \begin{verbatim}
103 Font = "LucidaTypewriter 9"
104 \end{verbatim}
105 \normalsize
106
107 \end{description}
108
109 Thanks to Phil Stracchino for providing the code for this feature. 
110
111 An different example might be: 
112
113 \footnotesize
114 \begin{verbatim}
115 ConsoleFont {
116   Name = Default
117   Font = "Monospace 10"
118 }
119 \end{verbatim}
120 \normalsize
121
122 \section{The Console Resource}
123 \label{ConsoleResource}
124 \index[general]{Console Resource}
125 \index[general]{Resource!Console}
126
127 There are three different kinds of consoles, which the administrator or
128 user can use to interact with the Director.  These three kinds of consoles
129 comprise three different security levels.
130
131 \begin{itemize}
132 \item The first console type is an {\bf anonymous} or {\bf default}
133    console, which has full privileges.  There is no console resource
134    necessary for this type since the password is specified in the Director
135    resource.  Typically you would use this {\bf anonymous} console
136    only for administrators.
137
138 \item The second type of console is a
139    "named" or "restricted" console defined within a Console resource in
140    both the Director's configuration file and in the Console's
141    configuration file.  Both the names and the passwords in these two
142    entries must match much as is the case for Client programs.
143
144    This second type of console begins with absolutely no privileges except
145    those explicitly specified in the Director's Console resource.  Note,
146    the definition of what these restricted consoles can do is determined 
147    by the Director's conf file.
148
149    Thus you may define within the Director's conf file multiple Consoles
150    with different names and passwords, sort of like multiple users, each
151    with different privileges.  As a default, these consoles can do
152    absolutely nothing -- no commands what so ever.  You give them
153    privileges or rather access to commands and resources by specifying
154    access control lists in the Director's Console resource.  This gives the
155    administrator fine grained control over what particular consoles (or
156    users) can do.
157
158 \item The third type of console is similar to the above mentioned
159    restricted console in that it requires a Console resource definition in
160    both the Director and the Console.  In addition, if the console name,
161    provided on the {\bf Name =} directive, is the same as a Client name,
162    the user of that console is permitted to use the {\bf SetIP} command to
163    change the Address directive in the Director's client resource to the IP
164    address of the Console.  This permits portables or other machines using
165    DHCP (non-fixed IP addresses) to "notify" the Director of their current
166    IP address.
167
168 \end{itemize}
169
170 The Console resource is optional and need not be specified. However, if it is
171 specified, you can use ACLs (Access Control Lists) in the Director's
172 configuration file to restrict the particular console (or user) to see only
173 information pertaining to his jobs or client machine. 
174
175 You may specify as many Console resources in the console's conf file. If
176 you do so, generally the first Console resource will be used.  However, if
177 you have multiple Director resources (i.e. you want to connect to different
178 directors), you can bind one of your Console resources to a particular
179 Director resource, and thus when you choose a particular Director, the
180 appropriate Console configuration resource will be used. See the "Director"
181 directive in the Console resource described below for more information.
182
183 Note, the Console resource is optional, but can be useful for
184 restricted consoles as noted above.
185
186 \begin{description}
187 \item [Console]
188    \index[console]{Console}
189    Start of the Console resource.
190
191 \item [Name = \lt{}name\gt{}]
192    \index[console]{Name}
193    The Console name used to allow a restricted console to change
194    its IP address using the SetIP command. The SetIP command must
195    also be defined in the Director's conf CommandACL list.
196
197
198 \item [Password = \lt{}password\gt{}]
199    \index[console]{Password}
200    If this password is supplied, then the password specified in the
201    Director resource of you Console conf will be ignored.  See below
202    for more details.
203
204 \item [Director = \lt{}director-resource-name\gt{}]
205    If this directive is specified, this Console resource will be
206    used by bconsole when that particular director is selected
207    when first starting bconsole.  I.e. it binds a particular console
208    resource with its name and password to a particular director.
209
210 \item [Heartbeat Interval = \lt{}time-interval\gt{}]
211    \index[console]{Heartbeat Interval}
212    \index[console]{Directive!Heartbeat}
213    This directive is optional and if specified will cause the Console to
214    set a keepalive interval (heartbeat) in seconds on each of the sockets
215    to communicate with the Director.  It is implemented only on systems
216    (Linux, ...) that provide the {\bf setsockopt} TCP\_KEEPIDLE function.
217    The default value is zero, which means no change is made to the socket.
218
219 \end{description}
220
221
222 The following configuration files were supplied by Phil Stracchino. For
223 example, if we define the following in the user's bconsole.conf file (or
224 perhaps the bwx-console.conf file): 
225
226 \footnotesize
227 \begin{verbatim}
228 Director {
229    Name = MyDirector
230    DIRport = 9101
231    Address = myserver
232    Password = "XXXXXXXXXXX"    # no, really.  this is not obfuscation.
233 }
234
235  
236 Console {
237    Name = restricted-user
238    Password = "UntrustedUser"
239 }
240 \end{verbatim}
241 \normalsize
242
243 Where the Password in the Director section is deliberately incorrect, and the
244 Console resource is given a name, in this case {\bf restricted-user}. Then
245 in the Director's bacula-dir.conf file (not directly accessible by the user),
246 we define: 
247
248 \footnotesize
249 \begin{verbatim}
250 Console {
251   Name = restricted-user
252   Password = "UntrustedUser"
253   JobACL = "Restricted Client Save"
254   ClientACL = restricted-client
255   StorageACL = main-storage
256   ScheduleACL = *all*
257   PoolACL = *all*
258   FileSetACL = "Restricted Client's FileSet"
259   CatalogACL = DefaultCatalog
260   CommandACL = run
261 }
262 \end{verbatim}
263 \normalsize
264
265 the user logging into the Director from his Console will get logged in as {\bf
266 restricted-user}, and he will only be able to see or access a Job with the
267 name {\bf Restricted Client Save} a Client with the name {\bf
268 restricted-client}, a Storage device {\bf main-storage}, any Schedule or Pool,
269 a FileSet named {\bf Restricted Client's FileSet}, a Catalog named {\bf
270 DefaultCatalog}, and the only command he can use in the Console is the {\bf
271 run} command. In other words, this user is rather limited in what he can see
272 and do with Bacula. 
273
274 The following is an example of a bconsole conf file that can access
275 several Directors and has different Consoles depending on the director:
276
277 \footnotesize
278 \begin{verbatim}
279 Director {
280    Name = MyDirector
281    DIRport = 9101
282    Address = myserver
283    Password = "XXXXXXXXXXX"    # no, really.  this is not obfuscation.
284 }
285
286 Director {
287    Name = SecondDirector
288    DIRport = 9101
289    Address = secondserver
290    Password = "XXXXXXXXXXX"    # no, really.  this is not obfuscation.
291 }
292
293 Console {
294    Name = restricted-user
295    Password = "UntrustedUser"
296    Director = MyDirector
297 }
298
299 Console {
300    Name = restricted-user
301    Password = "A different UntrustedUser"
302    Director = SecondDirector
303 }
304 \end{verbatim}
305 \normalsize
306
307 The second Director referenced at "secondserver" might look
308 like the following:
309
310 \footnotesize
311 \begin{verbatim}
312 Console {
313   Name = restricted-user
314   Password = "A different UntrustedUser"
315   JobACL = "Restricted Client Save"
316   ClientACL = restricted-client
317   StorageACL = second-storage
318   ScheduleACL = *all*
319   PoolACL = *all*
320   FileSetACL = "Restricted Client's FileSet"
321   CatalogACL = RestrictedCatalog
322   CommandACL = run, restore
323   WhereACL = "/"
324 }
325 \end{verbatim}
326 \normalsize
327
328
329
330 \section{Console Commands}
331 \index[general]{Console Commands}
332 \index[general]{Commands!Console}
333
334 For more details on running the console and its commands, please see the 
335 \ilink{Bacula Console}{_ConsoleChapter} chapter of this manual. 
336
337 \section{Sample Console Configuration File}
338 \label{SampleConfiguration2}
339 \index[general]{File!Sample Console Configuration}
340 \index[general]{Sample Console Configuration File}
341
342 An example Console configuration file might be the following: 
343
344 \footnotesize
345 \begin{verbatim}
346 #
347 # Bacula Console Configuration File
348 #
349 Director {
350   Name = HeadMan
351   address = "my_machine.my_domain.com"
352   Password = Console_password
353 }
354 \end{verbatim}
355 \normalsize