PuTTY: Unterschied zwischen den Versionen

Aus UUGRN
(speling!!!)
(Anwendungsbeispiel: Wie breche ich mit PuTTY aus einem Netzwerk aus, über Tunnel, Proxies und misstrauischen Admins.)
Zeile 1: Zeile 1:
'''PuTTY''' ist eine freie Implementierung von [[SSH]] und [[Telnet]]. Das '''PuTTY'''-Projekt wurde von Simon Tatham ins Leben gerufen. Mittlerweile stehen auch Tools für den vollen Funktionsumfang [[SSH]]s zur Verfuegung wie z.B. [[SCP]]. Das PuTTY-Projekt beschäftigt sicht primär mit der [[Win32]] Plattform, es gibt aber auch einen [[UNIX]] Port, welcher auch unter [[Linux]] laufähig ist.
'''PuTTY''' ist eine freie Implementierung von [[SSH]] und [[Telnet]]. Das '''PuTTY'''-Projekt wurde von Simon Tatham ins Leben gerufen. Mittlerweile stehen auch Tools für den vollen Funktionsumfang [[SSH]]s zur Verfuegung wie z.B. [[SCP]]. Das PuTTY-Projekt beschäftigt sicht primär mit der [[Win32]] Plattform, es gibt aber auch einen [[UNIX]] Port, welcher auch unter [[Linux]] laufähig ist.
== Anwendung ==
Die Hauptanwendung ist '''putty.exe'''. Hier werden Sessions angelegt, konfiguriert und gestartet.
=== Aufruf, Verknüpfung ===
Auf dem Desktop oder in Menüs können einzelne Sessions direkt aufgerufen werden, indem Verknüpfungen zu putty.exe wie folgt erstellt werden:
C:\Programme\PuTTY\putty.exe @shell.uugrn.org
Eine Verknüpfung wie diese ruft das Profil ''shell.uugrn.org'' auf.
=== Tunnel ===
PuTTY kann über eine SSH-Verbindung beliebiges Portforwarding, es können entweder lokale remote durchgereicht werden, aber auch remote-Ports nach lokal. Außerdem implementiert PuTTY selbst einen [[SOCKS]]-Proxy, wenn man ein ''dynamic'' Portforwarding einrichtet.
=== [[Proxy]] ===
PuTTY kann seine Verbindungen entweder direkt, aber auch via [[Socks]]- oder HTTP-Proxy aufbauen, vorausgesetzt der entsprechende Proxy ist dafür konfiguriert, d.h. erlaubt de CONNECT-Methode auf Port 22. Leider ist das häufig eher nicht der Fall. Abhilfe ist hier auf dem Zielsystem den [[sshd]] zusätzlich zu Port 22 auch noch '''Port 443''' zu konfigurieren, welches idR für HTTPS verwendet wird, Standardmäßig erlauben Web-Proxies einen CONNECT auf Port 443.
; /etc/ssh/sshd_config:
Port 22
Port 443
[...]
Auf vielen Systemen wird hier jedoch nur [[HTTPS]] angeboten.
Durch Kombination dieser Fähigkeiten kann man auch aus relativ restriktiven Netzwerkumgebungen, z.B. Firmennetz oder Campus-Netz "ausbrechen": Man konfiguriert eine SSH-Verbindung von intern nach extern via HTTP-Proxy und konfiguriert außerdem noch eine "dynamische" Portweiterleitung aka SOCKS-Proxy z.B. auf localhost:1080.
Viele Programme unterstützen die Verwendung von SOCKS-Proxy anstelle einer direkten Netzwerkverbindung, z.B. Chat/Messenger, FTP-Clients, Mailprogramme (z.B. [[Thunderbird]]).
Darüberhinaus kann man über diese SOCKS-Verbindug auch weitere PuTTY-Verbindungen aufbauen, ohne zusätzliche Einträge im Logfile des Web-Proxies zu hinterlassen (idR erst beim Abbau der Verbindung.)
=== Heimserver verwenden ===
Verfügt man über keinen Server mit sshd auf Port 443, kann man dieses über den Permanent am Netz laufenden Heim-Server einrichten. Hierzu ist es jedoch erforderlich einen [[DynDNS]]-Eintrag zu haben, da beim Zugriff auf die IP-Adresse, die man zudem oft nicht kennt, jedesmal ein neues Host:Fingerprint-Pärchen gespeichert wird. Beispielsweise bietet sich ''dyndns.org'' an, wo man sich Hostnamen wie etwa '''blablubb.homeip.net''' eintragen kann.
Hängt der Heimserver hinter einen NAT-Router, so muss hier entsprechend eine Portweiterleitung für 22 und 443 nach innen eingerichtet werden.
==== Web-Proxy ====
Will man darüber hinaus nicht nur "unbefugtes" SSH nach Hause machen, sondern darüber auch im Web surfen, ohne im Proxy-Server der Firma Spuren zu hinterlassen, so installiert und konfiguriert man sich zu Hause einen eigenen [[squid]]-Server auf Port 3128. Der sichere Zugriff darauf erfolgt durch den SSH-Tunnel, der bereits schon den SOCKS-Proxy implementiert: zusätzlich konfiguriert man ein Local-Portforwarding von 3128 auf 127.0.0.1:3128.
: '''ACHTUNG!''' Nicht '''localhost''' verwenden, da dieses auf der Gegenstelle durch sshd möglicherweise auf [[IPv6]] mit '''::1''' aufgelöst wird. Squid ist jedoch nur via [[IPv4]] erreichbar, was zuweilen Grund für bizarre Fehlersuchen sein kann.
Verbindet man sich nun mit der entsprechend erweiterten PuTTY-Session auf den Heimserver, kann man lokal auf Port 3128 (oder den Port, den man lokal konfiguriert hat transparent auf den Heim-Proxy zugreifen. Der Proxy zu Hause sieht die Zugriffe von 127.0.0.1 kommen, während man selbst (unter Windows) auch auf 127.0.0.1 zugreift.
Will man nur bei bestimmten URLs oder zu bestimmten Servern über den privaten Proxy gehen, empfiehlt sich das Add-on [[FoxyProxy]] von Firefox. Hier kann man basierend auf [[Wildcard]]s oder [[Regular Expression]]s verschiedene Proxies verwenden.




Zeile 16: Zeile 59:


[[Kategorie:Kryptographie]]
[[Kategorie:Kryptographie]]
[[Kategorie:Tool]]
[[Kategorie:Anwendungsbeispiel]]
[[Kategorie:SSH]]
[[Kategorie:SSH]]

Version vom 21. Juli 2007, 00:04 Uhr

PuTTY ist eine freie Implementierung von SSH und Telnet. Das PuTTY-Projekt wurde von Simon Tatham ins Leben gerufen. Mittlerweile stehen auch Tools für den vollen Funktionsumfang SSHs zur Verfuegung wie z.B. SCP. Das PuTTY-Projekt beschäftigt sicht primär mit der Win32 Plattform, es gibt aber auch einen UNIX Port, welcher auch unter Linux laufähig ist.

Anwendung

Die Hauptanwendung ist putty.exe. Hier werden Sessions angelegt, konfiguriert und gestartet.

Aufruf, Verknüpfung

Auf dem Desktop oder in Menüs können einzelne Sessions direkt aufgerufen werden, indem Verknüpfungen zu putty.exe wie folgt erstellt werden:

C:\Programme\PuTTY\putty.exe @shell.uugrn.org

Eine Verknüpfung wie diese ruft das Profil shell.uugrn.org auf.

Tunnel

PuTTY kann über eine SSH-Verbindung beliebiges Portforwarding, es können entweder lokale remote durchgereicht werden, aber auch remote-Ports nach lokal. Außerdem implementiert PuTTY selbst einen SOCKS-Proxy, wenn man ein dynamic Portforwarding einrichtet.

Proxy

PuTTY kann seine Verbindungen entweder direkt, aber auch via Socks- oder HTTP-Proxy aufbauen, vorausgesetzt der entsprechende Proxy ist dafür konfiguriert, d.h. erlaubt de CONNECT-Methode auf Port 22. Leider ist das häufig eher nicht der Fall. Abhilfe ist hier auf dem Zielsystem den sshd zusätzlich zu Port 22 auch noch Port 443 zu konfigurieren, welches idR für HTTPS verwendet wird, Standardmäßig erlauben Web-Proxies einen CONNECT auf Port 443.

/etc/ssh/sshd_config
Port 22
Port 443
[...]

Auf vielen Systemen wird hier jedoch nur HTTPS angeboten.


Durch Kombination dieser Fähigkeiten kann man auch aus relativ restriktiven Netzwerkumgebungen, z.B. Firmennetz oder Campus-Netz "ausbrechen": Man konfiguriert eine SSH-Verbindung von intern nach extern via HTTP-Proxy und konfiguriert außerdem noch eine "dynamische" Portweiterleitung aka SOCKS-Proxy z.B. auf localhost:1080.

Viele Programme unterstützen die Verwendung von SOCKS-Proxy anstelle einer direkten Netzwerkverbindung, z.B. Chat/Messenger, FTP-Clients, Mailprogramme (z.B. Thunderbird). Darüberhinaus kann man über diese SOCKS-Verbindug auch weitere PuTTY-Verbindungen aufbauen, ohne zusätzliche Einträge im Logfile des Web-Proxies zu hinterlassen (idR erst beim Abbau der Verbindung.)


Heimserver verwenden

Verfügt man über keinen Server mit sshd auf Port 443, kann man dieses über den Permanent am Netz laufenden Heim-Server einrichten. Hierzu ist es jedoch erforderlich einen DynDNS-Eintrag zu haben, da beim Zugriff auf die IP-Adresse, die man zudem oft nicht kennt, jedesmal ein neues Host:Fingerprint-Pärchen gespeichert wird. Beispielsweise bietet sich dyndns.org an, wo man sich Hostnamen wie etwa blablubb.homeip.net eintragen kann. Hängt der Heimserver hinter einen NAT-Router, so muss hier entsprechend eine Portweiterleitung für 22 und 443 nach innen eingerichtet werden.

Web-Proxy

Will man darüber hinaus nicht nur "unbefugtes" SSH nach Hause machen, sondern darüber auch im Web surfen, ohne im Proxy-Server der Firma Spuren zu hinterlassen, so installiert und konfiguriert man sich zu Hause einen eigenen squid-Server auf Port 3128. Der sichere Zugriff darauf erfolgt durch den SSH-Tunnel, der bereits schon den SOCKS-Proxy implementiert: zusätzlich konfiguriert man ein Local-Portforwarding von 3128 auf 127.0.0.1:3128.

ACHTUNG! Nicht localhost verwenden, da dieses auf der Gegenstelle durch sshd möglicherweise auf IPv6 mit ::1 aufgelöst wird. Squid ist jedoch nur via IPv4 erreichbar, was zuweilen Grund für bizarre Fehlersuchen sein kann.

Verbindet man sich nun mit der entsprechend erweiterten PuTTY-Session auf den Heimserver, kann man lokal auf Port 3128 (oder den Port, den man lokal konfiguriert hat transparent auf den Heim-Proxy zugreifen. Der Proxy zu Hause sieht die Zugriffe von 127.0.0.1 kommen, während man selbst (unter Windows) auch auf 127.0.0.1 zugreift.

Will man nur bei bestimmten URLs oder zu bestimmten Servern über den privaten Proxy gehen, empfiehlt sich das Add-on FoxyProxy von Firefox. Hier kann man basierend auf Wildcards oder Regular Expressions verschiedene Proxies verwenden.


Siehe auch

Weblinks