Add iptables to SRV-DOC
This commit is contained in:
parent
6d167a892f
commit
aae723272f
|
@ -132,11 +132,93 @@ Anschließend werden die vorgenommenen Einstellungen aktiviert.
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
|
|
||||||
\paragraph{iptables}
|
\paragraph{iptables}
|
||||||
\todo{Hier gibt es noch zu tun.}
|
Es wurden Regeln definiert, welcher Datenverkehr für den VPN-Server und VPN-Clients erlaubt sind.
|
||||||
|
Diese werden jetzt über Filterregeln mit \texttt{iptables} beziehungsweise \texttt{ip6tables} umgesetzt.
|
||||||
|
Als Standardpolicy wird \texttt{DROP} gewählt.
|
||||||
|
\begin{lstlisting}
|
||||||
|
iptables -P INPUT DROP
|
||||||
|
iptables -P OUTPUT DROP
|
||||||
|
iptables -P FORWARD DROP
|
||||||
|
ip6tables -P INPUT DROP
|
||||||
|
ip6tables -P OUTPUT DROP
|
||||||
|
ip6tables -P FORWARD DROP
|
||||||
|
\end{lstlisting}
|
||||||
|
|
||||||
|
Datenverkehr über das Loopback-Interface ist immer erlaubt.
|
||||||
|
\begin{lstlisting}
|
||||||
|
iptables -A INPUT -i lo -j ACCEPT
|
||||||
|
iptables -A OUTPUT -i lo -j ACCEPT
|
||||||
|
ip6tables -A INPUT -i lo -j ACCEPT
|
||||||
|
ip6tables -A OUTPUT -i lo -j ACCEPT
|
||||||
|
\end{lstlisting}
|
||||||
|
|
||||||
|
Die Protokolle ICMP und ICMPv6 werden immer durchgelassen.
|
||||||
|
\begin{lstlisting}
|
||||||
|
iptables -A INPUT -p icmp -j ACCEPT
|
||||||
|
ip6tables -A INPUT -p icmp6 -j ACCEPT
|
||||||
|
iptables -A OUTPUT -p icmp -j ACCEPT
|
||||||
|
ip6tables -A OUTPUT -p icmp6 -j ACCEPT
|
||||||
|
iptables -A FORWARD -p icmp -j ACCEPT
|
||||||
|
ip6tables -A FORWARD -p icmp6 -j ACCEPT
|
||||||
|
\end{lstlisting}
|
||||||
|
|
||||||
|
Zugriffe auf den VPN-Server sind für die Dienste SSH und OpenVPN erlaubt.
|
||||||
|
\begin{lstlisting}
|
||||||
|
iptables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
|
||||||
|
ip6tables -A INPUT -p tcp --dport 22 -m state --state NEW,ESTABLISHED -j ACCEPT
|
||||||
|
|
||||||
|
iptables -A INPUT -p udp --dport 1194 -m state --state NEW,ESTABLISHED -j ACCEPT
|
||||||
|
ip6tables -A INPUT -p udp --dport 1194 -m state --state NEW,ESTABLISHED -j ACCEPT
|
||||||
|
\end{lstlisting}
|
||||||
|
|
||||||
|
Antwortpakete für eingehende Pakete auf SSH und OpenVPN-Dienst sind erlaubt.
|
||||||
|
\begin{lstlisting}
|
||||||
|
iptables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
|
||||||
|
ip6tables -A OUTPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
|
||||||
|
\end{lstlisting}
|
||||||
|
|
||||||
|
Vom VPN-Server ausgehende Pakete sind grundsätzlich erlaubt.
|
||||||
|
\begin{lstlisting}
|
||||||
|
iptables -A OUTPUT -m state --state NEW -j ACCEPT
|
||||||
|
ip6tables -A OUTPUT -m state --state NEW -j ACCEPT
|
||||||
|
\end{lstlisting}
|
||||||
|
|
||||||
|
Zum VPN-Server eingehende Pakete sind als Antwort auf ausgehende Pakete erlaubt.
|
||||||
|
\begin{lstlisting}
|
||||||
|
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
|
||||||
|
ip6tables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
|
||||||
|
\end{lstlisting}
|
||||||
|
|
||||||
|
|
||||||
|
Für IPv4-Verkehr aus dem VPN soll NAT durchgeführt werden.
|
||||||
|
\begin{lstlisting}
|
||||||
|
iptables -t nat -A POSTROUTING -s 10.2.0.0/16 -j MASQUERADE
|
||||||
|
\end{lstlisting}
|
||||||
|
|
||||||
|
Datenverkehr aus dem VPN zu Hosts in der DMZ ist verboten und wird verworfen.
|
||||||
|
\begin{lstlisting}
|
||||||
|
iptables -A FORWARDING -s 10.2.0.0/16 -d 141.71.38.0/24 -j DROP
|
||||||
|
ip6tables -A FORWARDING -s 2001:638:614:1750::/64 -d 2001:683:614:1780::/64 -j DROP
|
||||||
|
\end{lstlisting}
|
||||||
|
|
||||||
|
Jeglicher weiterer Datenverkehr aus dem VPN ist erlaubt.
|
||||||
|
\begin{lstlisting}
|
||||||
|
iptables -A FORWARDING -s 10.2.0.0/16 -m state --state NEW,ESTABLISHED -j ACCEPT
|
||||||
|
ip6tables -A FORWARDING -s 2001:638:614:1750::/64 -m state --state NEW,ESTABLISHED -j ACCEPT
|
||||||
|
\end{lstlisting}
|
||||||
|
|
||||||
|
In das VPN eingehender Verkehr ist nur als Antwort auf ausgehende Pakete erlaubt.
|
||||||
|
\begin{lstlisting}
|
||||||
|
iptables -A FORWARDING -d 10.2.0.0/16 -m state --state ESTABLISHED,RELATED -j ACCEPT
|
||||||
|
ip6tables -A FORWARDING -d 2001:638:614:1750::/64 -m state --state ESTABLISHED,RELATED -j ACCEPT
|
||||||
|
\end{lstlisting}
|
||||||
|
|
||||||
|
|
||||||
|
Um die mit \texttt{iptables} erstellten Regeln auch über Neustarts hinweg zu behalten, wird das Paket \texttt{iptables-persistent} installiert.
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
apt-get install iptables-persistent
|
apt-get install iptables-persistent
|
||||||
\end{lstlisting}
|
\end{lstlisting}
|
||||||
Zum Schluss werden die Regeln abgespeichert, damit diese bei einem Neustart durch die Skripte des Pakets \texttt{iptables-persistent} neu geladen werden können.
|
Anschließend können die aktuell aktiven Regeln abgespeichert werden, damit sie bei einem Neustart wieder geladen werden können.
|
||||||
\begin{lstlisting}
|
\begin{lstlisting}
|
||||||
iptables-save > /etc/iptables/rules.v4
|
iptables-save > /etc/iptables/rules.v4
|
||||||
ip6tables-save > /etc/iptables/rules.v6
|
ip6tables-save > /etc/iptables/rules.v6
|
||||||
|
|
Loading…
Reference in New Issue