—Update: 24.11.13—
Dieser Artikel ist teilweise veraltet, eine neue Version befindet sich hier
Getestet unter Windows XP Pro SP3 / Windows 7 Pro [Client]
Um was geht es hier eigentlich?
Ich gehe davon aus das Begriffe wie VNC oder RDP sowie SSH euch nicht fremd sind! Ich werde euch hier eine einfache Möglichkeit aufzeigen VNC bzw. RDP Verbindungen sicher über einen SSH Tunnel zu schicken. Ich hatte in letzer Zeit öfters das Problem, das mich Freunde um Rat baten, weil Sie Probleme mit Ihrem Rechner hatten. Da dies aufgrund der Entfernung/Zeit nicht immer möglich ist, ergibt sich nur eine Lösung. FERNWARTUNG und zwar möglichst sicher!
Thema Verschlüsselung:
Das RDP Protokoll bietet zwar ab Werk eine RC4 Verschlüsselung mit 56 – 128 Bit, da dies aber nicht ausreichend ist, um Angriffe zu verhindern und das RDP Protokoll zumindest vor Version 6.1 verschiedene Designschwächen besitzt, ist eine sichere Authentifizierung nicht gewährleistet. Der VNC Server bietet in seiner kostenfreien Version gar keine Verschlüsselung an, die Daten werden Plain über das Internet übermittelt.
Was wird also alles benötigt?
- COPSSH (SSH Server)
- Putty (SSH Client)
- RealVNC oder vergleichbaren VNC Service
- Aktiviertes Remote Desktop Protokoll (Server)
- Windows Betriebssystem
- Optional: Router (Port Forwarding)
- Optional: DynDNS Dienst (z.b. Dyndns.com)
- Kaffee, um entspannt diese Anleitung lesen zu können
Was ist zu tun auf dem Rechner, den ich fernwarten möchte:
1. VNC Server (nur Server) installieren, dem Assistenten folgen, bis zur Eingabe eines Passworts.

Passwort setzen und den Assistenten beenden. Zuletzt muss noch die Loopback Option aktiviert werden.

2. RDP aktivieren
“Windows Taste + Pause” drücken, Reiter “Remote” auswählen und sicherstellen, das zumindest ein Benutzer/Administrator berechtigt ist RDP Sitzungen aufzubauen (Wichtig: Der Windows Account muss ein Kennwort besitzen, ansonsten wird der Aufbau verweigert).

3. SSH Server konfigurieren
Die Installation des COP SSH Servers ist selbsterklärend. Ihr folgt der Installation durch den Assistenten. Gegen Ende des Installation muss noch User “aktiviert” werden, welcher die nötigen Rechte erhalten muss, um SSH Verbindungen Verbindungen möglich zu machen. Wählt einen lokalen Systembenutzer aus oder erstellt euch einen neuen Benutzer aber weißt diesem das Konsolenrecht (Shell) zu. In jedem Fall wählt für diesen Benutzer ein sicheres Passwort!

4. Windows Firwall konfigurieren
Wenn die Windows Firewall aktiviert ist, sollte mindestens der SSH Port 22 (TCP) für das Internet freigeschaltet werden. VNC (TCP 5900) oder RDP (TCP 3389) auf keinen Fall für das Internet freischalten, sonst kann man den Tunnel gleich weglassen 😉 VNC bzw. RDP deshalb nur für das eigene Subnetz freischalten (wenn ihr ganz paranoid seid, schaltet nur den Localhost frei ^^). Die SSH Firewall Einstellung sollte so aussehen.

Was ist zu tun von dem Rechner aus, von dem ich fernwarte:
1. Putty starten:
Putty muss wie folgt konfiguriert werden.


Die Verbindungen sollten dann jeweils unter “Session” abgespeichert werden.
2. SSH Sitzung aufbauen
Jetzt kann der Aufbau der SSH Sitzung über Putty erfolgen! Öffnet die gewünschte Session und gebt euren Benutzernamen/Passwort ein.

3. RDP Sitzung aufbauen
Nach erfolgreichem SSH Login, den RDP Client starten
4. Alternativ VNC Sitzung aufbauen

Was ist eigentlich am Router zu tun:
Der Router (wenn vorhanden) muss so konfiguriert werden, das er die SSH incoming (eingehend) zulässt. Geht ins Menü Portforwarding/Portfreigabe und wählt die interne IP eures fernzuwartenden Rechners aus z.b. “192.168.85.20” und gebt dort einen “Source Port/Quellport”. Die Portnummer sollte höher als “1024” sein und nicht größer als “65535”. Als “Destination Port/Zielport” wählt ihr den Port 22.
Beispielkonfiguration an einer Smoothwall Firewall Distribution:

Wie war das mit Dyndns?:
Solltet ihr keinen Internet Anschluss mit fester IP Adresse haben, müsst ihr zwangsweise einen Dienst nutzen, der euch einen Hostname zur Verfügung stellt. Die erhaltenen Daten müsst ihr dann in eurem Router eintragen, um auch immer die letzte gültige Ip Adresse zu erhalten.
Probleme / Lösungen:
Userlogin zu einem Domain Controller: Es gibt Schwierigkeiten, wenn man lokale Benutzer auf einem Domänen Controller hat und diese als SSH Benutzer aktivieren möchte. Lokale Benutzer haben nämlich nicht die Erlaubnis sich lokal anzumelden. Entweder man erstellt eine Security Policy für diese Benutzer oder falls man nur einen Benutzer hat kann man das auch wie folgt machen. Dazu geht man am Domain Controller in die Verwaltung. Pfad lautet:
Administrative Tools--> Domain Controller Security
Policy--> Local Policies--> User Rights Assignment-->
Allow Log on locally
jetzt können sich auch lokale Benutzer am Domain Controller anmelden. Achtet auch darauf, das die Policy “lokale Anmeldung verweigern” entfernt wird.
Spezialfall Windows 7 [Client]:
—Update: 10.10.10—
Möchtet Ihr von Windows 7 auf euren Zielrechner zugreifen, ist noch etwas Nacharbeit nötig.
[Server]
Der originale RDP Port (TCP 3389) muss per Registry verändert werden. Verwendet z.b. den TCP Port 3390.
Änderung ist unter folgendem Schlüssel möglich:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TerminalServer\WinStations\RDP-Tcp\PortNumber
[Client]
Auf der Client Seite ist es nötig Putty (Unterpunkt: Tunnels) den richtigen Port zuzuweisen z.b. TCP Port 3390.
Danach kann eine RDP Verbindung problemlos aufgebaut werden.

—Update: 02.11.10—
Auch bei Verwendung des Ports 3390 treten Verbindungsprobleme auf, die Verbindung klappt zwar, reisst aber immer wieder ab. Verwendet besser den Port 3391 oder höher, dann seid ihr auf der sicheren Seite.
Lokaler Zugriff: Möchte man innerhalb seines Netzwerks von einem anderen Rechner aus z.b. auf RDP zugreifen, muss bei einem geänderten RDP Port, dieser explizit in der Windows Firewall eingehend freigegeben werden.
Abbrechende Verbindungen in Putty:
Timeouts können verhindert werden, indem man “Keep Alive” aktiviert.
