%
% ssh.tex
% Last Update: $Id$
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% Kapitel SSH %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

\chapter{SSH - Secure Shell}
\marklabel{MENUSYSTEMSSH}{}
\index{SSH}


\section{Allgemeines}

    \emph{'OpenSSH'} ist eine freie SSH/SecSH-Protokollsuite, die
    Verschl"usselung f"ur Netzwerkdienste bereitstellt, wie etwa
    Remotelogins, also Einloggen auf einem anderen, entfernten Rechner,
    oder auch Datei"ubertragung von oder zu einem entfernten Rechner.


    Noch ein Hinweis: \\
    Hier finden sich eine Vielzahl von Informationen zu den kostenlosen
    Windows-SSH-Klienten

    \link{https://www.chiark.greenend.org.uk/~sgtatham/putty/download.html}{PuTTY}
    (Es wird mindestens die PuTTY Version 0.63 ben"otigt um erfolgreich
    eine Verbindung zum Server aufbauen zu k"onnen),
    \link{https://mobaxterm.mobatek.net}{MobaXterm},
    \link{https://mobassh.mobatek.net/}{MobaSSH},
    \link{https://winscp.net/eng/docs/lang:de}{WinSCP}.

    Administratoren die von der \eisfair Konfiguration abweichende
    Einstellungen ben"otigen oder w"unschen, legen Ihre Konfiguration
    unter \texttt{/etc/ssh/ssh\{d\}\_config.d/*.conf} ab. Diese Variablen
    werden dann Automatisch mit eingelesen.

    \emph{'OpenSSH'} liest jede Variable nur einmal, sobald eine Variable
    belegt ist, wird sie nicht mehr "uberschrieben. Nach "Anderungen an der
    Konfiguration ist ein Neustart des Dienstes erforderlich.


\section{Das Men"u im Setup Programm}

    Das Men"u im Setup-Programm ist wie folgt aufgebaut:

    \mbox{}

    \begin{tabular}{llll}
    & 1. & System administration \\
    \end{tabular}
\eline
    \begin{tabular}{p{1cm}llll}
    & x. & SSH - administration \\
    \end{tabular}
\eline
   \begin{tabular}{p{2cm}ll}
    & 1. & View documentation \\
    & 2. & Edit configuration \\
    & 3. & Advanced configuration file handling \\
    & 4. & Show status \\
    & 5. & Stop service \\
    & 6. & Start service \\
    & 7. & (Re)-Create SSH Server Keys \\
    & 8. & Validate SSHd manual config \\
    & 9. & View log file \\
    \end{tabular}

    \mbox{}



\section{"Anderung der Konfiguration}


    Die Konfiguration kann "uber den Men"upunkt \glqq{}Edit Configuration\grqq{}
    ge"andert werden.

    Nachdem der Editor beendet wurde wird die Konfiguration mit dem
    eischk-Programm automatisch auf syntaktische und teilweise auch auf
    semantische Fehler gepr"uft. Werden Fehler festgestellt, so werden
    diese gemeldet und der Benutzer zur Korrektur aufgefordert. Wird eine
    solche Korrektur nicht durchgef"uhrt, so kann es zu unvorhersehbaren
    Fehlfunktionen bei den Diensten kommen.

    Es wird zus"atzlich gefragt, ob die Konfiguration angewendet (aktiviert)
    werden soll. Wird dieses verneint, so unterbleibt die Aktivierung. Wird die
    Aktivierung best"atigt, werden "uber ein Skript die durchgef"uhrten
    "Anderungen wirksam gemacht.\\

    \achtung{Es muss unbedingt darauf geachtet werden, dass eine fehlerfreie
             Konfiguration gespeichert wird, da es sonst beim n"achsten
             Neustart des Servers zu unvorhersehbaren Fehlern kommen kann.}

    Wird die Aktivierung best"atigt, werden "uber ein Skript die
    durchgef"uhrten "Anderungen wirksam gemacht.

\section{Die Konfigurationsdatei}

    Die Konfigurationsdatei \texttt{/etc/config.d/ssh} enth"alt
    die Parameter, die die einzelnen Dienste parametrisieren bzw festlegen,
    ob ein Dienst "uberhaupt zur Verf"ugung gestellt wird oder nicht.

\section{Die Parameter}


\subsection{SSH - Secure Shell (general settings)}


\begin{description}


\config{START\_SSH}
{START\_SSH}
{STARTSSH}
{
    Soll der SSH-Server gestartet werden oder nicht?

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{START\_SSH='no'}
}


\config{SSH\_DAEMON\_START\_METHOD}
{SSH\_DAEMON\_START\_METHOD}
{SSHDAEMONSTARTMETHOD}
{
    Legt fest, wie der sshd-Server gestartet werden soll.
    Bei Angabe von 'st' wird der sshd-Server als sogenannter
    'Standalone Server' gestartet.
    Bei Angabe von 'xi' erfolgt der Start "uber socket activation,
    er wird dann nur bei einer Anforderung gestartet

    \achtung{Bei der Aktivierung von 'xi' ist nach dem erfolgreichen Login
             unbedingt zu kontrollieren, ob noch Standardprozesse vorhanden
             sind die beendet werden m"ussen.}

    G"ultige Werte: st, xi

    Standardeinstellung: \texttt{SSH\_DAEMON\_START\_METHOD='st'}
}


\config{SSH\_PORT}
{SSH\_PORT}
{SSHPORT}
{
    Definiert den TCP-Port, auf dem der SSH-Server Verbindungen entgegen
    nehmen soll.

    G"ultige Werte: Port Nummer

    Standardeinstellung: \texttt{SSH\_PORT='22'}
}


\end{description}


\subsection{SSH - Secure Shell (protocol settings)}


\begin{description}


\config{SSH\_SERVER\_CIPHERS}
{SSH\_SERVER\_CIPHERS}
{SSHSERVERCIPHERS}
{
    "Uber diesen Parameter wird festgelegt, welche Ciphers f"ur
    SSH-Verbindungen zugelassen sind. Folgende Optionen stehen zur
    Verf"ugung:

    G"ultige Werte: all, default, Cipher-Name

    \begin{tabular}{lll}
    all         & - & Alle in OpenSSH implementierten Ciphers werden zugelassen. \\
    default     & - & Es wird eine reduzierte Standardauswahl von Ciphers
                      zugelassen. \\
    Cipher-Name & - & Ein oder mehrere, individuelle Cipher k"onnen eingegeben
                      werden. \\
                & & Mehrere Werte m"ussen durch ein Komma voneinander getrennt \\
                & & werden. Beginnt der eingegebene Wert mit dem Wort 'default', \\
                & & so wird die Standardauswahl von Ciphers um den oder die \\
                & & gew"unschten Cipher erg"anzt. \\
    \end{tabular}

    Diese Cipher sind vorhanden:

    eis \# ssh -V \\
    OpenSSH\_9.9p2, OpenSSL 3.2.4 11 Feb 2025

    \begin{tabular}{lll}
    eis \# ssh & - & 3des-cbc \\
      & - & aes128-cbc \\
      & - & aes192-cbc \\
      & - & aes256-cbc \\
      & - & \begin{bfseries}aes128-ctr\end{bfseries} (default) \\
      & - & \begin{bfseries}aes192-ctr\end{bfseries} (default) \\
      & - & \begin{bfseries}aes256-ctr\end{bfseries} (default) \\
      & - & \begin{bfseries}aes128-gcm@openssh.com\end{bfseries} (default) \\
      & - & \begin{bfseries}aes256-gcm@openssh.com\end{bfseries} (default) \\
      & - & \begin{bfseries}chacha20-poly1305@openssh.com\end{bfseries} (default) \\
    \end{tabular}

    Standardeinstellung: \texttt{SSH\_SERVER\_CIPHERS='default'}
}


\config{SSH\_SERVER\_KEXS}
{SSH\_SERVER\_KEXS}
{SSHSERVERKEXS}
{
    "Uber diesen Parameter wird festgelegt, welche KEX (Kex Exchange)
    Algorithmen f"ur SSH-Verbindungen zugelassen sind. Folgende Optionen
    stehen zur Verf"ugung:

    G"ultige Werte: all, default, KEX-Name

    \begin{tabular}{lll}
    all      & - & Alle in OpenSSH implementierten KEXs werden zugelassen. \\
    default  & - & Es wird eine reduzierte Standardauswahl von KEXs
                   zugelassen. \\
    KEX-Name & - & Ein oder mehrere, individuelle KEX k"onnen eingegeben werden. \\
             & & Mehrere Werte m"ussen durch ein Komma voneinander getrennt \\
             & & werden. Beginnt der eingegebene Wert mit dem Wort 'default', \\
             & & so wird die Standardauswahl von KEXs um den oder die \\
             & & gew"unschten KEX erg"anzt. \\
    \end{tabular}

    Diese KEXs sind vorhanden:

    eis \# ssh -V \\
    OpenSSH\_9.9p2, OpenSSL 3.2.4 11 Feb 2025

    \begin{tabular}{lll}
    eis \# ssh -Q kex & - & diffie-hellman-group1-sha1 \\
      & - & \begin{bfseries}diffie-hellman-group14-sha1\end{bfseries} (default) \\
      & - & diffie-hellman-group14-sha256 \\
      & - & diffie-hellman-group16-sha512 \\
      & - & diffie-hellman-group18-sha512 \\
      & - & diffie-hellman-group-exchange-sha1 \\
      & - & \begin{bfseries}diffie-hellman-group-exchange-sha256\end{bfseries} (default) \\
      & - & \begin{bfseries}ecdh-sha2-nistp256\end{bfseries} (default) \\
      & - & \begin{bfseries}ecdh-sha2-nistp384\end{bfseries} (default) \\
      & - & \begin{bfseries}ecdh-sha2-nistp521\end{bfseries} (default) \\
      & - & curve25519-sha256 \\
      & - & \begin{bfseries}curve25519-sha256@libssh.org\end{bfseries} (default) \\
      & - & sntrup761x25519-sha512 \\
      & - & sntrup761x25519-sha512@openssh.com \\
      & - & mlkem768x25519-sha256 \\
    \end{tabular}

    Standardeinstellung: \texttt{SSH\_SERVER\_KEKS='default'}
}


\config{SSH\_SERVER\_MACS}
{SSH\_SERVER\_MACS}
{SSHSERVERMACS}
{
    "Uber diesen Parameter wird festgelegt, welche MACs (Message
    Authentication Code) f"ur SSH-Verbindungen zugelassen sind. Folgende
    Optionen stehen zur Verf"ugung:

    G"ultige Werte: all, default, MAC-Name

    \begin{tabular}{lll}
    all      & - & Alle in OpenSSH implementierten MACs werden zugelassen. \\
    default  & - & Es wird eine reduzierte Standardauswahl von MACs
                   zugelassen. \\
    MAC-Name & - & Ein oder mehrere, individuelle MAC k"onnen eingegeben werden. \\
             &  & Mehrere Werte m"ussen durch ein Komma voneinander getrennt \\
             &  & werden. Beginnt der eingegebene Wert mit dem Wort 'default', \\
             &  & so wird die Standardauswahl von MACs um den oder die \\
             &  & gew"unschten MAC erg"anzt. \\
    \end{tabular}

    Diese MACs sind vorhanden:

    eis \# ssh -V \\
    OpenSSH\_9.9p2, OpenSSL 3.2.4 11 Feb 2025

    \begin{tabular}{lll}
    eis \# ssh -Q mac & - & hmac-sha1 \\
      & - & hmac-sha1-96 \\
      & - & \begin{bfseries}hmac-sha2-256\end{bfseries} (default) \\
      & - & \begin{bfseries}hmac-sha2-512\end{bfseries} (default) \\
      & - & hmac-md5 \\
      & - & hmac-md5-96 \\
      & - & \begin{bfseries}umac-64@openssh.com\end{bfseries} (default) \\
      & - & \begin{bfseries}umac-128@openssh.com\end{bfseries} (default) \\
      & - & hmac-sha1-etm@openssh.com \\
      & - & hmac-sha1-96-etm@openssh.com \\
      & - & \begin{bfseries}hmac-sha2-256-etm@openssh.com\end{bfseries} (default) \\
      & - & \begin{bfseries}hmac-sha2-512-etm@openssh.com\end{bfseries} (default) \\
      & - & hmac-md5-etm@openssh.com \\
      & - & hmac-md5-96-etm@openssh.com \\
      & - & \begin{bfseries}umac-64-etm@openssh.com\end{bfseries} (default) \\
      & - & \begin{bfseries}umac-128-etm@openssh.com\end{bfseries} (default) \\
    \end{tabular}

   Standardeinstellung: \texttt{SSH\_SERVER\_MACS='default'}
}


\end{description}


\subsection{SSH - Secure Shell (listen address settings)}


\begin{description}


\config{SSH\_LISTEN\_IPADDR\_N}
{SSH\_LISTEN\_IPADDR\_N}
{SSHLISTENIPADDRN}
{
    "Uber diesen Parameter wird die Anzahl der individuell konfigurierten
    IP-Adressen angegeben, auf welchen der SSH-Server Verbindungen entgegen
    nehmen soll. Wird der Wert dieses Parameters auf '0' gesetzt, so werden
    Verbindungen auf allen lokalen IP-Adressen des Servers entgegen genommen.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{SSH\_LISTEN\_IPADDR\_N='0'}
}


\config{SSH\_LISTEN\_IPADDR\_x\_NAME}
{SSH\_LISTEN\_IPADDR\_x\_NAME}
{SSHLISTENIPADDRxNAME}
{
    An dieser Stelle kann eine Beschreibung angegeben werden.
    Dieser Parameter wird nicht ausgewertet.

    G"ultige Werte: alles

    Standardeinstellung: \texttt{SSH\_LISTEN\_IPADDR\_x\_NAME='{}'}
}


\config{SSH\_LISTEN\_IPADDR\_x\_ACTIVE}
{SSH\_LISTEN\_IPADDR\_x\_ACTIVE}
{SSHLISTENIPADDRxACTIVE}
{
    Wird dieser Parameter auf den Wert 'yes' gesetzt, so wird der
    zugeh"orige Datensatz aktiviert, 'no' deaktiviert ihn.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{SSH\_LISTEN\_IPADDR\_x\_ACTIVE='no'}
}


\config{SSH\_LISTEN\_IPADDR\_x}
{SSH\_LISTEN\_IPADDR\_x}
{SSHLISTENIPADDRx}
{
    "Uber diesen Parameter wird die IP-Adresse festgelegt, "uber welche der
    SSH-Server Verbindungen entgegen nehmen soll.

    Hier wird keine echte IP Adresse angegeben sondern der Index der
    Angabe \texttt{IP\_ETH\_x\_IP\_x\_IPADDR} aus der
    Base Konfiguration in \texttt{/etc/config.d/base}.

    Beispiel: \texttt{SSH\_LISTEN\_IPADDR\_1='2:1'}
    zeigt auf \texttt{IP\_ETH\_2\_IP\_1\_IPADDR} in
    \texttt{/etc/config.d/base}.

    Der Wert vor dem '2:' ist der Index der Netzwerkkkarte \\
    der Wert hinter dem ':1' ist der Index der IPADDR.

    Der Index kann, wenn der Editor \glqq{}\ece\grqq{} eingestellt ist,
    auch aus dem Dialog eingef"ugt werden.

    G"ultige Werte: 1:1, 1:2, 2:1 etc..

    Standardeinstellung: \texttt{SSH\_LISTEN\_IPADDR\_x='1:1'}
}


\end{description}


\subsection{SSH - Secure Shell (allow/deny settings)}

\achtung{Bitte diese Konfigurationsm"oglichkeiten mit Vorsicht einsetzen.
         Alle vier Listen werden beim Login gepr"uft. Durch eine falsche
         Eingabe ist es durchaus m"oglich wichtige Benutzer (z.B. root
         oder eis) vom Login auszuschlie"sen.}


\begin{description}


\config{SSH\_ALLOW\_USER\_N}
{SSH\_ALLOW\_USER\_N}
{SSHALLOWUSERN}
{
    Anzahl der folgenden Angaben \texttt{SSH\_ALLOW\_USER\_x.}

    Ein Login ist erlaubt f"ur alle Benutzer, deren Benutzername mit
    einem der angegebenen Muster "ubereinstimmt.
    Dabei sind die Platzhalter '*' (f"ur eine unbegrenzte Anzahl
    beliebiger Zeichen) und '?' (f"ur ein  beliebiges Zeichen) m"oglich.

    Wird der Wert '0' angegeben, so d"urfen sich alle Anwender "uber SSH
    in den Server einloggen.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{SSH\_ALLOW\_USER\_N='0'}
}


\config{SSH\_ALLOW\_USER\_x\_NAME}
{SSH\_ALLOW\_USER\_x\_NAME}
{SSHALLOWUSERxNAME}
{
    An dieser Stelle kann eine Beschreibung hinterlegt werden.
    Dieser Parameter wird nicht ausgewertet.

    G"ultige Werte: alles

    Standardeinstellung: \texttt{SSH\_ALLOW\_USER\_x\_NAME='{}'}
}


\config{SSH\_ALLOW\_USER\_x\_ACTIVE}
{SSH\_ALLOW\_USER\_x\_ACTIVE}
{SSHALLOWUSERxACTIVE}
{
    Wird dieser Parameter auf den Wert 'yes' gesetzt, so wird der
    zugeh"orige Datensatz aktiviert, 'no' deaktiviert ihn.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{SSH\_ALLOW\_USER\_x\_ACTIVE='no'}
}


\config{SSH\_ALLOW\_USER\_x}
{SSH\_ALLOW\_USER\_x}
{SSHALLOWUSERx}
{
    Muster f"ur Benutzernamen, die sich via sshd einloggen d"urfen.
    Die Angabe 'r*' bei \texttt{SSH\_ALLOW\_USER\_x} erlaubt
    beispielsweise ein Login f"ur alle Benutzer, deren Benutzername
    mit dem Buchstaben 'r' beginnt.

    G"ultige Werte: Muster oder Name

    Standardeinstellung: \texttt{SSH\_ALLOW\_USER\_x='root'}
}


\config{SSH\_DENY\_USER\_N}
{SSH\_DENY\_USER\_N}
{SSHDENYUSERN}
{
    Anzahl der folgenden Angaben \texttt{SSH\_DENY\_USER\_x.}

    Ein Login ist nicht erlaubt f"ur alle Benutzer, deren Benutzername
    mit einem der angegebenen Muster "ubereinstimmt.
    Dabei sind die Platzhalter '*' (f"ur eine unbegrenzte Anzahl
    beliebiger Zeichen) und '?' (f"ur ein  beliebiges Zeichen) m"oglich.

    Wird der Wert '0' angegeben, so d"urfen sich alle Anwender "uber SSH
    in den Server einloggen.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{SSH\_DENY\_USER\_N='0'}
}


\config{SSH\_DENY\_USER\_x\_NAME}
{SSH\_DENY\_USER\_x\_NAME}
{SSHDENYUSERxNAME}
{
    An dieser Stelle kann eine Beschreibung hinterlegt werden.
    Dieser Parameter wird nicht ausgewertet.

    G"ultige Werte: alles

    Standardeinstellung: \texttt{SSH\_DENY\_USER\_x\_NAME='{}'}
}

\config{SSH\_DENY\_USER\_x\_ACTIVE}
{SSH\_DENY\_USER\_x\_ACTIVE}
{SSHDENYUSERxACTIVE}
{
    Wird dieser Parameter auf den Wert 'yes' gesetzt, so wird der
    zugeh"orige Datensatz aktiviert, 'no' deaktiviert ihn.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{SSH\_DENY\_USER\_x\_ACTIVE='no'}
}


\config{SSH\_DENY\_USER\_x}
{SSH\_DENY\_USER\_x}
{SSHDENYUSERx}
{
    Muster f"ur Benutzernamen, die sich nicht via sshd einloggen d"urfen.
    Die Angabe 'b*' bei \texttt{SSH\_DENY\_USER\_x} verbietet
    beispielsweise ein Login f"ur alle Benutzer, deren Benutzername mit
    b beginnt.

    G"ultige Werte: Muster oder Name

    Standardeinstellung: \texttt{SSH\_DENY\_USER\_x='batch'}
}


\config{SSH\_ALLOW\_GROUP\_N}
{SSH\_ALLOW\_GROUP\_N}
{SSHALLOWGROUPN}
{
    Anzahl der folgenden Angaben \texttt{SSH\_ALLOW\_GROUP\_x.}

    Ein Login ist erlaubt f"ur alle Benutzer, deren prim"are oder zus"atzliche
    Gruppe mit einem der angegebenen Muster "ubereinstimmt.
    Dabei sind die Platzhalter '*' (f"ur eine unbegrenzte Anzahl
    beliebiger Zeichen) und '?' (f"ur ein  beliebiges Zeichen) m"oglich.

    Wird der Wert '0' angegeben, so d"urfen sich alle Anwender "uber SSH
    in den Server einloggen.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{SSH\_ALLOW\_GROUP\_N='0'}
}


\config{SSH\_ALLOW\_GROUP\_x\_NAME}
{SSH\_ALLOW\_GROUP\_x\_NAME}
{SSHALLOWGROUPxNAME}
{
    An dieser Stelle kann eine Beschreibung hinterlegt werden.
    Dieser Parameter wird nicht ausgewertet.

    G"ultige Werte: alles

    Standardeinstellung: \texttt{SSH\_ALLOW\_GROUP\_x\_NAME='{}'}
}


\config{SSH\_ALLOW\_GROUP\_x\_ACTIVE}
{SSH\_ALLOW\_GROUP\_x\_ACTIVE}
{SSHALLOWGROUPxACTIVE}
{
    Wird dieser Parameter auf den Wert 'yes' gesetzt, so wird der
    zugeh"orige Datensatz aktiviert, 'no' deaktiviert ihn.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{SSH\_ALLOW\_GROUP\_x\_ACTIVE='no'}
}


\config{SSH\_ALLOW\_GROUP\_x}
{SSH\_ALLOW\_GROUP\_x}
{SSHALLOGROUPx}
{
    Muster f"ur Gruppennamen, deren Benutzer sich via sshd einloggen d"urfen.
    Die Angabe 's*' bei \texttt{SSH\_ALLOW\_GROUP\_x} erlaubt
    beispielsweise ein Login f"ur alle Benutzer, deren prim"are oder zus"atzliche
    Gruppe mit s beginnt.

    G"ultige Werte: Muster oder Name

    Standardeinstellung: \texttt{SSH\_ALLOW\_GROUP\_x='root'}
}


\config{SSH\_DENY\_GROUP\_N}
{SSH\_DENY\_GROUP\_N}
{SSHDENYGROUPN}
{
    Anzahl der folgenden Angaben \texttt{SSH\_DENY\_GROUP\_x.}
    Ein Login ist nicht erlaubt f"ur alle Benutzer, deren prim"are oder
    zus"atzliche Gruppe mit einem der angegebenen Muster "ubereinstimmt.
    Dabei sind die Platzhalter '*' (f"ur eine unbegrenzte Anzahl
    beliebiger Zeichen) und '?' (f"ur ein  beliebiges Zeichen) m"oglich.

    Wird der Wert '0' angegeben, so d"urfen sich alle Anwender "uber SSH
    in den Server einloggen.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{SSH\_DENY\_GROUP\_N='0'}
}


\config{SSH\_DENY\_GROUP\_x\_NAME}
{SSH\_DENY\_GROUP\_x\_NAME}
{SSHDENYGROUPxNAME}
{
    An dieser Stelle kann eine Beschreibung hinterlegt werden.
    Dieser Parameter wird nicht ausgewertet.

    G"ultige Werte: alles

    Standardeinstellung: \texttt{SSH\_DENY\_GROUP\_x\_NAME='{}'}
}


\config{SSH\_DENY\_GROUP\_x\_ACTIVE}
{SSH\_DENY\_GROUP\_x\_ACTIVE}
{SSHDENYGROUPxACTIVE}
{
    Wird dieser Parameter auf den Wert 'yes' gesetzt, so wird der
    zugeh"orige Datensatz aktiviert, 'no' deaktiviert ihn.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{SSH\_DENY\_GROUP\_x\_ACTIVE='batch'}
}


\config{SSH\_DENY\_GROUP\_x}
{SSH\_DENY\_GROUP\_x}
{SSHDENYGROUPx}
{
    Muster f"ur Gruppennamen, deren Benutzer sich nicht via sshd einloggen d"urfen.
    Die Angabe 'v*' bei \texttt{SSH\_DENY\_GROUP\_x} verbietet
    beispielsweise ein Login f"ur alle Benutzer, deren prim"are oder zus"atzliche
    Gruppe mit v beginnt.

    G"ultige Werte: Muster oder Name

    Standardeinstellung: \texttt{SSH\_DENY\_GROUP\_x='{}'}
}


\config{SSH\_PERMITROOTLOGIN}
{SSH\_PERMITROOTLOGIN}
{SSHPERMITROOTLOGIN}
{
    "Uber diese Angabe kann die M"oglichkeit des Logins f"ur den Benutzer root
    feiner gesteuert werden. Es sind folgende Angaben m"oglich:

    'yes' der Benutzer root darf sich via ssh anmelden.

    'no' der Benutzer root darf sich nicht via ssh anmelden.

    'without-password' die Identifizierung "uber ein Passwort ist nicht
    erlaubt.
    Diese Option erm"oglicht allerdings trotzdem eine Anmeldung mit Passwort,
    wenn z.B. eine PAM-Authentifizierung eingeschaltet ist.

    'forced-commands-only' der Benutzer root darf sich nur dann "uber Key
    Authentifizierung anmelden, wenn ein Kommando direkt "uber den
    ssh Befehl angegeben wurde.

    G"ultige Werte: yes, no, without-password, forced-commands-only

    Standardeinstellung: \texttt{SSH\_PERMITROOTLOGIN='yes'}
}


\end{description}


\subsection{SSH - Secure Shell (public key settings for user root)}


Die f"ur die Public Key Authentication des Benutzer root ben"otigte Datei
/root/.ssh/authorized\_keys wird aus den Informationen der
Konfiguration generiert. Dazu m"ussen die "offentlichen Teile der
mittels ssh-keygen generierten Schl"usselpaare (identity.pub) in der
Konfiguration angegeben werden. Das kann auf zwei Arten geschehen:

\begin{itemize}
\item Direkt in der Konfiguration\\
    Der Inhalt von identity.pub wird direkt in der\\
    Konfigurationsvariable angegeben (nicht empfohlen)
\item Referenz auf Datei\\
    Der Schl"ussel bleibt in einer Datei, in der\\
    Konfiguration wird eine Referenz auf die Datei in Form eines\\
    absoluten Pfadnamens (beginnend mit '/') angegeben.
\end{itemize}

Bei "Ubernahme einer Konfigurations"anderung extrahiert das
Konfigurationsskript die Schl"ussel aus der Konfiguration bzw. den
dort referenzierten Dateien und erstellt die Datei authorized\_keys
neu.

\achtung{Hat der Parameter \texttt{SSH\_PUBLIC\_KEY\_N} den
         Wert '0', so wird die Datei
         \texttt{/root/.ssh/authorized\_keys} gel"oscht.
         Wurde diese Datei unter Umgehung der \eisfair
         Konfigurationsprozesse ge"andert, so gehen diese
         "Anderungen verloren.}

\begin{description}


\config{SSH\_PUBLIC\_KEY\_N}
{SSH\_PUBLIC\_KEY\_N}
{SSHPUBLICKEYN}
{
    Anzahl der folgenden Angaben \texttt{SSH\_PUBLIC\_KEY\_x}

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{SSH\_PUBLIC\_KEY\_N='0'}
}


\config{SSH\_PUBLIC\_KEY\_x\_NAME}
{SSH\_PUBLIC\_KEY\_x\_NAME}
{SSHPUBLICKEYxNAME}
{
    An dieser Stelle kann eine Beschreibung hinterlegt werden.
    Dieser Parameter wird nicht ausgewertet.

    G"ultige Werte: alles

    Standardeinstellung: \texttt{SSH\_PUBLIC\_KEY\_x\_NAME='{}'}
}


\config{SSH\_PUBLIC\_KEY\_x\_ACTIVE}
{SSH\_PUBLIC\_KEY\_x\_ACTIVE}
{SSHPUBLICKEYxACTIVE}
{
    Public key aktivieren 'yes' oder 'no'

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{SSH\_PUBLIC\_KEY\_x\_ACTIVE='no'}
}


\config{SSH\_PUBLIC\_KEY\_x}
{SSH\_PUBLIC\_KEY\_x}
{SSHPUBLICKEYx}
{
    Public Key (identity.pub), entweder direkt oder als absoluter Dateiname

    G"ultige Werte: Pfad oder Wert

    Standardeinstellung: \texttt{SSH\_PUBLIC\_KEY\_x='{}'}
}


\end{description}


\subsection{SSH - Secure Shell (additional settings)}


\begin{description}


\config{SSH\_MAX\_STARTUPS}
{SSH\_MAX\_STARTUPS}
{SSHMAXSTARTUPS}
{
    Dieser Parameter gibt die maximale Anzahl gleichzeitig zul"assiger
    noch nicht authentifizierter Verbindungen. Dies ist nicht die
    maximale Anzahl gleichzeitiger Verbindungen, sondern
    betrifft nur die Anzahl der Verbindungen, f"ur die noch
    keine Authentifizierung (z.B. g"ultiges Passwort) durchgef"uhrt wurde.

    G"ultige Werte:

    Standardeinstellung: \texttt{SSH\_MAX\_STARTUPS='10'}
}


\config{SSH\_COMPRESSION}
{SSH\_COMPRESSION}
{SSHCOMPRESSION}
{
    Erlaube Datenkompression.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{SSH\_COMPRESSION='yes'}
}


\config{SSH\_STRICTMODES}
{SSH\_STRICTMODES}
{SSHSTRICTMODES}
{
    Legt fest, ob der sshd die Zugriffsrechte und den Besitzer
    des Home-Verzeichnisses beim Login pr"ufen soll

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{SSH\_STRICTMODES='yes'}
}


\config{SSH\_PASSWDAUTH}
{SSH\_PASSWDAUTH}
{SSHPASSWDAUTH}
{
    Erlaube Passwort-Authentifizierung 'yes' oder nicht 'no'.
    Ist die Passwort-Authentifizierung ausgeschaltet 'no',
    so muss zwingend Key-Authentifizierung genutzt werden.

    \achtung{Bitte zun"achst "uberpr"ufen, ab die Key-Authentifizierung
    auch funktioniert, erst dann \texttt{SSH\_PASSWDAUTH} auf
    'no' setzen.}

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{SSH\_PASSWDAUTH='yes'}
}


\config{SSH\_CH\_RESPONSEAUTH}
{SSH\_CH\_RESPONSEAUTH}
{SSHCHRESPONSEAUTH}
{
    Erlaube sogenannte Response Authentication, ja oder nein.
    Diese Variable wird sp"ater, im Zusammenhang mit PAM
    Authentifizierung ben"otigt.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{SSH\_CH\_RESPONSEAUTH='yes'}
}


\config{SSH\_CLIENTALIVEINTERVAL}
{SSH\_CLIENTALIVEINTERVAL}
{SSHCLIENTALIVEINTERVAL}
{
    Timeout-Intervall in Sekunden f"ur sogenannte Client Alive Messages.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{SSH\_CLIENTALIVEINTERVAL='0'}
}


\config{SSH\_CLIENTALIVECOUNTMAX}
{SSH\_CLIENTALIVECOUNTMAX}
{SSHCLIENTALIVECOUNTMAX}
{
    Anzahl der Client Alive Messages bis die Verbindung unterbrochen wird.

    G"ultige Werte: Zahl

    Standardeinstellung: \texttt{SSH\_CLIENTALIVECOUNTMAX='3'}
}


\end{description}


\subsection{SSH - Secure Shell (subsystem settings)}


\begin{description}


\config{SSH\_ENABLE\_SFTP}
{SSH\_ENABLE\_SFTP}
{SSHENABLESFTP}
{
    Legt fest, ob die Benutzung des sftp-Dienstes erlaubt wird.

    G"ultige Werte: yes, no

    Standardeinstellung: \texttt{SSH\_ENABLE\_SFTP='yes'}
}


\end{description}


\subsection{SSH - Secure Shell (log level settings)}


\begin{description}


\config{SSH\_LOGLEVEL}
{SSH\_LOGLEVEL}
{SSHLOGLEVEL}
{
    Die Stufe der Ausf"uhrlichkeit, mit der der sshd Meldungen in die Datei
    \texttt{/var/log/messages} schreibt.

    Bitte beachten: Wird hier eine DEBUG-Stufe eingestellt, so werden
    ggf. Informationen mitgeschrieben, die in den Privatbereich eines
    Benutzers fallen k"onnen. Eine solche Ausf"uhrlichkeit sollte nur
    wenn unbedingt notwendig eingeschaltet werden.

    Die Menge der Informationen, die mitgeschrieben werden, steigt
    ggf. in gewaltige Gr"o"senordnungen.

    G"ultige Werte: QUIET,FATAL,ERROR,INFO,VERBOSE,DEBUG,DEBUG1,DEBUG2,DEBUG3

    Standardeinstellung: \texttt{SSH\_LOGLEVEL='INFO'}
}


%\config{SSH\_USE\_BTMP\_LOGFILE}
%{SSH\_USE\_BTMP\_LOGFILE}
%{SSHUSEBTMPLOGFILE}
%{
%    In der Logdatei /var/log/btmp werden fehlgeschlagene Loginversuche
%    (bad login attempt) protokolliert. Der Inhalt kann mittels des
%    Kommandos lastb angezeigt werden. Au"serdem wird einem Benutzer,
%    bei dem ein fehlgeschlagener Loginversuch stattgefunden hat,
%    dies beim n"achsten erfolgreichen Login mit einer Zeile wie
%
%    Last failed login: Thu Feb 26 15:07:53 CET 2015 from fusi2000.ap.de on sh:notty \\
%    There was 1 failed login attempt since the last successful login. \\
%
%    angezeigt. Existiert die Datei /var/log/btmp nicht, so k"onnen
%    fehlgeschlagene Loginversuche in der oben genannten Form nicht
%    angezeigt werden.
%
%    Bei \texttt{SSH\_USE\_BTMP\_LOGFILE='yes'} wird die Datei
%    /var/log/btmp, falls nicht bereits vorhanden, mit den korrekten
%    Zugriffsrechten angelegt.
%
%    \achtung{ Bei sehr vielen fehlgeschlagenen Loginversuchen kann die
%              Datei /var/log/btmp sehr schnell sehr gro"s werden. Das
%              logrotate f"ur /var/log/btmp wird gemeinsam mit /var/log/wtmp
%              "uber die Konfiguration in /etc/logrotate.d/wtmp gesteuert.}
%
%    Bei \texttt{SSH\_USE\_BTMP\_LOGFILE='no'} wird die Datei /var/log/btmp gel"oscht.
%
%    Um unn"otige Fehlermeldungen im Systemlog zu vermeiden wird die
%    Datei /etc/pam.d/sshd entsprechend angepasst.
%
%    G"ultige Werte: yes, no
%
%    Standardeinstellung: \texttt{SSH\_USE\_BTMP\_LOGFILEL='no'}
%}

\end{description}
