<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>martin-grandrath.de &#187; ssh</title>
	<atom:link href="http://martin-grandrath.de/tags/ssh/feed/" rel="self" type="application/rss+xml" />
	<link>http://martin-grandrath.de</link>
	<description>Ein neues WordPress-Weblog</description>
	<lastBuildDate>Fri, 23 Oct 2009 22:35:41 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Userfriendly aus dem Arcor-Netz lesen</title>
		<link>http://martin-grandrath.de/2008/05/userfriendly-aus-dem-arcor-netz-lesen/</link>
		<comments>http://martin-grandrath.de/2008/05/userfriendly-aus-dem-arcor-netz-lesen/#comments</comments>
		<pubDate>Fri, 23 May 2008 22:55:43 +0000</pubDate>
		<dc:creator>Martin Grandrath</dc:creator>
				<category><![CDATA[Allgemeines]]></category>
		<category><![CDATA[Arcor]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Netzwerk]]></category>
		<category><![CDATA[Proxy]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[Userfriendly]]></category>

		<guid isPermaLink="false">http://www.martin-grandrath.de/?p=54</guid>
		<description><![CDATA[Nach wie vor sperrt Userfriendly alle Anfragen aus dem Netz von Arcor.  Die Sperre wird zwar sporadisch immer mal wieder aufgehoben, was aber sehr unregelmäßig passiert.
Nun wurde von Stefan Deil gefragt, ob es einen Workaround gibt.  Zwei Varianten möchte ich hier kurz vorstellen:
1. Proxy-Server
Die Sperre von Userfriendly geschieht auf Basis der IP-Adresse.  [...]]]></description>
			<content:encoded><![CDATA[<p>Nach wie vor <a href="http://www.martin-grandrath.de/2008/04/userfriendly-wieder-ueber-arcor-erreichbar/">sperrt Userfriendly alle Anfragen aus dem Netz von Arcor</a>.  Die Sperre wird zwar sporadisch immer mal wieder aufgehoben, was aber sehr unregelmäßig passiert.</p>
<p>Nun wurde von <a href="http://www.martin-grandrath.de/2008/04/userfriendly-wieder-ueber-arcor-erreichbar/#comment-22" rel="nofollow">Stefan Deil</a> gefragt, ob es einen Workaround gibt.  Zwei Varianten möchte ich hier kurz vorstellen:</p>
<h3>1. Proxy-Server</h3>
<p>Die Sperre von Userfriendly geschieht auf Basis der IP-Adresse.  Anfragen, die nicht aus dem Arcor-Netz kommen, werden ohne Probleme beantwortet.  Die einfachste Möglichkeit ist daher, die Anfrage über einen Proxy zu senden, der diese dann an Userfriendly weiterleitet und die Antwort wiederum an den Browser durchreicht.  Dieser Proxy muss in den Optionen des verwendeten Browsers eingetragen werden.</p>
<p>In einem <a href="http://www.heise.de/foren/forum-19090/msg-14511726/read/" rel="external">Beitrag im Heiseforum</a> wird z.B. ein Proxy der Piratenpartei vorgeschlagen (porn.piratenpartei.de:3128).  Angeblich funktioniert selbst der Arcor-eigene Proxy (proxy.arcor-ip.de:8080), was ich aber nicht getestet habe.</p>
<p>Der Nachteil an diesem Ansatz ist, dass der gesamte &raquo;Surf-Traffic&laquo; nun über einen fremden Rechner geleitet wird, was man aus Gründen der Sicherheit, der eigenen Privatsphäre und/oder der Übertragungsrate nicht unbedingt möchte.  Daher möchte ich noch eine zweite Möglichkeit aufzeigen.</p>
<h3>2. ssh-Tunnel</h3>
<p>Voraussetzung hier ist ein ssh-Zugang auf einen anderen Rechner oder Server, der außerhalb des Adressbereichs von Arcor liegt.  ssh ermöglicht es, einen &raquo;Tunnel&laquo; aufzubauen und einen Port des eigenen Rechners mit diesem zu verbinden.  Das Ganze hört sich komplizierter an als es ist.  Unter Unix realisiert man den Tunnel mit diesem Befehl:</p>
<pre class="code">ssh -L 80:www.userfriendly.org:80 USER@SOME_HOST</pre>
<p>Port 80 des eigenen (lokalen) Computers wird an den ssh-Tunnel gebunden, dessen anderes Ende mit Port 80 von www.userfriendly.org verbunden wird.  Da es sich dabei um einen so genannten priviligierten Port handelt, benötigt dieser Befehl root-Rechte.  <code>USER</code> ist natürlich durch die entsprechende Nutzerkennung zu ersetzen, mit der man sich auf dem entfernten Rechner <code>SOME_HOST</code> anmelden kann.  Für Windows-User existiert der ssh-Client <a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/" rel="external">PuTTY</a>, der das gleiche leisten sollte, mit dem ich mich aber nicht auskenne &#8212; wenn jemand mehr weiß, würde ich mich über einen entsprechenden Kommentar freuen.</p>
<p>Nun muss man noch dafür sorgen, dass Anfragen für Userfriendly auch an localhost und damit über den Tunnel gesendet werden.  Das erreicht man am einfachsten mit folgender Zeile in der Datei <code>/etc/hosts</code> (unter Windows heißt die Datei auch &raquo;hosts&laquo;, ich weiß aber nicht wo sie liegt):</p>
<pre class="code">127.0.0.1 www.userfriendly.org</pre>
<p>Diese sorgt dafür, dass die Adresse www.userfriendly.org auf die lokale IP des eigenen Rechners aufglöst wird.  Jetzt genügt es, eben diese Adresse im Browser der Wahl aufzurufen.  Eine Einschränkung gibt es aber leider dennoch: userfriendly ist über die Hosts &raquo;www&laquo; und &raquo;ars&laquo; verteilt.  Da wir nur einen von beiden umleiten können, ist die Navigation auf der Seite nur eingeschränkt möglich.  Prinzipiell kann man auch das in den Griff kriegen, es wird dann nur ein wenig aufwändiger.</p>
<p>Die zweite Variante hat den Vorteil, dass wirlich nur der Traffic von und zu Userfriendly umgeleitet wird; alle anderen Verbindungen bleiben unverändert.</p>
<p>PS. <a href="http://www.dilbert.com/" rel="external">Dilbert</a> und <a href="http://xkcd.com/" rel="external">xkcd</a> existieren auch noch&#8230; ;-)</p>
]]></content:encoded>
			<wfw:commentRss>http://martin-grandrath.de/2008/05/userfriendly-aus-dem-arcor-netz-lesen/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Fachkompetenz beim 1&amp;1 Support</title>
		<link>http://martin-grandrath.de/2008/05/fachkompetenz-beim-1und1-support/</link>
		<comments>http://martin-grandrath.de/2008/05/fachkompetenz-beim-1und1-support/#comments</comments>
		<pubDate>Tue, 20 May 2008 21:13:12 +0000</pubDate>
		<dc:creator>Martin Grandrath</dc:creator>
				<category><![CDATA[Alltäglicher Wahnsinn]]></category>
		<category><![CDATA[1und1]]></category>
		<category><![CDATA[Hosting]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[Support]]></category>
		<category><![CDATA[Webspace]]></category>

		<guid isPermaLink="false">http://www.martin-grandrath.de/?p=52</guid>
		<description><![CDATA[Zur Zeit betreue ich den Aufbau einer Internetpräsenz für einen Kunden, der sich zu diesem Zweck Webspace bei 1&#038;1 angemietet hat.  In diesem Hosting-Paket (Homepage Business Pro) ist auch ein ssh-Zugang enthalten.  Benutzername und Passwort sind im Kundenbereich schnell gefunden.  Was ich aber vergeblich gesucht habe ist der Fingerprint des Hostkeys.  [...]]]></description>
			<content:encoded><![CDATA[<p>Zur Zeit betreue ich den Aufbau einer Internetpräsenz für einen Kunden, der sich zu diesem Zweck Webspace bei 1&#038;1 angemietet hat.  In diesem Hosting-Paket (Homepage Business <em>Pro</em>) ist auch ein ssh-Zugang enthalten.  Benutzername und Passwort sind im Kundenbereich schnell gefunden.  Was ich aber vergeblich gesucht habe ist der Fingerprint des Hostkeys.  Auf meine entsprechende Anfrage beim 1&#038;1 Support erhielt ich diese Antwort:</p>
<blockquote><p>
den Fingerprint bekommt Ihr Client automatisch bei der ersten Verbindung mitgeteilt.
</p></blockquote>
<p>Kopf -> Tisch</p>
]]></content:encoded>
			<wfw:commentRss>http://martin-grandrath.de/2008/05/fachkompetenz-beim-1und1-support/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Remote-Desktop per VNC mit Debian</title>
		<link>http://martin-grandrath.de/2008/05/remote-desktop-per-vnc-mit-debian/</link>
		<comments>http://martin-grandrath.de/2008/05/remote-desktop-per-vnc-mit-debian/#comments</comments>
		<pubDate>Thu, 08 May 2008 12:35:18 +0000</pubDate>
		<dc:creator>Martin Grandrath</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Netzwerk]]></category>
		<category><![CDATA[Remote Desktop]]></category>
		<category><![CDATA[ssh]]></category>
		<category><![CDATA[VNC]]></category>

		<guid isPermaLink="false">http://www.martin-grandrath.de/?p=44</guid>
		<description><![CDATA[Ich betreue diverse Desktop-Computer von Anwendern, die (wie soll ich sagen) &#187;unbedarft&#171; in Sachen PC-Bedienung sind.  Daher kommt es bisweilen vor, dass mich Anfragen erreichen, die nur schwer oder gar nicht per E-Mail oder Telefon aus der Ferne zu beantworten sind.  Aus diesem Grund habe ich nach einer Möglichkeit gesucht, mir bei Bedarf [...]]]></description>
			<content:encoded><![CDATA[<p>Ich betreue diverse Desktop-Computer von Anwendern, die (wie soll ich sagen) &raquo;unbedarft&laquo; in Sachen PC-Bedienung sind.  Daher kommt es bisweilen vor, dass mich Anfragen erreichen, die nur schwer oder gar nicht per E-Mail oder Telefon aus der Ferne zu beantworten sind.  Aus diesem Grund habe ich nach einer Möglichkeit gesucht, mir bei Bedarf den Desktop des jeweiligen Anwenders auf meinen Bildschirm zu holen.</p>
<p>Das GNOME-Environment bringt zwar schon eine entsprechende Funktion mit, die den eigenen Desktop für einen Zugriff von außen freigibt, diese basiert aber leider auf &raquo;reinem&laquo; VNC, d.h. die Daten der Verbindung werden unverschlüsselt übertragen.  In einem LAN mag das gehen, für die Übertragung im Internet habe ich nach einer verschlüsselten Variante gesucht.</p>
<p>Letztlich habe ich mich dafür entschieden, eine VNC-Verbindung über ssh zu tunneln.  NX habe ich mir zwar auch angesehen, der Client unterstützt aber leider keine Pubkey-Authentifizierung und war auch sonst in der Bedienung eher umständlich.  Das System auf beiden Seiten ist jeweils Debian GNU/Linux &raquo;Etch&laquo; und so geht es:</p>
<p><span id="more-44"></span></p>
<h3>1. ddclient</h3>
<p>Zunächst muss dafür gesorgt werden, dass man den zu betreuenden Rechner auch erreichen kann.  Sofern dieser keine statische IP-Adresse hat, muss man auf Dienste wie z.B. DynDNS oder easyDNS ausweichen.</p>
<p>Ist der betreffende Rechner direkt mit dem Internet (ohne Router) verbunden, gibt es hier keine Hürden:</p>
<pre class="code"># aptitude install ddclient</pre>
<p> installiert <code>ddclient</code>, das sich mit einer ganzen Reihe von Diensten verwenden lässt.  Debconf fragt direkt nach allen relevanten Konfigurationsparametern, die man später wie gewohnt durch den Aufruf von <code>dpkg-reconfigure ddclient</code> noch ändern kann. <code>ddclient</code> meldet dann die aktuelle IP-Adresse an den jeweiligen Dienst, sobald eine Internetverbindung hergestellt wird.</p>
<p>Ein wenig komplizierter wird es, wenn ein Router ins Spiel kommt.  In diesem Fall muss sich nämlich dieser um das Update beim DNS-Dienst kümmern &#8212; ob der jeweilige Router dies kann, ist der entsprechenden Dokumentation zu entnehmen.  Darüber hinaus muss noch ein <em>Port Forwarding</em> eingerichtet werden, d.h. alle Verbindungen auf einen Port am Router werden zu einem Port eines der angeschlossenen Rechner weitergeleitet.  Auch hierfür sei auf die Dokumentation des Herstellers verwiesen.</p>
<h3>2. ssh</h3>
<p>Sofern noch nicht vorhanden, muss auf dem Zielrechner ein ssh-Server installiert werden:</p>
<pre class="code"># aptitude install openssh-server</pre>
<p>Aus Sicherheitsgründen sollte auf jeden Fall der Login für root gesperrt und auch Passwort-Logins deaktiviert werden.  Diese Zeilen müssen dafür in <code>/etc/ssh/sshd_config</code> stehen:</p>
<pre class="code">PermitRootLogin no
PasswordAuthentication no
UsePAM no</pre>
<p>Als nächstes ist ein Schlüsselpaar zu erzeugen und dessen öffenlicher Teil den autorisierten Schlüsseln des zu betreuenden Benutzerkontos hinzuzufügen:
<pre class="code">$ ssh-keygen -t dsa -f /path/to/id_file
# cat /path/to/id_file &gt;&gt; /home/username/.ssh/authorized_keys</pre>
<p>Den geheimen Teil des Schlüssels sollte man auf keinen Fall auf dem PC des Anwenders zurücklassen!  Die Gefahr, dass der Schlüssel und damit der Zugang zu dem Rechner in Hände gerät, in die er nicht gehört, ist groß.  Am besten erzeugt man sich ein entsprechendes &raquo;Support&laquo;-Schlüsselpaar zu Hause und nimmt es auf einem USB-Stick mit.</p>
<h3>3. VNC</h3>
<p>Als letztes muss noch der VNC-Server installiert werden:
<pre class="code"># aptitude install x11vnc</pre>
<p>Als letztes muss noch ein Passwort für diesen vergeben werden.  Dazu füht man im Kontext des zu betreuenden Nutzers folgenden Befehl aus:
<pre class="code">$ x11vnc -storepasswd ~/.vnc/passwd</pre>
<p>Das Passwort ist wichtig, da sonst ein Zugriff auf den VNC-Server durch andere Benutzer, die auf dem gleichen PC angemeldet sind, möglich wäre.</p>
<p>Damit ist die Konfiguration abgeschlossen und man kann sich mit dem Rechner verbinden.</p>
<h3>4. Eine Verbindung aufbauen</h3>
<p>Wir befinden uns jetzt wieder am eigenen PC und möchten den Desktop unseres Nutzers auf unseren Monitor holen.  Dazu wird zunächst der VNC-Server auf dem entfernten Rechner gestartet und dessen Port (5900) auf (den eigenen) localhost umgeleitet:
<pre class="code">$ ssh -C -i /path/to/id_file -L 5900:localhost:5900 USER@HOST "x11vnc -localhost -display :0 -rfbauth ~/.vnc/passwd"</pre>
<p>Zur Erklärung:</p>
<ul>
<li><code>-C</code> komprimiert die übertragenen Daten</li>
<li><code>/path/to/id_file</code> muss ersetzt werden durch den Pfad zum privatekey</li>
<li><code>-L 5900:localhost:5900</code> leitet Port 5900 des entfernten Rechners auf Port 5900 von localhost um</li>
<li><code>USER</code> und <code>HOST</code> sind durch den Benutzernamen und den (dynamischen) Hostnamen zu ersetzen</li>
<li>Der Rest der Zeile ist das Kommando, das auf dem entfernten Rechner ausgeführt werden soll: starten des VNC-Servers und Bereitstellung des Displays <code>:0</code> auf localhost</li>
</ul>
<p>Das Ergebnis sollte eine Meldung sein, dass der VNC-Server erfolgreich gestartet wurde und auf Verbindungen wartet.</p>
<p>Nun kann man sich mit einem VNC-Client der Wahl (z.B. vncviewer) am Server anmelden:
<pre class="code">$ vncviewer localhost</pre>
<p>Nach Eingabe des Passwortes ist man nun mit dem Desktop des entfernten PCs verbunden.</p>
<h3>Noch ein Hinweis</h3>
<p><strong>Ich möchte ausdrücklich darauf hinweisen, dass selbstverständlich das Einverständnis des jeweiligen Benutzers vorliegen muss, bevor man sich mit dessen Computer verbindet!</strong></p>
]]></content:encoded>
			<wfw:commentRss>http://martin-grandrath.de/2008/05/remote-desktop-per-vnc-mit-debian/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

