\subsection{SSH-Server} \label{sub:ssh_server} Wir haben uns für \emph{OpenSSH} als SSH-Server entschieden. Diesen haben wir mit folgenden Shell-Befehl installiert: \shellcmd{pacman -S openssh} Desweiteren wurden in \emph{/etc/ssh/sshd\_config} (siehe \emph{aufgabe2.3/sshd\_config}) folgende Zeilen verändert, um den ''root-Account'' zu deaktivieren und den passwortlosen Zugriff zu aktivieren: \begin{lstlisting} PermitRootLogin no PasswordAuthentication no ChallengeResponseAuthentication no \end{lstlisting} \subsubsection{iptables} Um den Zugriff auf das universitätsinterne Netz zu beschränken wurde ein Filter-Chain \emph{uni} zur \emph{iptables.rules} unter \emph{/etc/iptables} (siehe \emph{aufgabe2.3/iptables.rules}) hinzugefügt, der nur IP-Adressen aus den Bereichen 141.30.0.0/16 und 141.76.0.0/16 akzeptiert und die Zugriffe auf den SSH-Port 22 beschränkt. \subsubsection{Absicherung für externen Zugriff} Um den Zugriff aus einem externen Netz abzusichern, gibt es verschiedene Möglichkeiten \begin{enumerate} \item den externen SSH-Port auf einen anderen Port als 22 legen, so dass dieser nicht zu leicht erraten werden kann \item per \emph{Fail2ban} IPs, die z.B. per Bruteforce zu häufig versuchen sich einzuloggen, aussperren \item den externen SSH-Port erst per Port-Knocking freischalten, bei dem der Client z.B. mit einem Script erst an mehrere Ports »klopfen« muss, bevor er sich verbinden kann \item den Login auf bestimmte Benutzer begrenzen \end{enumerate} \subsubsection{Automatisierung für neue Nutzer} Das automatisierte Hinzufügen neuer Nutzer haben wir über ein Script \texttt{newuser} (siehe \emph{aufgabe2.3/newuser}) gelöst. Dieses Script legt einen neuen Benutzer an, erstellt dessen Home-Verzeichnis, generiert ein neues Public-Private-Key-Paar für SSH und trägt den eigenen Public-Key in die \emph{authorized\_keys} ein und ermöglich den Zugriff auf das git-Repository.