Gemischt

Anleitungen die unter verschiedenen Betriebssystemen gelten.

Moderne Festplatten arbeiten mittlerweile häufig mit 4K-Sektoren - um die Kompatibilität mit älterer Software sicherzustellen, emulieren sie 512 Byte-Sektoren - melden sich also am System wie eine "alte" Festplatte (das nennt sich dann 512e).

"4K native"-Festplatten dagegen emulieren keine 512 Byte-Sektoren, sondern melden sich direkt mit ihren 4K-Sektoren am System. Das erfordert natürlich, dass das Betriebssystem und die Software damit zurecht kommt.

Um die physikalische Sektorgröße und den verwendeten Modus auszulesen, gibt es unter Windows und Linux einen entsprechenden Befehl.

Windows

  • Eine CMD "Als Administrator ausführen"
  • Eingabe:

fsutil fsinfo ntfsinfo <Laufwerksbuchstabe>

In diesem Beispiel arbeitet die Festplatte also physikalisch mit 4K-Sektoren und emuliert 512 Byte-Sektoren (512e).

Linux

  • Terminal öffnen
  • Zuerst die Festplatte raus suchen:

fdisk -l

  • Mit hdparm kann man jetzt die Infos auslesen:

hdparm -I /dev/sdX

Im Bereich "Configuration:" sieht man die Sektorgröße, und ob eine Emulation durchgeführt wird:

Wenn man sich in einem internen Netzwerk befindet und dort der gesamte TCP/UDP-Verkehr nach außen blockiert ist, hat man normalerweise schlechte Chancen noch irgendwie ins WWW zu kommen. Evtl. hat aber der fleißige Admin vergessen, den Datenverkehr über das ICMP-Protokoll zu sperren - oder er hat schlicht keine Möglichkeit das zu tun. Bei Routern aus dem SOHO-Bereich lässt sich beispielsweise häufig nur der TCP/UDP-Verkehr blockieren.

Wichtiger Hinweis: Bevor ihr diese Methode anwendet, erkundigt euch bitte vorher ob das in dem jeweiligen Netzwerk erlaubt ist. Nicht alle Netzwerk-Administratoren freuen sich über sowas!

Das ICMP-Protokoll hilft uns hier jedenfalls weiter, denn mit Hilfe der Software ptunnel ist es möglich, die beliebten TCP/UDP-Pakete über das ICMP-Protokoll zu tunneln.

Ob der ICMP-Kanal für uns auch wirklich frei ist, lässt sich ziemlich einfach testen. Einfach einen Ping auf eine beliebige IP-Adresse im Internet absetzen - am besten eine, von der man weiß das sie auch zurück pingt.

Was wir wollen

  • Einen ICMP-Tunnel zu unserem Server im Internet aufbauen
  • Über diesen ICMP-Tunnel eine SSH-Verbindung zu unserem Server aufbauen
  • Über diese SSH-Verbindung wiederrum weitere Verbindungen tunneln (z.B. HTTP, IMAP)

Was wir brauchen

  • Einen aus dem Internet erreichbaren Linux-Rechner, auf dem wir ptunnel installieren können
  • Einen Client (Linux oder Windows)

Konfiguration des Servers

Hier ist eigentlich relativ wenig Arbeit nötig. Zuerst müssen wir mal ptunnel installieren:

apt-get install ptunnel

Danach kann das Programm auch schon gestartet werden (-v 4 ist der Verbose-Level)

sudo ptunnel -v 4

Konfiguration des Clients (Linux)

Auch hier muss ptunnel installiert werden:

apt-get install ptunnel

Nun können wir die Verbindung zum Server aufbauen:

sudo ptunnel -p myserver.com -lp 8000 -da 127.0.0.1 -dp 22 -v 5

-p myserver ist unser Server auf dem ptunnel läuft

-da 127.0.0.1 ist die Ziel-Adresse

-lp 8000 ist der lokale Port auf den wir uns später verbinden können (frei wählbar)

-dp 22 ist der SSH Ziel-Port auf dem entfernten Ziel-Rechner

-v 5 ist das Verbose-Level (optional)

Nun bauen wir z.B. mit PuTTY oder dem SSH-Kommando eine Verbindung zu unserem Server im Internet auf:

ICMP-Tunnel

Die Verbindung von 127.0.0.1:8000 wird automatisch auf unseren Server myserver.com:22 umgeleitet.

Nun sollte die SSH-Verbindung stehen, und über diese können wir nun weitere Anwendungen getunnelt werden (z.B. Firefox). Dazu trägt man in PuTTY unter "Connection -> SSH -> Tunnels" einen beliebigen "dynamischen" Port ein und trägt diesen im Firefox als SOCKS-Proxy ein (127.0.0.1 mit dem entsprechenden Port).

Konfiguration des Clients (Windows)

Unter Windows brauchen wir natürlich erstmal wieder ein paar Zusatz-Tools ;-)

Zuerst installieren wir WinPcap und MinGW. Dies sollte allerdings mit einer noch bestehenden Internet-Verbindung gemacht werden, da MinGW einige Dateien nachlädt.

Jetzt öffnen wir eine Eingabeaufforderung als Administrator und bauen unseren SSH-Tunnel auf (gleich wie unter Linux):

ptunnel.exe -p 192.168.20.2 -lp 8000 -da 127.0.0.1 -dp 22 -v 4

Danach öffnen wir PuTTY und öffnen eine SSH-Verbindung zum Zielserver:

ICMP-Tunnel mit PuTTY