\subsection{Netfilter und IPtables}

\subsubsection{Grundkonfiguration}

Beim Systemstart werden die Filterregeln aus der {\tt iptables.rules} (siehe
\emph{aufgabe3.1/iptables.rules}) übernommen. Diese wurde so konfiguriert, dass bestehende Verbindungen, sowie Verbindungen aus dem internen LAN automatisch erlaubt werden. Der Zugriff von außerhalb ist auf den Port 22 beschränkt. Zur Absicherung gegen BruteForce verwenden wird {\tt sshguard}, für das wir einen eigene Chain {\tt sshguard} in der {\tt iptables.rules} eingetragen haben. Alle Zugriffe auf Port 22 werden an diese Chain übergeben. Erfolgen in kurzer Zeit zu viele unauthorisierte Zugriffe, trägt das Programm {\tt sshguard} automatisch temporär eine neue DROP-Regel in die {\tt sshguard}-Chain ein.


\subsubsection{Forwarding und Masquerading}

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 {\tt /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 {\tt 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 haben wir auf 2 pro Minute limitiert. Der Log kann unter {\tt /var/log/iptables.log} gefunden werden.

