PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : TCP/IP-Verbindung eines VMware-Guests automatisch über Tor



meckl
30.01.2008, 08:29
Alle TCP/IP-Verbindung eines VMware-Guests automatisch über Tor leiten


Inhaltsverzeichnis
Einleitung und das Prinzip
Schritt 1: Die Vorbereitung
Schritt 2: Die Grund-Installation
Schritt 3: Die Installation und Konfiguration der Software
Schritt 4: Letzte Anpassungen
Schritt 5: Wie man die VM und Tor bedient
Alternativen
Sonstiges

::


► Einleitung und das Prinzip
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

Einleitung
Ich habe jetzt Tor. Bin ich jetzt anonym?
Kann Java meine IP ausspionieren?
Inwiefern stellen Cookies eine Gefahr da?
Wie verhinder ich, das Fremdapplikationen und PlugIns sich ohne Proxy verbindet und mein Systemprofil ausliest?
Hilfe, mein Chat geht nur wenn ich Java eingeschaltet habe, was muss ich tun?

Das sind häufig gestellte Fragen.
DNS-Leaks, Applikationen die nicht auf Proxy-Einstellungen hören wollen, Chats und Dienste, die nur mit Java und Flash funktionieren und wenn eingeschaltet, ohne Proxy Verbindungen nach außen herstellen - all das sind Sachen, die nicht nur ärgerlich sind, sondern die Anonymität ernsthaft gefährden können.

In diesem Tutorial wird beschrieben, wie man aus einer beliebigen isolierten virtuellen Maschine JEDE ausgehende TCP/IP-Verbindung über Tor umleitet.
Es ist egal, ob Flash, Java oder eine eigenständige Anwendung versucht, eine Direktverbindung ins Internet aufzubauen: alles wird transparent umgeleitet - und niemand innerhalb eines isolierten Guests kann identifizierende Merkmale ausspähen, sei es die IP-Adresse, MAC, Rechnernamen und gar das Hardware-Profil.
So kann man unbesorgt in Chats jeder Art (ICQ, Flash/Java-Chats ...), Emailen, in Foren schreiben, Bloggen, Surfen (auch mit eingeschaltetem Java(Script)/Flash etc.) und fremde Applikation die eine Internetverbindung benötigen ausprobieren.
Wenn man zusätzlich die virtuelle Maschine des Guest auf ein TrueCrypt (http://www.truecrypt.org)-Volumen legt, hinterlässt man auch lokal keine unverschlüsselten Spuren mehr.

Auf welcher Basis das Tutorial aufgebaut ist
Das Tutorial geht davon aus, das Windows XP als Host verwendet wird und der Rechner in einem LAN und hinter einem Router sitzt.
Als Virtualisierer wird VMware (http://vmware.com/) Workstation v6 verwendet, ich hab jedoch IPcop+Transocks auch auf VMware v3.0 zum Laufen gebracht, so das dieses Tutorial ab VMware v3 gehen sollte.

Das Tutorial geht von folgender Konfiguration aus:
Router: 192.168.0.1/255.255.255.0
Host-IP im LAN: 192.168.0.8/255.255.255.0, Gateway 192.168.0.1
IP-Green von IPcop: 192.168.0.4/255.255.255.0 (Bridged), Gateway 192.168.0.1
IP-Orange von IPcop: 192.168.4.1/255.255.255.0 (VMnet2)
Guest-IP eines beliebigen zu anonymisierenden Rechners: 192.168.4.x/255.255.255.0 (VMnet2)
Tor läuft auf IP:Port = 0.0.0.0:4990, Controller IP:Port = 0.0.0.0:4991

Grafik:
http://img340.imageshack.us/img340/2939/descgfxnp0.png

Die Werte müssen vom Benutzer natürlich an seinen Gegebenheiten entsprechend angepasst werden!
BEISPIEL: Wenn jemand seine Host-IP auf 192.168.9.9 gestellt hat (und nicht 192.168.0.8), so muss man immer "192.168.9.9" eintippen, wenn im Tutorial von "192.168.0.8" die Rede ist.

Das Benutzen des Tutorials geschieht natürlich auf eigener Gefahr.


► Schritt 1: Die Vorbereitung
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

Benötigt wird (für Windows):
- WinSCP (http://winscp.net/eng/docs/lang:de%23winscp_herunterladen_und_installieren)
- Putty (http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html)
- Natürlich auch Tor (http://www.torproject.org/download.html.de)
Linux-User werden sicher selber wissen, wie der SSH-Zugriff funktioniert und geeignete Software drauf haben.

Benötigt wird (für die VM):
- ipcop 1.4.1 gcc-Version (http://rapidshare.com/files/85252966/ipcop-1.4.1-gcc.iso) ( Filename: ipcop-1.4.1-gcc.iso )
- transocks (http://transocks.cvs.sourceforge.net/transocks/transocks/) ( Ordnername: Transocks )
- dante 1.1.14 (ftp://ftp.inet.no/pub/socks/old/dante-1.1.14.tar.gz) ( Filename: dante-1.1.14.tar.gz )
- tran-proxy-tor 0.1.0 (http://p56soo2ibjkx23xo.onion/trans-proxy-tor-0.1.0.tar.gz) ( Filename: trans-proxy-tor-0.1.0.tar.gz )
- 4guest (http://rapidshare.com/files/85240520/4guest.rar.html) ( Passwort: "4Tutorial2008!", enthält die Skripte )
Runterladen und in ein Ordner sichern (Tipp: Im "4guest"-Archiv ist vorsichtshalber Transocks, Dante und Tran-proxy-tor nochmals enthalten)

Erstelle eine virtuelle Machine mit folgender Konfiguration:
- Memory: 64 MB
- Hard Disk: IDE 1.0 GB
- CD-ROM: Iso "ipcop-1.4.1-gcc.iso"
- Floppy: Aus
- Ethernet: Bridged (wird nachher das GREEN-Interface)
- Ethernet 2: VMnet 2 (wird nachher das ORANGE-Interface)
- Ethernet 3: VMnet 7 (wird nachher das RED-Interface)


► Schritt 2: Die Grund-Installation
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

Virtuelle Maschine einschalten und wenn IPcop fragen stellt, beantwortet man die Dialoge in der Reihenfolge mit folgenden Werten:
- Sprache: "Deutsch" natürlich
- Diskette mit Systemeinstellungen (Wiederherstellen/Überspringen): Überspringen
- Netzwerkkarte GREEN: Automatische Erkennung (Green): IP 192.168.0.4, Maske: 255.255.255.0
- Dialog "Tastatur": de ("D"-Taste, Enter)
- Dialog "Zeitzone": CET
- Dialog "Hostname": myipcoprouter
- Dialog "Domain": localdomain
- Dialog "ISDN": "ISDN deaktivieren"
- Netzwerkkonfiguration: "Typ der Netzwerkkonfiguration" -> Ok
- Typ der Netzwerkkonfiguration: "GREEN + ORANGE + RED" -> Ok
- Netzwerkkonfiguration: "Treiber- und Karten-Zuordnung" -> 2x Ok -> "ORANGE" -> Ok -> "RED" -> Ok
- Netzwerkkonfiguration: "Adress-Einstellung" -> Ok -> "ORANGE" -> Ok -> IP 192.168.4.1, Maske: 255.255.255.0 -> Ok
- Dialog Adress-Einstellung -> "RED" -> Ok -> "PPOE" -> Ok -> Fertig
- Netzwerkkonfiguration: "DNS- und Gateway-Einstellungen" -> Ok -> DNS1=192.168.0.1, DNS2=127.0.0.1, Gateway=192.168.0.1 -> Ok
- Netzwerkkonfiguration: "Fertig"
- DHCP-Konfiguration: (Nicht aktiviert) -> Ok
- Passwort für User "Root" (Shell): changeme
- Passwort für User "admin" (GUI): changeme
- Ok
(Guest-Neustart)

(Installiere und )Konfiguriere WinSCP:
- Host: 192.168.0.4, Port: 222, User name: root, Password: changeme, Private key file: (nichts)
- Protocol: SFTP (allow SCP fallback)
- Save, einprägsamen Namen angeben und dann Ok.

(Installiere und )Konfiguriere Putty:
- Host Name: 192.168.0.4, Port: 222, Protocol: SSH
- Trage bei "Saved Sessions" ein einprägsamen Namen ein, anschließend "Save"

(Installiere und )Konfiguriere Tor (torrc):
- Setze "SocksListenAddress" auf "0.0.0.0:4990" und kommentier konkurrierende Einträge aus
- Neuer Eintrag "ControlListenAddress 0.0.0.0"
- Neuer Eintrag "ControlPort 4991"
Statt 0.0.0.0 darf man natürlich auch seine LAN-IP nehmen, wichtig ist das der Dienst vom IPcop-Router aus ansprechbar ist.


► Schritt 3: Die Installation und Konfiguration der Software
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

Kopiere nach /root/ (WinSCP eignet sich dafür) (Transfermode="Binary"!):
- dante-1.1.14.tar.gz
- trans-proxy-tor-0.1.0.tar.gz
- Transocks
- scripts/start (dann über F9 Properties die Permission auf 0755 setzen und ggf. IPs/Portnummern anpassen)

Kopiere:
"./scripts/rc.firewall.local" nach "/etc/rc.d/rc.firewall.local" und setze Permission (über F9 Properties) auf "0755", ggf. IPs/Portnummern anpassen

Entpacken der Dateien
Öffne Putty, einloggen und folgende Befehle absetzen:


tar -xzf dante-1.1.14.tar.gz
tar -xzf trans-proxy-tor-0.1.0.tar.gz

Damit haben wir die Dateien entpackt.

Dante installieren und Bibliothekenpfade anpassen
Um Dante zu Installieren setzt man folgende Befehle ab:


cd dante*
./configure
make
make install
cd ..

Dante sollte nach diesem Schritt installiert sein.

Damit Dante gefunden wird, müssen die Pfade noch angepasst werden. Dazu wechsel mit WinSCP in den Pfad /etc und drücke Shift+F4.
Man wird nach einem Dateinamen der neuen Datei gefragt und benennt sie ld.so.conf.
In der neuen Textdatei schreibt man folgenden Inhalt rein:


/usr/local
/usr/local/lib

Anschließend abspeichern, dann zu Putty wechseln und in der Konsole eingeben:


ldconfig

Fertig.

TranSocks installieren und Config anpassen
Um Transocks installieren zu können, ist es nötig, eine kleine Änderung im Makefile durchzuführen.
Wechsel in WinSCP ins Verzeichnis /root/Transocks, klick einmalig auf Makefile und F4 (für Datei Editieren)
In einer Zeile steht:


SOCKS_LIB = -lsocksd # Dante SOCKS library

Änder die Zeile um in:


SOCKS_LIB = -lsocks # Dante SOCKS library

und speichere die Datei ab.

Wechsel nun ins Putty und gib ein:


cd Transocks
make
cd ..

Transocks sollte nach diesen Schritt kompiliert sein.

Nun müssen wir ja irgendwo sagen, wie IPcop Tor erreichen soll.
Hierfür wechsel mit WinSCP ins Verzeichnis /etc und erstelle eine neue Datei (Shift+F4) namens socks.conf.
Die neue Datei sollte folgenden Inhalt haben:


route {
from: 0.0.0.0/0 to: 0.0.0.0/0 via: 192.168.0.8 port = 4990
proxyprotocol: socks_v4
method: none
protocol: tcp
}

Speichern, Fertig.


► Schritt 4: Letzte Anpassungen
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

Bevor es losgeht, sollte man nochmal ein Auge (mit WinSCP) über folgende Dateien werfen:
/etc/rc.d/rc.firewall.local
/etc/socks.conf
/root/start
und ggf. vergessene Anpassungen nachholen.
Achtung: Die Textdateien auf dem Linux-Router müssen im LF-Format (Char 10) vorliegen, Windows speichert Texte standardmäßig im CRLF-Format (Char 13,10), deshalb ist es empfehlenswert, die Dateien direkt remote mit WinSCP zu editieren statt sie lokal zu editieren und hochzuladen. Häufiges Anzeichen solcher Konflikte ist die Fehlermeldung "Bad Interpreter".

Wie man VM-Guests konfigurieren muss
Jeder VM-Guest, der über den Tor-IPcop-Router anonym ins Internet soll, muss eine IP-Adresse aus dem 192.168.4.x-Bereich (z.B. 192.168.4.2) mit der Netzmaske 255.255.255.0 und Gateway 192.168.4.1 zugewiesen bekommen. Wichtig ist auch, das die Netzwerkkarte der isolierten virtuellen Maschine ins Netz VMnet2 kommt.

Wenn man mit allem Fertig ist gibt man in der Konsole des IPcop-Routers (192.168.0.4) ein:


reboot

Fertig.


► Schritt 5: Wie man die VM und Tor bedient
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

Starten
Um das ganze zu Starten, geht man folgendermaßen vor:
1. Die vorgesehenen virtuelle Maschinen starten (die IPcop-Maschine + die isolierten Guests)
2. In Windows den Tor.exe-Clienten starten
3. Konsole auf und ./start eintippen, Enter, Konsole kann nach einem "Connected to Tor" beendet werden (Strg+D)
4. Man wechselt in einer isolierten virtuellen Maschine und kann nun anonym diverse Sachen machen, es ist kein Proxyeintrag mehr nötig, einfach "Direkte Verbindung ins Internet", fertig.

Restarten/Flushen
Wenn Tor (wieder mal) klemmt: Ganz einfach, Tor in Windows abschießen und dann Tor neu starten

Runterfahren
Konsole auf und "init 0" eingeben. Die restlichen Maschinen natürlich auch ordnungsgemäß runterfahren.


► Alternativen
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬
Wer eine Alternative möchte, kann zu FreeCap (http://www.freecap.ru/eng/%3Fp=whatis) und TorDNS greifen


► Sonstiges
▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬

Vorgeben bei Leuten, die sich direkt einwählen
Das Tutorial geht davon aus, das man im LAN hinter einem Router sitzt.
Was man noch beachten müsste, wenn man keine LAN-IP besitzt sondern sich direkt einwählt, kann ich zur Zeit nicht testen.
Es wäre schön, wenn jemand der ein Einzelplatz-InternetPC und Erfahrung hat, mir noch dazu Hinweise geben könnte.

Tipp: Mit Hilfe eines VPN-Anonymizers Pakete direkt auf IP-Ebene über Tor versenden
Wer so anonym wie Tor Pakete auf IP-Ebene verschicken möchte (wie ICMP und UDP) und etwas Geld übrig hat und etwas erfahrener ist, dem empfehle ich secretsline.com (http://www.secretsline.com).
Secretsline kann man per Paysafecard (http://www.paysafecard.com) bezahlen (an fast jeder Tankstelle verfügbar) und stellt die OpenVPN-Server auch auf TCP-Ports(!) bereit, die über Tor ansprechbar sind.

Leider ist es nicht billig und man bekommt nur eine LAN-IP, wie beim Router ohne Portforwarding.
Wers braucht - ok - wers nicht unbedingt braucht, sollte es sein lassen.

Tipp: Trenne zwischen anonym und nichtanonym und betrachte die VM-Guests als neue, eigene Identitäten
Persönliche Daten haben in einer isolierten VM nichts zu suchen. KEIN Homebanking oder Ebaying im VM-Guest!

Für max. Sicherheit ebenso abzuraten ist es, die selben Zugangsdaten für Foren und Webspace auf Host UND Guest gemischt zu verwenden, da diverse Applikationen und (Browser-)PlugIns ansonsten "Fingerprints" der verwendeten Profile erstellen und vergleichen können. Zur Not muss man eben extra dafür ein neuen Account anlegen. Bei Zweitaccounts drauf achten, das man unter Umständen über sein Sprachstil identifiziert werden kann!

Zugangsdaten für Accounts, die man anonym erstellt hat, kann man auch prima innerhalb eines VM-Guests in ein virtuellen Safe legen - dann kommt man auch nicht durcheinander. Will man Dateien wie Zugangsdaten oder Chat-Logs rausziehen, sollte man sich auf dem Host dafür ein Extra-Verzeichnis anlegen, verschlüsselt natürlich.


So, das wars.


Quelle: gulli:board