37 lines
1.8 KiB
TeX
37 lines
1.8 KiB
TeX
\subsection{Netfilter und IPtables}
|
|
|
|
\subsubsection{Grundkonfiguration}
|
|
|
|
\begin{sloppypar}
|
|
Beim Systemstart wird der Dienst {\tt iptables.service} gestartet und die Filterregeln aus der {\tt /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 {\tt icmp} erlaubt. 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 unautorisierte Zugriffe, trägt das Programm {\tt sshguard} automatisch temporär eine neue DROP-Regel in die {\tt sshguard}-Chain ein. Verbindungen nach außen werden alle durchgelassen, weil es nicht effektiv ist, einzelne Ports zu sperren, da ein Angreifer einfach auf anderen Ports Pakete versenden könnte.
|
|
\end{sloppypar}
|
|
|
|
|
|
\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.
|
|
|