%
% administration.tex
% Last Update: $Id$
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Kapitel Administration %%%%%%%%%%%%%%%%%%%%%%%%
\chapter{Administration des \eisfair{-Servers}}


\section{Zugriff auf den Server}

In den folgenden Abschnitten werden verschiedene M"oglichkeiten des
Zugriffs auf den Server beschrieben.

\marklabel{FRAMEBUFFER}{}
\subsection{Zugriff "uber echte Konsole}

Beim Zugriff mit einer \glqq{}echten Konsole\grqq{} wird mit direkt am Server
angeschlossener Tastatur und Monitor gearbeitet. Diese Art und Weise ist
die urspr"unglichste Form der Serveradministration und wird haupts"achlich
bei der Installation verwendet. Vorteil dieser Methode ist, dass man
wirklich 'pur' an der Maschine ist, sich also keine Gedanken um
Terminalemulation oder Zeichens"atze machen muss. Ein Nachteil ist die
Gr"o"senbeschr"ankung der sichtbaren Konsole, welche 80x24 Zeichen
betr"agt. Ist im Rechner eine Grafikkarte mit VESA-Unterst"utzung
eingebaut, l"asst sich diese Gr"o"senbeschr"ankung aufheben, indem man die
Konsole im Framebuffer-Modus betreibt. Die aktuellen \eisfair{-Kernel}
haben die Unterst"utzung daf"ur eingebaut und k"onnen mit entsprechenden
Optionen geladen werden. Bei \eisfair ist dazu eine Anpassung der
Datei \texttt{/boot/extlinux/extlinux.conf} n"otig. Die Option hei"st
\emph{vga} und die Parameter sind der Tabelle zu entnehmen.
%\ref{tab:parameter_kernel_vga} zu entnehmen.

\vspace{10mm}


\begin{table}[h]
\centering
    \begin{tabular}{@{}lllll@{}}
        \toprule
                     & \textbf{640x480}
                                    & \textbf{800x600}
                                                   & \textbf{1024x768}
                                                          & \textbf{1280x1024}
                                                        \\
        \midrule
        \textbf{256} & \textbf{769} & \textbf{771} & \textbf{773} & \textbf{775} \\
        \textbf{32k} & \textbf{784} & \textbf{787} & \textbf{790} & \textbf{793} \\
        \textbf{64k} & \textbf{785} & \textbf{788} & \textbf{791} & \textbf{794} \\
        \textbf{16M} & \textbf{786} & \textbf{789} & \textbf{792} & \textbf{795} \\
        \bottomrule
    \end{tabular}
    \caption{Parameter f"ur Kernel-Option 'vga'}
%   \label{tab:parameter_kernel_vga}
\end{table}


Der VGA Wert kann auch jederzeit beim 'boot' ge"andert werden, indem die
'cmdline' bearbeitet wird. Mit der Taste 'TAB' wird die 'cmdline' erreicht.

Auch l"asst sich der Wert 'ask' (vga=ask) eintragen, dann gibt es jedesmal
eine Abfrage welcher VGA Modus gew"unscht wird.




\vspace{10mm}

In der Regel steht der Server nach der Installation an einem Ort, wo er
nicht durch seinen Platzbedarf oder seinen L"armpegel st"ort. In vielen
F"allen ist dort dann auch weder Tastatur noch Monitor angeschlossen.
Dennoch muss der Server administriert werden k"onnen, was durch eine der
folgenden M"oglichkeiten gemacht werden kann.

\newpage

\marklabel{PUTTYOPTIONEN}{}
\subsection{Zugriff mit PuTTY}


\link{http://www.chiark.greenend.org.uk/~sgtatham/putty/}{PuTTY}
ist ein freies Terminal Programm f"ur die Windows Betriebssysteme.

Einer der gro"sen Vorteile von PuTTY ist, dass die Gr"o"se der Konsole
lediglich durch die verwendete Bildschirmaufl"osung und Schriftart
begrenzt wird. Auf den heute "ublichen Monitoren sind damit weitaus
gr"o"sere Konsolen als 80x24 m"oglich.

Bei PuTTY k"onnen sehr viele Einstellungen modifiziert werden, wobei die
meisten jedoch in ihrer Default-Einstellung ausreichend sind. Wichtig
ist jedoch die Zeichenkodierung, um im PuTTY-Fenster keine verst"ummelten
Zeichen zu erhalten und alle Tasten des Keyboards korrekt verwenden zu
k"onnen. F"ur eine funktionierende Zeichenkodierung muss in der PuTTY
Konfiguration der Terminal-type string auf den Eintrag 'putty' ge"andert
werden.

Mit dem base-update 2.8.10 sind weitere Terminal Einstellungen m"oglich
geworden:


   \begin{tabular}{llllll}
   & putty                & \pfeil & PuTTY terminal emulator \\
   & putty-256color       & \pfeil & PuTTY 0.58 with xterm 256-colors \\
   & putty+fnkeys         & \pfeil & fn-keys for PuTTY \\
   & putty+fnkeys+esc     & \pfeil & ESC[n\textasciitilde{} fn-keys for PuTTY \\
   & putty+fnkeys+linux   & \pfeil & Linux fn-keys for PuTTY \\
   & putty+fnkeys+sco     & \pfeil & SCO fn-keys for PuTTY \\
   & putty+fnkeys+vt100   & \pfeil & VT100+ fn-keys for PuTTY \\
   & putty+fnkeys+vt400   & \pfeil & VT400+ fn-keys for PuTTY \\
   & putty+fnkeys+xterm   & \pfeil & Xterm R6 fn-keys for PuTTY \\
   & putty-m1             & \pfeil & PuTTY Minitel 1 'like' Couleurs \\
   & putty-m1b            & \pfeil & PuTTY Minitel 1B 'like' Monochrome \\
   & putty-m2             & \pfeil & PuTTY Minitel 2 'like' Couleurs \\
   & putty-noapp          & \pfeil & PuTTY with cursor keys in normal mode \\
   & putty-sco            & \pfeil & PuTTY with SCO function keys \\
   & putty-vt100          & \pfeil & VT100+ keyboard layout \\
   \end{tabular}

Welche Emulation nun die beste ist, mu"s nun ergr"undet werden.


\vspace{10mm}


\graphic{center}{width=100mm}{./pics/putty-terminal-type-string.png}{Terminal string}


\vspace{10mm}

Anschlie"send sollten alle Tasten wie erwartet funktionieren.
\newpage

Ob wirklich die gew"unschte Emulation vorhanden ist, l"asst sich wie folgt
"uberpr"ufen:

\vspace{10mm}

\begin{latexonly}
\begin{bildschirm}
\\login as: user
user@eis.mein.lan's password:
Last login: Sat Nov 09 09:54:32 2013 from xxx.mein.lan

\green{Welcome to eisfair!}
eisfair-base: \eisBase
eiskernel   : \eisKernel

user@eis:-> su - root
Password:

\green{Welcome to eisfair!}
eisfair-base: \eisBase
eiskernel   : \eisKernel

\prompt \yellow{echo \$TERM}
putty
\prompt
\end{bildschirm}
\end{latexonly}

\begin{htmlonly}
\begin{rawhtml}
<CENTER>
    <TABLE WIDTH=561 BORDER=0 CELLPADDING=0 CELLSPACING=0>
        <COL WIDTH=561>
        <TR>
            <TD WIDTH=561 VALIGN=TOP>
            <P><BR>
            </P>
            <PRE STYLE="background: #333333">

<FONT COLOR="#ffffff"> login as: user
 user@eis.mein.lan's password:
 Last login: Sat Nov 09 09:54:32 2013 from xxx.mein.lan </FONT>

<FONT COLOR="#008000"> Welcome to eisfair!</FONT><FONT COLOR="#ffffff">
 eisfair-base:&nbsp;\end{rawhtml}\eisBase \begin{rawhtml}
 eiskernel   :&nbsp;\end{rawhtml}\eisKernel \begin{rawhtml}

 user@eis:-&gt; su - root
 Password:</FONT>

<FONT COLOR="#008000"> Welcome to eisfair!</FONT><FONT COLOR="#ffffff">
 eisfair-base:&nbsp;\end{rawhtml}\eisBase \begin{rawhtml}
 eiskernel   :&nbsp;\end{rawhtml}\eisKernel \begin{rawhtml}

<FONT COLOR="#ff0000"> eis #</FONT> <FONT COLOR="#ffff00">echo \$TERM</FONT> <FONT COLOR="#ffffff">
 putty</FONT>
<FONT COLOR="#ff0000"> eis #</FONT>
            </PRE>
            <P><BR>
            </P>
            </TD>
        </TR>
    </TABLE>
</CENTER>
\end{rawhtml}
\end{htmlonly}

\vspace{10mm}

\subsubsection{Key-Login mit PuTTY}
In den folgenden Abschnitten wird beschrieben, wie der automatische Login als
root mit ssh-Key und PuTTY eingerichtet wird.

  \begin{enumerate}
    \item Keypair erzeugen

    F"ur den automatischen Login muss im ersten Schritt ein Schl"usselpaar erzeugt
    werden. Daf"ur meldet man sich wie in einem der vorherigen Kapitel beschrieben
    beim Server an, sodass man die normale Konsole vor sich hat. Nun wird mit dem
    Befehl 'ssh-keygen' der Schl"ussel erzeugt. Der Befehl fragt daraufhin, unter
    welchem Namen der Schl"ussel abgelegt werden soll. Der Vorschlag kann
    prinzipiell durch einen Druck auf 'Enter' "ubernommen werden. Es macht sich
    jedoch auch Sinn, dem Schl"ussel bspw. im Namen das Datum der Erzeugung
    mitzugeben. So k"onnen die Keys sp"ater bspw. in einem verschl"usselten
    Container auf einem USB-Stick mitgenommen werden und man beh"alt den
    "Uberblick "uber das Alter der Keys. Weiterhin wird eine Passphrase f"ur den
    Schl"ussel verlangt. Hier muss man f"ur sich selbst entscheiden, ob man dem
    Key eine Passphrase gibt oder durch direkten Druck auf 'Enter' einen
    Schl"ussel ohne Passwort erstellt. Der folgende Screenshot zeigt das Anlegen
    des Keys:

%	\graphic{center}{width=130mm}{./pics/putty-sshkey-setup01.png}{Anlegen des Schl�sselpaares}
\newpage

    \begin{center}
    Anlegen des Schl"usselpaares
    \end{center}

\vspace{10mm}

\begin{latexonly}
\begin{bildschirm}
\\\prompt \yellow{ssh-keygen}
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
                                     /root/.ssh/2010-02-15_id_rsa
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/2010-02-15_id_rsa.
Your public key has been saved in /root/.ssh/2010-02-15_id_rsa.pub.
The key fingerprint is:
13:f3:b6:6a:21:42:a7:c1:5c:3f:5c:cd:1c:22:e2:dd root@eis
\prompt
\end{bildschirm}
\end{latexonly}

\begin{htmlonly}
\begin{rawhtml}
<CENTER>
    <TABLE WIDTH=561 BORDER=0 CELLPADDING=0 CELLSPACING=0>
        <COL WIDTH=561>
        <TR>
            <TD WIDTH=561 VALIGN=TOP>
            <P><BR>
            </P>
            <PRE STYLE="background: #333333">

<FONT COLOR="#ff0000"> eis #</FONT> <FONT COLOR="#ffff00">ssh-keygen</FONT> <FONT COLOR="#ffffff">
 Generating public/private rsa key pair.
 Enter file in which to save the key (/root/.ssh/id_rsa): /root/.ssh/2010-02-15_id_rsa
 Enter passphrase (empty for no passphrase):
 Enter same passphrase again:
 Your identification has been saved in /root/.ssh/2010-02-15_id_rsa.
 Your public key has been saved in /root/.ssh/2010-02-15_id_rsa.pub.
 The key fingerprint is:
 13:f3:b6:6a:21:42:a7:c1:5c:3f:5c:cd:1c:22:e2:dd root@eis
<FONT COLOR="#ff0000"> eis #</FONT>
            </PRE>
            <P><BR>
            </P>
            </TD>
        </TR>
    </TABLE>
</CENTER>
\end{rawhtml}
\end{htmlonly}


\vspace{10mm}

    \item Verwendung des Public Key f"ur User root aktivieren

    Damit der soeben erzeugte Schl"ussel vom User root f"ur den automatischen
    Login verwendet werden kann, muss dieser nun in der ssh-Konfiguration
    eingetragen  werden. Dazu wird 'setup' gestart und zur ssh-Konfiguration
    navigiert.

    \graphic{center}{width=130mm}{./pics/putty-sshkey-setup03.png}{ssh-Setup}

    In der Konfiguration muss nun der Z"ahler f"ur die Anzahl der zu verwendenden
    ssh-Keys 'SSH\_PUBLIC\_KEY\_N' um eins erh"oht und in der daraufhin sichtbar
    werdenden Variable 'SSH\_PUBLIC\_KEY\_1' der Schl"ussel mit seinem vollen Pfad
    eingetragen werden. Wichtig: Es muss der Public-Key eingetragen werden, also
    der im vorherigen Schritt erzeugte Schl"ussel mit vollem Pfad sowie der
    Erweiterung '.pub'. Der folgende Screenshot zeigt genau diesen Schritt:

    \graphic{center}{width=130mm}{./pics/putty-sshkey-setup04.png}{Eintragen des Public-Key}

    Wird die Konfiguration nun gespeichert und aktiviert, so wird der angegebene
    Public-Key in die Datei 'root/.ssh/authorized\_keys' eingetragen.

    Achtung: Beim Aktivieren der Konfiguration wird authorized\_keys neu generiert! \\
    Wurde bereits ein Schl"ussel von Hand eingetragen, so ist dieser Eintrag nicht
    mehr vorhanden. Es m"ussen alle zu verwendenden Private-Keys "uber das Setup
    konfiguriert werden.

    Damit ist die Konfiguration auf Seiten des Servers abgeschlossen. Wenn sp"uter
    alles funktioniert folgt noch ein separater Schritt zur weiteren Absicherung
    des Servers.

    \item Private Key auf Windows-Rechner kopieren

    Damit der erzeugte Schl"ussel in PuTTY verwendet werden kann, muss er nun auf
    die Windows-Maschine kopiert werden. Dazu eignet sich ein scp-Tool wie bspw.
    \link{http://winscp.org/}{WinSCP} hervorragend.

    Hinweiss: Der im folgenden erzeugte PuTTY-Schl"ussel l"asst sich auch mit
    WinSCP verwenden!

    Es muss nun also der private Schl"ussel auf die Windows-Maschine kopiert
    werden. Um beim obigen Beispiel zu bleiben also die Datei 'root/.ssh/2010-02-15\_id\_rsa':

    \graphic{center}{width=130mm}{./pics/putty-sshkey-setup05.png}{Private-Key auf Windows-Maschine kopieren}

    \item Key in PuTTY-Format umwandeln

    Der private Schl"ussel liegt in einem Format vor, welches PuTTY nicht direkt
    verwenden kann. Aus diesem Grund muss der Schl"ussel in das PuTTY-Format
    konvertiert werden. Das ist mit dem Tool 'PuTTYgen' sehr einfach. PuTTYgen ist
    Bestandteil der PuTTY-Suite und wird beim Installieren des PuTTY-Gesamtpaketes
    per Default mit installiert.

    Nach dem Start von PuTTYgen wird der vom eisfair Server heruntergeladene
    private Schl"ussel durch einen Klick auf 'Load' geladen:

    \graphic{center}{width=100mm}{./pics/putty-sshkey-setup06.png}{Die Oberfl"ache von PuTTYgen}

    Es ist zu beachten, dass der Typ der aufgelisteten Dateien auf 'All Files
    (*.*)' gestellt werden muss, damit der private Schl"ussel im Load-Dialog
    angezeigt wird:

    \graphic{center}{width=130mm}{./pics/putty-sshkey-setup07.png}{Laden des Schl"ussels in PuTTYgen}

    Wenn beim Erzeugen des Schl"ussels eine Passphrase vergeben wurde, erfragt
    PuTTYgen diese nun. Nachdem der Schl"ussel geladen wurde, sollte PuTTYgen
    eine Meldung zum erfolgreichen Import des Schl"ussels zeigen:

    \graphic{center}{width=100mm}{./pics/putty-sshkey-setup08.png}{Schl"ussel in PuTTYgen importiert}

    Nun muss der Schl"ussel mit PuTTYgen gespeichert werden, damit er im
    PuTTY-Format vorliegt. Durch einen Klick auf 'Save private key' "offnet sich
    der entsprechende Dialog, in welchem man dem aktuellen Dateinamen ausw"ahlt
    und um die Endung '.ppk' erg"anzt. PuTTYgen macht das leider nicht selbst.
    Enth"alt der Schl"ussel  keine Passphrase erscheint noch eine entsprechende
    Sicherheitsabfrage. Auch hier muss jeder wieder f"ur sich entscheiden, ob er
    den Schl"ussel mit einem Passwort versehen m"ochte oder nicht.

    \graphic{center}{width=130mm}{./pics/putty-sshkey-setup09.png}{Private-Key im PuTTY-Format speichern}

    Damit ist die Konvertierung des Schl"ussels abgeschlossen und PuTTYgen kann
    beendet werden.

    Auf der Windows-Maschine liegt nun der private Schl"ussel in zwei
    verschiedenen Formen vor: Einmal im urspr"unglichen Format wie er auf dem
    Server generiert wurde und einmal im PuTTY-Format:

    \graphic{center}{width=130mm}{./pics/putty-sshkey-setup10.png}{Private-Key Dateien auf Windows-Seite}

    \item Key in PuTTY einbinden

    Neben den zu Begin des PuTTY-Abschnittes beschriebenen Einstellungen muss der
    Schl"ussel nun in PuTTY eingebunden werden. Hier wird zun"achst die direkte
    Integration in eine Session-Konfiguration beschrieben.

    Der Schl"ussel wurde f"ur den User 'root' erzeugt. Damit der zu verwendende
    User beim Aufbau einer Verbindung nicht eingetippt werden muss, kann dieser
    in PuTTY unter Connection - Data - Auto-login username angegeben werden:

    \graphic{center}{width=100mm}{./pics/putty-sshkey-setup11.png}{Login Username konfigurieren}

    Der private Schl"ussel wird unter Connection - SSH - Auth ausgew"ahlt:

    \graphic{center}{width=100mm}{./pics/putty-sshkey-setup12.png}{Private-Key einbinden}
    \graphic{center}{width=130mm}{./pics/putty-sshkey-setup13.png}{Private-Key ausw"ahlen}

    Damit ist der Schl"ussel eingebunden und die Session-Konfiguration kann unter
    der Kategorie 'Session' gespeichert werden. Damit ist die Konfiguration f"ur
    die sp"atere Verwendung gesichert.

    Mit einem Klick auf 'Open' stellt PuTTY die Verbindung zum Server unter
    Verwendung des konfigurierten Usernamens sowie Private-Keys her. Beim
    ersten Verbindungsaufbau dieser Art kennt PuTTY den Server noch nicht und
    zeigt den folgenden Dialog:

    \graphic{center}{width=80mm}{./pics/putty-sshkey-setup14.png}{Neuer bzw. unbekannter Host}

    Hintergrund dieser Meldung ist, dass der Host (also der eisfair-Server) PuTTY
    noch nicht bekannt ist. Mit dem Klick auf 'Ja' wird die Identifizierung des
    Hosts in die Registry eingetragen und PuTTY 'kennt' diese Maschine in Zukunft.
    Diese Meldung sollte in Zukunft nicht mehr angezeigt werden, da sich der
    Fingerprint eines Hosts i.d.R. nur bei einer Neuinstallation "andert. Damit
    kann bspw. auch festgestellt werden, wenn man eine Verbindung zur falschen
    Maschine aufbaut, bspw. ein anderer Server welcher die gleiche IP verwendet,
    w"ahrend der 'echte' Server offline ist.

    Wenn der Login erfolgreich war, pr"asentiert sich der eisfair-Server bspw. in
    folgender Form:

%	\graphic{center}{width=130mm}{./pics/putty-sshkey-setup15.png}{Login mit ssh-Key}

    \begin{center}
    Login mit ssh-Key
    \end{center}

\begin{latexonly}
\begin{bildschirm}
\\Using username "root".
Authenticating with public key "imported-openssh-key"
Last login: Sat Nov 09 09:54:32 2013 from xxx.mein.lan

\green{Welcome to eisfair!}
eisfair-base: \eisBase
eiskernel   : \eisKernel

\prompt
\end{bildschirm}
\end{latexonly}

\begin{htmlonly}
\begin{rawhtml}
<CENTER>
    <TABLE WIDTH=561 BORDER=0 CELLPADDING=0 CELLSPACING=0>
        <COL WIDTH=561>
        <TR>
            <TD WIDTH=561 VALIGN=TOP>
            <P><BR>
            </P>
            <PRE STYLE="background: #333333">

<FONT COLOR="#ffffff"> Using username "root".
 Authenticating with public key "imported-openssh-key"
 Last login: Sat Nov 09 09:54:32 2013 from xxx.mein.lan

<FONT COLOR="#008000"> Welcome to eisfair!</FONT><FONT COLOR="#ffffff">
 eisfair-base:&nbsp;\end{rawhtml}\eisBase \begin{rawhtml}
 eiskernel   :&nbsp;\end{rawhtml}\eisKernel \begin{rawhtml}
</FONT>
<FONT COLOR="#ff0000"> eis #</FONT>
            </PRE>
            <P><BR>
            </P>
            </TD>
        </TR>
    </TABLE>
</CENTER>
\end{rawhtml}
\end{htmlonly}



    \item Passwort-Login f"ur root unterbinden

    Wenn bis hierhin alles funktioniert, kann der root-Login unter Verwendung
    eines Passwortes deaktiviert werden. Damit wird unterbunden, dass sich der
    Superuser 'root' direkt per ssh auf den Server einloggen kann. Diese Massnahme
    erh"oht die Sicherheit des Servers und sollte bei aus dem Internet erreichbaren
    Server dringend angewandt werden.

    Achtung: Dieser Schritt sollte aber nur dann gemacht werden, wenn einerseits
    der Key-Login sauber funktioniert und andererseits ein normaler User
    konfiguriert wurde, "uber den man sich auf den Server einloggen kann.
    Ansonsten besteht die Gefahr, dass man sich selbst aussperrt und das nur
    unter Verwendung der 'echten Konsole' wieder korrigieren kann.

    Der Passwort-Login f"ur den User root wird in der ssh-Konfiguration
    abgeschaltet, indem unter 'SSH\_PERMITROOTLOGIN' die Einstellung
    'without-password' ausgew"ahlt wird:

    \graphic{center}{width=130mm}{./pics/putty-sshkey-setup16.png}{root-Login mit Passwort deaktivieren}

    Wird diese Einstellung aktiviert, kann sich der User 'root' nicht mehr mit
    Username und Passwort einloggen, sondern nur noch unter Verwendung des
    Key-Files. Nat"urlich besteht weiterhin die M"oglichkeit, sich als normaler
    User anzumelden und dann mit dem Kommando

    \emph{'su -'}

    zum Superuser 'root' zu machen.

  \end{enumerate}



% Beschreibung des zugriff mit SSH in eine eigene Datei
% ausgelagert, da so besser zu behandeln 2022-06-06 (hbfl)
\input{administration_ssh}



\marklabel{SETUPPROGRAMM}{\section{Das Setup-Programm}}

Das Setup-Programm ist die zentrale Anlaufstelle, wenn es um die Wartung,
Einrichtung und Konfiguration des \eisfair-Servers geht. Es unterst"utzt im
Moment folgende Features:
\begin{itemize}
  \item System-Konfiguration
    \begin{itemize}
      \item Grundeinstellungen bearbeiten
%        \begin{itemize}
%          \item Servernamen
%          \item Netzwerkeinstellungen
%          \item Start zus"atzlicher Treiber
%        \end{itemize}
      \item Einstellung der Umgebungsvariablen
      \item Verwaltung von Ger"aten%:
%        \begin{itemize}
%          \item Diskettenlaufwerk
%          \item CDROM-Laufwerk
%          \item USB-Ger"ate
%        \end{itemize}
      \item Verwaltung von Dateisystemen (ext2/ext3)
    \end{itemize}
  \item Paket-Verwaltung
    \begin{itemize}
      \item Auflisten aller f"ur \eisfair erh"altlichen Pakete
      \item Installation von Paketen
      \item Auflisten aller installierten Pakete
    \end{itemize}
  \item Konfiguration der einzelnen Pakete
  \item Anlegen und Verwalten von neuen Benutzern und Benutzergruppen
\end{itemize}

Gestartet werden kann das Setup-Programm "uber die folgenden 2 Arten:
\begin{itemize}
  \item Anmeldung als User \glqq{}eis\grqq{}
  \item Als root mit dem Aufruf von \glqq{}setup\grqq{} (ohne die Anf"uhrungszeichen)
\end{itemize}

Das Setup-Programm wird "uber die Eingabe von Zahlen gesteuert, wobei
jederzeit ersichtlich ist, welcher Zahl welche Funktion zugeordnet ist.
Mit der \glqq{}0\grqq{} (Null) verl"a"st man das Konfigurationsmen"u komplett.






\marklabel{MENUMAIN}{\subsection{Das Hauptmen"u}}
Das Hauptmen"u erscheint direkt nach dem Start des Setup-Programmes. Mit den
angegebenen Nummern k"onnen folgende Untermen"upunkte erreicht werden:

\begin{tabular}{llll}
 & 1. & \jump{MENUSYSTEMADM}{System administration} -- Verwaltung des Systems \\
 & 2. & \jump{MENUPACKAGEADM}{Package administration} -- Verwaltung von Paketen \\
 & 3. & \jump{MENUPACKAGEDOC}{Package documentation} -- Dokumentation von
             Paketen \\
 & 4. & \jump{MENUSERVICEADM}{Service administration} -- Verwaltung der
             installierten Dienste \\
 & 5. & \jump{MENUUSERADM}{User administration} -- Verwaltung von Benutzern und
             Gruppen \\
 & 0. & Exit -- Beendet das Setup-Programm \\
\end{tabular}


Mit dem Men"upunkt \glqq{}Exit\grqq{} wird das Setup-Programm beendet.
Die einzelnen Untermen"us sind im weiteren beschrieben.







\marklabel{MENUSYSTEMADM}{\subsection{Men"u: System administration}}

Das Men"u bietet folgende M"oglichkeiten:

\begin{tabular}{llll}
 & 1. & \jump{MENUSYSTEMBASE}{Base administration} -- Grundeinstellungen verwalten \\
 & 2. & \jump{MENUSYSTEMNETWORK}{Network administration} -- Netzwerkeinstellungen verwalten \\
 & 3. & \jump{MENUSYSTEMLOGGING}{Logging administration} -- Logeinstellungen \\
 & 4. & \jump{MENUSYSTEMDEVICES}{Devices} -- Ger"ate verwalten \\
 & 5. & \jump{MENUSYSTEMFILESYS}{Filesystems} -- Dateisystem "andern \\
 & 6. & \jump{MENUSYSTEMHARDWARE}{Hardware administration} -- Hardware (Diagnose |  CAPI | DAHDI | etc) \\
 & 7. & \jump{MENUSYSTEMSCHEDULER}{Job scheduler administration} -- Zeitgesteuerte Prozesse verwalten \\
 & 8. & \jump{MENUSYSTEMSSH}{SSH administration} -- SSH Konfiguration \\
 & 9. & \jump{MENUSYSTEMUPDATEDB}{UpdateDB administration} -- UpdateDB verwalten \\
 & 0. & \jump{MENUMAIN}{Exit} -- Zur"uck ins Hauptmen"u \\
\end{tabular}






\marklabel{MENUSYSTEMBASE}{\subsection{Men"u: Base administration}}

Dieses Men"u dient zur Verwaltung der Grundeinstellungen des \eisfair-Servers. Das Untermen"u bietet folgende Optionen:

\begin{tabular}{llll}
 & 1. & \jump{BASEPARAMS}{Edit base configuration} -- Grundeinstellungen
             bearbeiten \\
 & x. & \jump{SYSTEMBASEENVIRONMENT}{Environment administration} --
             Umgebungsvariablen bearbeiten \\
 & x. & \jump{SYSTEMBASELOCALES}{Locales administration} -- Console und locale
             Einstellungen bearbeiten \\
 & x. & \jump{BASEACFH}{Advanced base configuration file handling} --
             Erweiterte Funktionen \\
 &    &      f"ur die Grundeinstellungen \\
 & x. & \jump{BASEECE}{Set \eisfair configuration editor} -- Festlegung des
             Konfigurationseditors \\
 & x. & \jump{MENUSTYLE}{Set \eisfair menu style} -- Festlegung des Men"ustils \\
 & 0. & \jump{MENUSYSTEMADM}{Exit} -- Zur"uck ins Men"u: System administration \\
\end{tabular}


% Beschreibung der base_config in eine eigene Datei
% ausgelagert, da so besser zu behandeln 2011-11-04 (hbfl)
\input{administration_base_config}


% Beschreibung environment in eine eigene Datei
% ausgelagert, da so besser zu behandeln 2020-01-29 (hbfl)
%\marklabel{BASEENVPARAMS}{\subsubsection{Environment administration}}
%
%Die Einstellungen des Environment werden ausf"uhrlich an einer anderen
% \jump{ENVPARAMS}{Stelle} beschrieben.




\marklabel{BASEACFH}{\subsubsection{Advanced base configuration file handling}}

Die erweiterten Behandlung der Konfigurationsdateien
(engl. ACFH=Advanced configuration file handling) wird an einer anderen
\jump{MENUACFH}{Stelle} beschrieben. Daher soll hier nicht weiter darauf
eingegangen werden.






\marklabel{BASEECE}{\subsubsection{Set \eisfair configuration editor}}

Die Auswahl des Konfigurationseditors wird ausf"uhrlich an einer anderen
 \jump{CONFIGEDITOR}{Stelle} beschrieben.






\marklabel{MENUSTYLE}{\subsubsection{Set \eisfair menu style}}

Hier kann der Stil des Men"u eingestellt werden.

\begin{tabular}{llll}
 & 1. &  Classic text style \\
 & 2. &  Curses style \\
\end{tabular}




\marklabel{MENUSYSTEMNETWORK}{\subsection{Men"u: Network administration}}

In dieser Sektion k"onnen verschiedene Netzwerk Dienste konfiguriert werden.
Die Eintr"age richten sich nach den installierten Paketen und sind somit
optional.

\begin{tabular}{llll}
%& x. & \jump{NETWORKADMIN}{Network administration} \\
 & x. & \jump{BONDINGADMIN}{Bonding administration} \\
 & x. & \jump{BRIDGEADMIN}{Bridge adminstration} \\
 & x. & \jump{DSLADMIN}{DSL (PPPoE) administration} \\
 & x. & \jump{DHCPCADMIN}{DHCP Client administration} \\
 & 0. & \jump{MENUSYSTEMADM}{Exit} -- Zur"uck ins Men"u: System administration \\
\end{tabular}



\marklabel{MENUSYSTEMLOGGING}{\subsection{Men"u: Logging administration}}

In dieser Sektion k"onnen verschiedene Logging Dienste konfiguriert werden.
Die Eintr"age richten sich nach den installierten Paketen und sind somit
optional.

\begin{tabular}{llll}
 & x. & \jump{MENUSYSTEMLOGFILE}{Logfile view} \\
 & x. & \jump{MENUSYSTEMSYSLOGD}{Syslogd administration} \\
 & 0. & \jump{MENUSYSTEMADM}{Exit} -- Zur"uck ins Men"u: System administration \\
\end{tabular}



\marklabel{MENUSYSTEMLOGFILE}{\subsubsection{Logfile view}}

Dieses Men"u stellt die verschiedenen Logfiles da, die in der Syslogd config,
angelegt wurden. Die Menge der Eintr"age ist also optional.

\begin{tabular}{llll}
 & x. &  View messages \\
 & x. &  View older messages \\
 & x. &  View log.sudo \\
 & x. &  View older log.sudo \\
 & x. &  View antispam*.log \\
 & x. &  View older antispam*.log \\
 & x. &  View log.eis-install \\
 & x. &  View older log.eis-install \\
 & 0. &  \jump{MENUSYSTEMLOGGING}{Exit} -- Zur"uck ins Men"u: Logging administration \\
\end{tabular}




\marklabel{MENUSYSTEMDEVICES}{\subsection{Men"u: Devices}}

Das Men"u \glqq{}Devices\grqq{} bietet Funktionen zur Verwaltung von
Ger"ate an. Die einzelnen Men"upunkte sind:

\begin{tabular}{llll}
 & 1. &  Format floppy disk \\
 & 2. &  Mount floppy disk \\
 & 3. &  Umount floppy disk \\
 & 4. &  Mount CDROM \\
 & 5. &  Umount CDROM \\
 & 6. &  Mount USB device \\
 & 7. &  Umount USB device \\
 & 8. &  Mount status \\
 & 0. &  \jump{MENUSYSTEMADM}{Exit} -- Zur"uck ins Men"u: System administration \\
\end{tabular}

Die einzelnen Men"upunkte sollten selbsterkl"arend sein. Daher werden sie hier
nicht n"aher beschrieben.






\marklabel{MENUSYSTEMFILESYS}{\subsection{Men"u: Filesystems}}

Dieses Men"u dient zur Anzeige und Administration der Dateisysteme. Die
Eintr"age richten sich nach den installierten Paketen und sind somit
optional.

 \begin{tabular}{llll}
 & 1. & List filesystems \\
 & x. & \jump{MENUSYSTEMMDADM}{mdadm - RAID management} -- RAID verwalten \\
 & x. & LVM2 - Logical Volume management \\
 & 0. & \jump{MENUSYSTEMADM}{Exit} -- Zur"uck ins Men"u: System administration \\
 \end{tabular}







\marklabel{MENUSYSTEMHARDWARE}{\subsection{Men"u: Hardware administration}}

In dieser Sektion kann verschiedene Hardware konfiguriert werden. Die
Eintr"age richten sich nach den installierten Paketen und sind somit
optional.

    \begin{tabular}{llll}
    & 1. & Hardware diagnostics -- Hardware Diagnose \\
    \end{tabular}
\eline
    \begin{tabular}{p{1cm}llll}
    & 1. & List integrated hardware \\
    & 2. & Update hardware database information \\
    & 0. & Exit \\
    \end{tabular}
\eline
    \begin{tabular}{llll}
    & x. & \jump{CAPIADMIN}{CAPI administration} \\
    & x. & \jump{MISDNADMIN}{mISDNuser administration} \\
    & x. & \jump{PCMCIAADMIN}{PCMCIA administration} \\
    & x. & \jump{DAHDIADMIN}{DAHDI administration} \\
    & 0. & \jump{MENUSYSTEMADM}{Exit} -- Zur"uck ins Men"u: System administration \\
    \end{tabular}



\marklabel{MENUSYSTEMSCHEDULER}{\subsection{Men"u: Job scheduler administration}}

In dieser Sektion k"onnen verschiedene Zeitgesteuerte Prozesse konfiguriert
werden. Die Eintr"age richten sich nach den installierten Paketen und sind
somit optional.

    \begin{tabular}{llll}
    & x. & \jump{MENUSYSTEMCRON}{CRON administration} \\
    & x. & \jump{MENUSYSTEMAT}{AT administration} \\
    & 0. & \jump{MENUSYSTEMADM}{Exit} -- Zur"uck ins Men"u: System administration \\
    \end{tabular}





%\subsection{UdateDB administration}
%
%Die Konfiguration von 'UpdateDB' wird ausf"uhrlich an einer anderen
% \jump{MENUSYSTEMUPDATEDB}{Stelle} beschrieben.





\marklabel{MENUPACKAGEADM}{\subsection{Men"u: Package Administration}}

% ausgelagert 2016-07-03 hbfl
%\input{administration_packages_menu}
\input{administration_packages_menu_eisman}




\marklabel{MENUPACKAGEDOC}{\subsection{Men"u: Package Dokumentation}}



\begin{tabular}{llll}
 & 1. &  View changes \\
 & 2. &  View documentation \\
 & 0. &  \jump{MENUMAIN}{Exit} -- Zur"uck ins Hauptmen"u \\
\end{tabular}



\marklabel{MENUSERVICEADM}{\subsection{Men"u: Service Administration}}

Dieses Men"u listet alle Pakete auf, die ihrerseits Men"us zur Verwaltung
der Dienste anbieten, die in diesem Paket enthalten sind. Daher wird an
dieser Stelle nur auf die Dokumentation der jeweiligen Pakete verwiesen.






\marklabel{MENUUSERADM}{\subsection{Men"u: User Administration}}

In diesem Men"u sind die Funktionen untergebracht, die zur Benutzer-
und Gruppenverwaltung n"otig sind. Folgende M"oglichkeiten stehen zu Auswahl:


\begin{tabular}{lrll}
 &  1. &  List users: Vorhandene Benutzer auflisten \\
 &  2. &  Add a new user: Neuen Benutzer anlegen \\
 &  3. &  Remove a user: Einen vorhandenen Benutzer l"oschen \\
 &  4. &  Change password: Kennwort eines Benutzers "andern \\
 &  5. &  Invalidate password: Kennwort eines Benutzers ung"ultig machen \\
 &  6. &  List groups: Vorhandene Benutzergruppen auflisten \\
 &  7. &  Add a new group: Neue Benutzergruppe anlegen \\
 &  8. &  Remove a group: Eine vorhandene Benutzergruppe l"oschen \\
 &  9. &  Change group of user: Gruppenzugeh"origkeit eines Benutzes "andern \\
 & 10. &  Show additional groups of user: Zus"atzliche Gruppen anzeigen, denen
          ein Benutzer angeh"ort \\
 & 11. &  Add user to additional group: Benutzer zu einer zus"atzlichen Gruppe
          hinzuf"ugen \\
 & 12. &  Remove user from additional group: Benutzer als einer zus"atzlichen
          Gruppe entfernen \\
 &  0. &  Exit \\
\end{tabular}


Da die meisten Punkte f"ur sich sprechen werde ich sie nicht n"aher erl"autern.
Nur noch einige Anmerkungen:



\begin{enumerate}
   \item Wenn ein neuer Benutzer mit \glqq{}Add a new user\grqq{} angelegt
         wird, dann wird dieser standardm"a"sig der Gruppe \glqq{}users\grqq{}
         zugeordnet. Die Gruppenzugeh"origkeit kann man anschlie"send mit
         \glqq{}Change group of user\grqq{} "andern.
   \item Bei der Funktion \glqq{}Remove a user\grqq{} kann man auch das
         Home-Verzeichnis  des Benutzers \mbox{(/home/\textsl{\$benutzer})}
         l"oschen. Falls sich noch Dateien darin befinden werden diese
         ebenfalls gel"oscht.
   \item Eine Gruppe kann man nur l"oschen, wenn sich keine Benutzer mehr
         in ihr befinden. Das bedeutet, dass man die zugeh"origen Benutzer
         vorher l"oschen oder einer anderen Gruppe zuordnen muss.
\end{enumerate}







\marklabel{MENUACFH}{\section{ACFH Advanced configuration file handling}}

Viele Pakete enthalten eine umfangreiche Konfigurationsdatei. Durch falsche
Parameter k"onnen gerade bei gro"sen Konfigurationsdateien Fehler einschleichen,
die nicht so einfach zu finden sind. Die erweiterten Funktionen f"ur die
Konfigurationsdateien (engl. ACFH) bietet hier Abhilfe. Folgende Aktionen
stehen zur Auswahl:

\begin{tabular}{llll}
 & 1. & Restore configuration file from default directory  \\
 & 2. & Restore configuration file from backup directory \\
 & 3. & Backup configuration file to backup directory \\
 & 4. & Show difference between current and default configuration \\
 & 5. & Show difference between current and a backup configuration \\
 & 6. & Show difference between default and a backup configuration \\
 & 7. & Show difference between two backup configurations \\
 & 0. & Exit
\end{tabular}

\begin{itemize}
 \item "Uberschreiben der aktuellen Konfiguration mit der Beispielkonfiguration
 \item Wiederherstellung einer vorhergehenden Konfiguration (bis zu 10 alte
       Konfigurationsdateien werden archiviert)
 \item Vergleich der aktuellen Konfigurationsdatei mit einer der vorhergehenden
       Konigurationen
 \item Vergleich zweier alter Konfigurationen
 \end{itemize}






\marklabel{CONFIGEDITOR}{\section{Der Konfigurationseditor}}

Zur Bearbeitung der Konfiguration eines \eisfair-Paketes wird dessen
Konfigurationsdatei in einen Editor geladen und kann dort ge"andert werden.
Dies geschieht immer dann, wenn ein Eintrag aus dem Setup-Men"u ausgew"ahlt
wird, der mit ``Edit Configuration'' o. "A. beschriftet ist.

Bislang kamen hier Texteditoren wie 'joe' oder 'vi' zum Einsatz. Es gibt dazu
eine speziell f"ur \eisfair entwickelte Alternative: ``\eisfair configuration
editor'' (kurz \ece).
Das Programm "ubernimmt die Verwaltung der Konfigurationsdatei, pr"uft Eingaben
und stellt eine kontextsensitive Hilfe zur Verf"ugung.
Voraussetzung daf"ur ist aber eine fehlerfreie Vorlage der Konfigurationsdateien
des jeweiligen Paketes, die vom Paketentwickler zur Verf"ugung gestellt werden.
Ist dies nicht der Fall, so wird beim Aufruf des Programms eine entsprechende
Fehlermeldung ausgegeben und anschlie"send wird, wie bisher, die Konfiguration
in einen Texteditor geladen.

Nat"urlich bleibt noch immer die Wahl, einen anderen Editor an Stelle von \ece
zu verwenden. Die Einstellung dazu ist ganz bequem "uber das Setup-Men"u zu
erreichen, indem man  'setup' aufruft und dann den Unterpunkt
\jump{BASEECE}{``\eisfair configuration editor''} im
\jump{MENUSYSTEMADM}{Men"u ``System Administration''} w"ahlt.


Nach dem Programmstart werden die Optionen des jeweiligen Paketes in einer Liste
untereinander dargestellt und k"onnen mit einer farblich unterlegten Markierung
ausgew"ahlt werden. Um einen markierten Wert zu "andern wird die Enter-Taste
gedr"uckt, worauf sich ein Eingabefenster "offnet.
Lediglich bei Werten, die die Wahl zwischen ''Yes'' und ''No'' geben, wird der
Wert beim Dr"ucken der Enter-Taste ge"andert, ohne dass zuvor eine Eingabe
vorgenommen werden muss. Nach einer erfolgten Eingabe wird das  Eingabefenster
mit der Schaltfl"ache ''Ok'' bzw. durch erneutes Dr"ucken der Enter-Taste
geschlossen.

Ist der Wert im Eingabefeld ung"ultig (z.B. weil er au"serhalb des Wertebereichs
liegt), dann wird beim Schlie"sen des Fensters eine Fehlermeldung angezeigt und
der Anwender erh"alt erneut die M"oglichkeit seine Eingabe zu korrigieren.

Gelegentlich kommt es vor, dass nicht alle verf"ugbaren Optionen einer
Paketkonfiguration angezeigt werden. Dies liegt daran, dass manche
Einstellungsm"oglichkeiten verborgen bleiben, wenn sie durch die Einstellung
einer anderen Option wirkungslos sind.




\marklabel{CONFIGEDITORHELP}{\subsection{Hilfe}}
Durch Dr"ucken der ''F1''-Taste wird im unteren Bereich der Ansicht ein
Hilfetext zum gerade ausgew"ahlten Wert angezeigt. Ein erneutes Dr"ucken der
''F1''-Taste verbirgt den Text wieder.

Mit Hilfe der Tab-Taste kann die Tastatureingabe auf den unteren Bereich der
Ansicht umgeschaltet werden, um z.B. den Hilfetext vertikal rollen zu lassen,
falls er nicht vollst"andig in die Ansicht passt.

Wird an Stelle eines Textes die Meldung ''no help available'' angezeigt, dann
hat der Paketentwickler f"ur diese Option keinen Hilfetext zur Verf"ugung
gestellt. In diesem Fall steht  nat"urlich noch immer die Dokumentation des
Paketes zur Verf"ugung.




\marklabel{CONFIGEDITORSAVE}{\subsection{Speichern}}
Durch Dr"ucken der ''F2'' Taste oder beim Beenden des Programms (auf Nachfrage)
wird die ver"anderte Konfiguration abgespeichert. Dabei werden alle
Einstellungen auf Ihre G"ultigkeit hin gepr"uft und nur wenn diese Pr"ufung
erfolgreich ist, wird die alte Konfigurationsdatei "uberschrieben.




\marklabel{CONFIGEDITORPROBLEMS}{\subsection{M"ogliche Probleme}}
\textbf{A: Die Hintergr"unde der Fenster werden unter PuTTY nicht in der
richtigen Farbe dargestellt:}

L"osung: W"ahlen Sie in den Einstellungen von PuTTY die Option ''Use
background colour to erase screen'' aus.

siehe auch: \jump{PUTTYOPTIONEN}{Terminaleinstellungen f"ur PuTTY}

\textbf{B: Ich erhalten nur seltsame Sonderzeichen anstelle von Linien:}

Ursache: Der Zeichensatz Ihres Terminals wird falsch "ubersetzt oder das
Terminal kann die Zeichen nicht darstellen.

\textbf{C: Ich will grunds"atzlich keine farbige Darstellung im
Konfigurationseditor!}

L"osung: In der Datei unter '/etc/menu.conf' den Wert ''USE\_COLORS'' auf
''No'' stellen.
