1
21.03.06
Sebastian Stolte
5334
Netzwerktechnik – Dokumentation
- SSH-Tunnel -
1. Arbeitsauftrag:
Aufgebaut wird folgendes Netz einem Client und einem mit Paketfilter ausgestattetem Server:
Die Firewall ist so konfiguriert, dass sie ausschließlich den Port 22 öffnet um die Funktion
einer SSH-Verbindung zu gewährleisten. Folgende Verbindungen sollen über einen Tunnel
aufgebaut und erprobt und Gründe für Funktionalität oder Nicht-Funktionalität beschrieben
werden:
- PING
- TRACEROUTE
- FTP aktiv/passiv
- HTTP
- SMB
2. Konfiguration des Paketfilters:
iptables –P INPUT DROP
iptables –P OUTPUT DROP
iptables –A INPUT –i eth0 –p tcp –dport 22 –m state –state
NEW,ESTABLISHED –j ACCEPT
#Grundsätzlich werden alle eingehenden und ausgehenden Verbindungen verboten.
#Lediglich neue oder bereits bestehende Datenverbindungen mit dem Zielport 22 werden
akzeptiert.
3. Die einzelnen Tunnelverbindungen:
PING und TRACEROUTE:
Dieses sind beides Implementierungen von IPv4 und arbeiten Port-unabhängig. Somit ist ein
Tunneln nicht möglich.
2
FTP - aktive mode:
Auch hier ist ein Tunneln nicht möglich, da für eine vollständige Verbindung 2 Ports (20,21)
benötigt werden. Die Steuerverbindung vom Client zum Server läuft über Port 21, die
Datenverbindung vom Server zum Client dann über Port 20. Es ist zwar möglich, 2 Tunnel
aufzubauen, und bei einer Anfrage die Steuerverbindung zu tunneln, jedoch ist es nicht
möglich, beispielsweise auf ein Verzeichnis zuzugreifen. Das liegt daran, dass bei der
Steuerverbindung vom Server Port-Informationen zur Datenverbindung mitgesendet werden,
die der Tunnel jedoch nicht lesen, bzw. übertragen kann.
FTP - passive mode:
Im passiven Modus ist ein Tunnel möglich. Im Gegensatz zum active mode baut der Client
hier sowohl Steuer- als auch Datenverbindung auf. Hierbei müssen folgende Tunnel „gebaut“
werden:
ssh -4 –N –L 1337:10.20.9.12:21 10.20.9.12
ssh -4 –N –L 2000:10.20.9.12:2000 10.20.9.12
ssh -4 –N –2001:10.20.9.12:2001 10.20.9.12
Zunächst wird die Steuerverbindung über den lokalen Tunnel mit dem Port 1337 aufgebaut.
Der Server teilt nun dem Client mit, dass er sich über Port 2000 mit diesem verbinden darf. Ist
der Port bereits belegt, wird autom. der nächst höhere (2001) verwendet.
SMB: (Test mit Linux-Client & Linux-Server)
Für jeden einzelnen Port der Range von 137-139 wird ein Tunnel zur Verfügung gestellt. Für
jeden Tunnel wird natürlich ein separater lokaler Port verwendet:
ssh -4 –N –L 1337:10.20.9.12:137 10.20.9.12
ssh -4 –N –L 1338:10.20.9.12:138 10.20.9.12
ssh -4 –N –L 1339:10.20.9.12:139 10.20.9.12
HTTP:
Eine http-Verbindung ist unproblematisch zu tunneln. Es wird lediglich ein Tunnel benötigt:
ssh -4 –N –L 1337:10.20.9.12:80 10.20.9.12
Der Client baut über den lokalen Tunnel eine Verbindung auf. Wir sehen, dass er den Server
über Port 22 erreicht, sprich über den SSH-Tunnel. Der Server wechselt nun den Port von 22
zu 80. Die Verbindung über Port 80 wurde also über 22 getunnelt.