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-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 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:
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
-
Putty
- Natürlich auch
Tor
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 ( Filename: ipcop-1.4.1-gcc.iso )
-
transocks ( Ordnername: Transocks )
-
dante 1.1.14 ( Filename: dante-1.1.14.tar.gz )
-
tran-proxy-tor 0.1.0 ( Filename: trans-proxy-tor-0.1.0.tar.gz )
-
4guest ( 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 "
192.168.0.8:4990" und kommentier konkurrierende Einträge aus
- Neuer Eintrag "
ControlListenAddress 192.168.0.8"
- Neuer Eintrag "
ControlPort 4991"
- Bei Tor v0.2.0.x: Passwort aussuchen und Hash berechnen durch folgenden Aufruf über Kommandozeile (Defaultmäßig in C:\Programme\Tor\):
Code:
tor --hash-password ChangeThisTorPW
- Bei Tor v0.2.0.x: Neuer Eintrag "
HashedControlPassword Hash", wobei
Hash der eben berechnete Hash ist, der mit 16:... beginnt.
► 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 per F4 ggf. IPs/Portnummern anpassen)
- Bei Tor v0.2.0.x: Datei
scripts/start per F4 bearbeiten und in folgender Zeile gehen:
Zitat:
|
./trans-proxy-tor-0.1.0.tar/dns-proxy-tor ...
|
und ganz am Ende der Zeile folgendes anhängen (Leerzeichen zwischen letzte Ziffer und Anhängsel nicht vergessen!):
und speichern (Strg+S)
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:
Code:
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:
Code:
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:
Code:
/usr/local
/usr/local/lib
Anschließend abspeichern, dann zu Putty wechseln und in der Konsole eingeben:
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:
Code:
SOCKS_LIB = -lsocksd # Dante SOCKS library
Änder die Zeile um in:
Code:
SOCKS_LIB = -lsocks # Dante SOCKS library
und speichere die Datei ab.
Wechsel nun ins Putty und gib ein:
Code:
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:
Code:
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:
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 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.net.
Secretsline kann man per
Paysafecard 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.
Feedback, Verbesserungen und konstruktive Kritik erwünscht.
----------- News ------------
- 27.02.2008, WARNUNG: Sicherheitslücken in VMware 6.0.2 und drunter
Aufgrund Sicherheitslücken, die in aktuellen VMware-Versionen (<=v6.0.2) klaffen, kann das Gast-System aus der Umgebung
ausbrechen.
Grund dafür ist ein Fehler in VMware, der für das "Shared Folder" zuständig ist.
Es wird empfohlen, VMware auf dem neusten Stand zu bringen.
Als Workaround, bis man ein Update eingespielt hat, sollte man folgende Schritte unternehmen:
- "Shared Folder" par VM-Konfiguration
ausschalten
- "Shared Folder" im
Guest deinstallieren, geht über Systemsteuerung->Software->VMware tools->Ändern->"Shared Folder" Haken weg machen->Ok,Ok...
- Im Guest mit
eingeschränkten Rechten arbeiten, um zu verhindern das trojanische Pferde mit Adminrechte im Guest die Treiber für "Shared Folder" von sich aus wieder installieren und die Lücke ausnutzen können
- Betriebssystem im
Guest auf dem
neusten Stand bringen, da sonst ein Trojaner durch
Privilege Escalation über Lücken des Guest-Betreibssystems sich Adminrechte holen kann und wiederum per selbst mitgebrachten "Shared Folder"-Treiber auf den Host-Rechner überspringen kann
- Programme aus unseriösen Quellen im Guest niemals als Administrator ausführen (=> Leute, die manuell normalen Benutzeraccounts das Laden von Treibern erlaubt haben, sollen es wieder abstellen)
Quellen:
http://www.heise.de/newsticker/meldung/104018
http://xforce.iss.net/xforce/xfdb/38712
(2
verschiedene Sicherheitslücken, die sich aber alle um "Shared Folder" drehen)
- 12.03.2008, HowTo: PARANOIA-Security - "VMware-Tools"-Kommunikationsschnittstelle kappen:
In der Vergangenheit sind, wie man in den News lesen konnte, Sicherheitslücken bekanntgeworden, wo eine Malware vom Guest aus zum Host überspringen kann.
Ein potentieller Schwachpunkt liegt in der Kommunikationsschnittstelle, genauergesagt ist es der
Backdoor-Port, der die Schnittstelle zwischen Guest und Host dastellt. VMware-Tools macht von der Schnittstelle gebrauch.
Möchte man Sicherheit vor bekannten und auch unbekannten (!) Exploits, die diese Schwachstelle nutzen, kann man diese Schnittstelle komplett deaktivieren.
Das Demontieren der VMware-Tools im Guest bietet zwar schon guten Schutz, aber potentielle Malware könnte theoretisch einfach die deinstallierten Komponenten von der Hand wieder installieren oder direkt über den "Backdoor"-Port gehen. Um die Kommunikation
Hostseitig zu kappen, kann man folgendermaßen vorgehen:
Schritt 1: Man beende ggf. die Maschine (ganz ausschalten!) und öffne mit dem Notepad die Konfigurationsdatei der virtuellen Maschine (
*.vmx)
Schritt 2: Man füge folgende Zeile am Ende an:
Zitat:
|
monitor_control.restrict_backdoor = "TRUE"
|
und klicke auf Speichern
Ab sofort ist diese Schnittstelle gesperrt. Folgende Sachen werden ebenfalls nicht mehr funktionieren (Achtung: Liste unvollständig!):
- Shared Folder
- Copy&Paste von oder aus der virtuellen Maschine
- Rein/rausziehen von Dateien und Ordner aus/in der virtuellen Maschine
- Anpassen der Auflösung des Gastes an der aktuellen Fenstergröße (View->Fit guest now)
Wem die Bedienung von VMware zu unkomfortabel wird, kann alternativ vorgehen wie in der News von 27.02.2008 empfohlen, da noch keine Malware oder Demoexploit existiert, der Huckepack die "Shared Folder"-Funktionalität von VMware-Tools nachinstalliert oder direkt den Backdoor-Port zum Exploiten nimmt.
- NEU 03.08.2008, Tutorial geht auch auf die neuste Version von Tor (v0.2.0.x) ein:
Wer von Tor v0.1.x auf die neuste Version updaten möchte, muss folgende Dinge beachten:
- Der Eintrag "HashedControlPassword ..." in der "Torrc" ist ab sofort pflicht, sobald unter "ControlListenAddress" eine andere IP als Localhost steht was in diesem Tutorial der Fall ist!
- Hinter den Eintrag muss ein Hash stehen. Der Hash lässt sich berechnen, indem man Tor mit --hash-password startet. Beispielaufruf:
Code:
tor --hash-password MeinPasswort
- Im Start-Skript (/root/start) muss in der Zeile, die mit "./trans-proxy-tor" beginnt der Parameter "-w MeinPasswort" angehängt werden.