%%
%%

\chapter{Console Konfiguration}
\label{ConsoleConfChapter}
\index[general]{Konfiguration!Console}
\index[general]{Console Konfiguration}

\section{Allgemein}

Die Console-Konfigurations-Datei ist die einfachste Konfigurations-Datei von allen.
Normalerweise m\"{u}{\ss}en Sie in dieser Datei nicht au{\ss}er dem Passwort \"{a}ndern.
Diese Datei enth\"{a}lt alle Informationen die n\"{o}tig sind, damit sich das Console-Programm
zu dem Director-Dienst verbinden kann und darf.

F\"{u}r eine allgemeine \"{U}bersicht der Syntax der Konfigurations-Dateien, sowie der verschiedenen Eintr\"{a}ge,
einschlie{\ss}lich der Datentypen, sehen Sie sich bitte das Kapitel \ilink{Konfiguration}{ConfigureChapter} an.

Die folgenden Console-Konfigurations-Parameter m\"{u}ssen definiert werden:

\section{Der Director-Eintrag}
\label{DirectorResource3}
\index[general]{Director Eintrag}
\index[general]{Eintrag!Director}

Der Director-Eintrag enth\"{a}lt die notwendigen Parameter, um \"{u}ber das Console-Programm
Zugriff auf den Director-Dienst zu haben. Sie k\"{o}nnen mehrere Director-Dienste in dieser Datei angeben,
in dem Fall werden Sie beim starten der Console gefragt, zu welchem Director-Dienst Sie sich verbinden wollen.

\begin{description}
\item [Director]
   \index[console]{Director}
   Beginn des Director-Eintrags.

\item [Name = \lt{}name\gt{}]
   \index[console]{Name}
   Der Name des Directors, wird nur zur Unterscheidung benutzt, wenn Sie mehrere Director-Dienste konfiguriert haben.

\item [DIRPort = \lt{}port-number\gt{}]
   \index[dir]{DIRPort}
   gibt den Port an, auf dem der Director-Dienst l\"{a}uft. Wenn Sie die {\bf ./configure} Option
   {\bf \verb:--:with-base-port} angegeben haben, wird dieser Wert schon entsprechend gesetzt sein.
   Der Port mu{\ss} mit dem in der Director-Konfiguration angegebenen {\bf DIRport} identisch sein.
   Standardm\"{a}{\ss}ig wird der Port 9101 verwendet, so dass dieser Parameter normalerweise nicht gesetzt ist.

\item [Address = \lt{}address\gt{}]
   \index[dir]{Address}
   die Adresse ist ein Rechnername, eine absolute Adresse (FQDN) oder die IP-Adresse auf der der Director-Dienst l\"{a}uft.

\item [Password = \lt{}password\gt{}]
   \index[dir]{Password}
   das Passwort, dass benutzt wird um die Console beim Director-Dienst zu autorisieren.
   Das Passwort muss mit dem in der \ilink{Director-Konfiguration}{DirectorChapter} gesetzten Passwort identisch sein.
\end{description}

Ein Beispiel eines Director-Eintrags in der Console-Konfigurations-Datei:

\footnotesize
\begin{verbatim}
Director {
  Name = HeadMan
  address = rufus.cats.com
  password = xyz1erploit
}
\end{verbatim}
\normalsize

\section{Der ConsoleFont-Eintrag}
\index[general]{Eintrag!ConsoleFont}
\index[general]{ConsoleFont Eintrag}

Der ConsoleFont-Konfigurations-Eintrag ist nur in der GNOME-Version des Console-Programms verf\"{u}gbar.
Er erlaubt Ihnen, die im Hauptfenster verwendete Schriftart auszuw\"{a}hlen.

\begin{description}

\item [ConsoleFont]
   \index[console]{ConsoleFont}
   Beginn des ConsoleFont-Eintrags.

\item [Name = \lt{}name\gt{}]
   \index[console]{Name}
   Der Name des ConsoleFont-Eintrags.

\item [Font = \lt{}Pango Font Name\gt{}]
   \index[console]{Font}
   Dieser Wert gibt den Namen der Schriftart im Pango-Format an.
   Ein Beispiel:

\footnotesize
\begin{verbatim}
Font = "LucidaTypewriter 9"
\end{verbatim}
\normalsize

\end{description}

Vielen Dank an Phil Stracchino der diese Funktion in Bacula implementiert hat. 

Hier noch ein zweites Beispiel:
\footnotesize
\begin{verbatim}
ConsoleFont {
  Name = Default
  Font = "Monospace 10"
}
\end{verbatim}
\normalsize

\section{Der Console-Eintrag}
\label{ConsoleResource}
\index[general]{Console-Eintrag}
\index[general]{Eintrag!Console}

Seit der Bacula-Version 1.33 gibt es drei verschiedene Console-Typen, die der Administrator oder Benutzer
zur Verwaltung des Director-Dienstes verwenden kann. Diese drei verschiedenen Typen umfassen drei unterschiedliche
Sicherheitslevel.

\begin{itemize}
\item Der erste Consolen-Typ ist die {\bf anonymous} oder {\bf default} Console, die alle Rechte hat.
   F\"{u}r diesen Typ ist kein spezieller Eintrag notwendig, da das Passwort in der Director-Konfiguration angegeben wird.
   Dieser Consolen-Typ war der erste, der in Versionen vor 1.33 vorhanden war und auch weiterhin zu Verf\"{u}gung steht.
   Normalerweise wird diese Console von Administratoren benutzt.

\item Der zweite Consolen-Typ, den es seit Version 1.33 gibt, ist die {\bf named} oder {\bf restricted} Console.
   Diese Typ muss sowohl in der Director-Konfiguration, als auch in der Console-Konfigurations-Datei angegeben werden.
   Beide Namen und Passw\"{o}rter m\"{u}{\ss}en dabei in beiden Konfigurations-Dateien \"{u}bereinstimmen.

   Dieser zweite Consolen-Typ hat absolut keine Rechte, au{\ss}er denen, die in der Director-Konfiguration
   explizit zugewiesen werden. Die Director-Konfiguration legt also fest, was dieser Consolen-Typ darf.

   Damit k\"{o}nnen Sie also in der Director-Konfiguration diverse Consolen-Eintr\"{a}ge anlegen,
   die jeweils unterschiedliche Passw\"{o}rter und Namen haben und diese dann verschiedenen Benutzern zuweisen,
   die dann z.B. nur auf bestimmte Kommandos und Clients Zugriff haben. Standardm\"{a}{\ss}ig darf diese Console
   \"{u}berhaupt nichts -- keine Kommandos ausf\"{u}hren, absolut nichts. Sie m\"{u}ssen die Berechtigung f\"{u}r
   bestimmte Kommandos und Ressourcen in der Zugriffskontrollliste innerhalb der Director-Konfiguration erteilen.
   Dadurch hat der Administrator gezielte Kontrolle dar\"{u}ber, was er der Console bzw. dem Benutzer erlaubt.

\item Der dritte Consolen-Typ ist \"{a}hnlich des zweiten, auch er ben\"{o}tigt eine Definition in der
   Director- und Consolen-Konfiguration. Bei diesem Typ ist es so, dass wenn der Consolen-Name, der im
   Parameter {\bf Name =} definiert ist, identisch mit dem Client-Namen ist, dem Benutzer erlaubt wird,
   das {\bf SetIP}-Kommando zu benutzen. Dieses Kommando erm\"{o}glicht dem Client, dem Director-Dienst
   mitzuteilen, unter welcher IP-Adresse der Client momentan zu erreichen ist. Dadurch k\"{o}nnen Rechner,
   die ihr Netzwerk mittels DHCP dynamisch konfigurieren, dem Director-Dienst ihre aktuelle IP-Adresse melden.

\end{itemize}

Der Consolen-Konfigurations-Eintrag ist optional, wenn er angegeben wird, haben Sie allerdings die M\"{o}glichkeit,
Zugriffskontrolllisten anzulegen, um die entsprechende Console in ihren Rechten einzuschr\"{a}nken.
Damit k\"{o}nnen Sie z.B. dem Benutzer nur Zugriff auf die Backup-Jobs seines Clients erlauben.

Sie k\"{o}nnen beliebig viele Console-Eintr\"{a}ge in Ihrer Consolen-Konfiguration anlegen. Im allgemeinen wird dann
immer der erste Eintrag verwendet. Wenn Sie allerdings mehrere Director-Dienste, mit entsprechenden Eintr\"{a}gen in
Ihrer Consolen-Konfiguration, haben, m\"{u}ssen Sie beim starten der Console einen der Director-Dienste ausw\"{a}hlen.
Lesen Sie bitte auch die Beschreibung des "Director"-Parameters in der Console-Konfiguration, der weiter unten
beschrieben wird.

\begin{description}
\item [Console]
   \index[console]{Console}
   Beginn des Console-Eintrags.

\item [Name = \lt{}name\gt{}]
   \index[console]{Name}
   Der Name der Console. Er wird benutzt um dieser Console in der Director-Konfiguration eine
   Zugriffskontrollliste zuzuweisen.

\item [Password = \lt{}password\gt{}]
   \index[console]{Passwort}
   Wenn Sie hier ein Passwort angegeben, wird das Passwort aus dem Director-Eintrag ignoriert.
   Weiter unten finden Sie dazu Details.

\item [Director = \lt{}director-resource-name\gt{}]
   Falls dieser Parameter angegeben wird, kann dieser Consolen-Eintrag \"{u}ber ein Auswahlmen\"{u}
   beim ersten starten der Console selektiert werden. Er bestimmt dann, mit welchen Namen und Passwort
   sich das Console-Programm bei welchen Director-Dienst anmeldet.

\item [Heartbeat Interval = \lt{}time-interval\gt{}]
   \index[console]{Heartbeat Intervall}
   \index[console]{Parameter!Heartbeat}
   Dieser Parameter ist optional. Falls Sie ihn angeben, wird im Abstand des konfigurierten Intervalls (in Sekunden)
   ein \elink{keepalive}{http://de.wikipedia.org/wiki/Keepalive} zum Director-Dienst geschickt. Es ist nur auf Betriebssystemen
   implementiert, die die {\bf setsockopt} TCP\_KEEPIDLE unterst\"{u}tzen (Linux, ...).
   Der Standardwert ist null, d.h. es werden keine keepalives gesendet.

\end{description}


Ein Beispiel, wenn Sie folgendes in Ihrer Consolen-Konfigurations-Datei, bconsole.conf oder bwx-console.conf,
definieren:

\footnotesize
\begin{verbatim}
Director {
   Name = MyDirector
   DIRport = 9101
   Address = myserver
   Password = "XXXXXXXXXXX"    # das dient hier nicht der Unkenntlichmachung.
}

 
Console {
   Name = restricted-user
   Password = "UntrustedUser"
}
\end{verbatim}
\normalsize

wobei das Passwort im Director-Konfigurations-Eintrag bewu{\ss}t falsch gesetzt ist
und der Consolen-Eintrag einen Name besitzt, hier {\bf restricted-user}. Danach erstellen Sie in der Konfiguration
des Director-Dienstes, auf die der Benutzer keinen Zugriff hat, folgende Consolen:

\footnotesize
\begin{verbatim}
Console {
  Name = restricted-user
  Password = "UntrustedUser"
  JobACL = "Restricted Client Save"
  ClientACL = restricted-client
  StorageACL = main-storage
  ScheduleACL = *all*
  PoolACL = *all*
  FileSetACL = "Restricted Client's FileSet"
  CatalogACL = DefaultCatalog
  CommandACL = run
}
\end{verbatim}
\normalsize

dann wird der Benutzer beim Anmelden an den Director-Dienst als {\bf restricted-user} angemeldet.
Der Benutzer wird nur Zugriff auf Jobs mit dem Namen {\bf Restricted Client Save},
auf den Client {\bf restricted-client},
auf den Storage {\bf main-storage},
auf jeden Zeitplan (Schedule) und auf jeden Pool,
ein FileSet namens {\bf Restricted Client's FileSet},
den Katalog {\bf DefaultCatalog},
sowie einzig und allein das Kommando {\bf run} haben.
Mit anderen Worten, dieser Benutzer ist sehr eingeschr\"{a}nkt in dem, was er mit der Console
sehen und tun kann.

Das folgende Beispiel zeigt eine bconsole.conf-Datei, in der mehrere Director-Dienste,
sowie verschiedene Consolen-Eintr\"{a}ge, abh\"{a}ngig vom Director, zu sehen sind:

\footnotesize
\begin{verbatim}
Director {
   Name = MyDirector
   DIRport = 9101
   Address = myserver
   Password = "XXXXXXXXXXX"    # das dient hier nicht der Unkenntlichmachung.
}

Director {
   Name = SecondDirector
   DIRport = 9101
   Address = secondserver
   Password = "XXXXXXXXXXX"    # das dient hier nicht der Unkenntlichmachung.
}

Console {
   Name = restricted-user
   Password = "UntrustedUser"
   Director = MyDirector
}

Console {
   Name = restricted-user
   Password = "A different UntrustedUser"
   Director = SecondDirector
}
\end{verbatim}
\normalsize

Der zweite Director-Dienst, benannt als "secondserver", k\"{o}nnte diese Konfiguration besitzen:

\footnotesize
\begin{verbatim}
Console {
  Name = restricted-user
  Password = "A different UntrustedUser"
  JobACL = "Restricted Client Save"
  ClientACL = restricted-client
  StorageACL = second-storage
  ScheduleACL = *all*
  PoolACL = *all*
  FileSetACL = "Restricted Client's FileSet"might
  CatalogACL = RestrictedCatalog
  CommandACL = run, restore
  WhereACL = "/"
}
\end{verbatim}
\normalsize

Im Unterschied zum ersten Director-Dienst, darf der Benutzer hier, neben einem anderem Storage, auch
das Consolen-Kommando {\bf restore} ausf\"{u}hren (wobei er als {\bf Where} allerdings nur "/" angeben darf).


\section{Console-Kommandos}
\index[general]{Console-Kommandos}
\index[general]{Kommandos!Console}

F\"{u}r mehr Details zum arbeiten mit der Console und ihrer Kommandos,
lesen Sie bitte das Kapitel \ilink{Bacula Console}{_ConsoleChapter} in diesem Handbuch.

\section{Beispiel Console-Konfigurations-Datei}
\label{SampleConfiguration2}
\index[general]{Datei!Beispiel Console-Konfiguration}
\index[general]{Beispiel Console-Konfigurations-Datei}

Dies k\"{o}nnte ein Beispiel f\"{u}r eine Console-Konfigurations-Datei sein:

\footnotesize
\begin{verbatim}
#
# Bacula Console Configuration File
#
Director {
  Name = HeadMan
  address = "my_machine.my_domain.com"
  Password = Console_password
}
\end{verbatim}
\normalsize
