\subsection{Netfilter und IPtables} \subsubsection{Grundkonfiguration} Beim Systemstart wird der Dienst \emph{iptables.service} gestartet und die Filterregeln aus der Datei \emph{/etc/iptables/iptables.rules} (siehe \emph{aufgabe3.1/iptables.rules}) übernommen. Diese wurde so konfiguriert, dass bestehende Verbindungen sowie Verbindungen im internen LAN automatisch erlaubt werden. Der Zugriff von außerhalb ist auf den Port 22 beschränkt. Zusätzlich ist \emph{Icmp} erlaubt. Zur Absicherung gegen Brute-Force-Angriffe wird der Dienst \emph{SSH-Guard} verwendet. Für SSH-Guard haben wir eine eigene Chain mit dem Namen \emph{sshguard} in der \emph{iptables.rules} eingetragen. Alle Zugriffe auf Port 22 werden durch diese Chain gefiltert. Erfolgen in kurzer Zeit zu viele unautorisierte Zugriffe, trägt das Programm \emph{SSH-Guard} automatisch temporär eine neue DROP-Regel in die \emph{sshguard}-Chain ein. Verbindungen nach außen werden ungefiltert durchgelassen, weil es nicht effektiv ist, einzelne Ports zu sperren. Ein in das System bereits eingedrungener Angreifer könnte einfach Pakete auf anderen offenen Ports versenden. \subsubsection{Forwarding und Masquerading} Der Zugriff auf das Internet wird durch folgende Regel in der NAT-Tabelle: \begin{lstlisting} -A POSTROUTING -o eth0 -j MASQUERADE \end{lstlisting} für die Compute-Nodes zugängig gemacht. Dazu musste noch die Datei \emph{/etc/sysctl.d} mit der Zeile: \begin{lstlisting} net.ipv4.ip_forward = 1 \end{lstlisting} erstellt werden. \subsubsection{Diagnose und Logging} Alle abgeblockten Verbindungen landen in der \emph{logging}-Chain, wo sie durch: \begin{lstlisting} -A logging -m limit --limit 2/min -j LOG --log-prefix "IPTables-Dropped: " --log-level 4 \end{lstlisting} geloggt werden. Die Anzahl der Meldungen wurde auf 2 Meldungen pro Minute limitiert. Der Log wird in der Datei \emph{/var/log/iptables.log} gespeichert.