• In diesem Bereich findet ihr Tutorials und Reviews. Die Forenrechte zur Erstellung neuer Themen sind hier eingeschränkt, da Problemdiskussionen bitte in den übrigen Forenbereichen auf Apfeltalk zu führen sind. Wer ein Tutorial oder Review einstellen möchte, kann im Unterforum "Einreichung neuer Tutorials" ein neues Thema erstellen. Die Moderatoren verschieben den Beitrag dann in den passenden Bereich.
  • Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Sichere Verbindung bei offenem Hotspot/Zensurumgehung

zeno

Lane's Prinz Albert
Registriert
05.11.05
Beiträge
4.894
Ich habs in einem anderem Thread schon beschrieben, aber ich denke das Thema ist recht komplex, das verdient einen eigenen.

Unsere Ausgangsposition

  • Wir surfen auf einem offenem Hotspot und wollen nicht das HinzundKunz unsere Daten abhören.
  • Wir gehen in einem Land online was unseren Internetzugang zensiert
  • Wir haben eine UMTS Flatrate, aber unser Provider rechnet alle Bilder in ein gruseliges Format runter.

Unser Lösungsweg

Wir schicken unseren Datenverkehr durch einen sicheren Tunnel über einen SSH Server und können wohin surfen wo wir wollen, können nicht so leicht vom Tischnachbarn mit der dunklen Sonnenbrille abgehört werden, sehen endlich wieder Bilder ohne raten zu müssen was wir eigentlich sehen.
ABER: Wir wollen nur die lokalen Sachen umgehen, bis zur unsererem SSH Server wird alles verschüsselt laufen, aber ab dort, werden alle Anfragen wieder unverschlüsselt (ausser die verschlüsselten natürlich ;)) durchs Web gejagt.

Voraussetzung

Voraussetzung ist das ihr auf irgend einen Server SSH Zugriff habt ein VServer mit Shellzugriff oder ein eigener dedizierter Server.
Es gibt im Internet auch ein paar Anbieter bei denen ihr so etwas umsonst kriegt.*
ABER: Nicht einfach losziehen und sich denken, das isses das mag ich haben ich hol mir jetzt nen VServer, die kosten ja nichts mehr. Das solltet ihr ohne euch vorher in Linux/UNIX eingearbeitet zu haben nicht machen, so ein VServer will auch mit Updates versorgt werden - nicht das er euch nach ner Zeit als Spamschleuder interessante Viagraangebote unterbreiten wird.

Und los gehts

Erstmal ab ins Terminal und folgenden Befehl eingeben:

Code:
ssh -N -q -T -f -D 7070 [email protected]

Das öffnen einen SSH Tunnel zu deinem Server. Wenn dein SSH Server auf nem anderem Port liegt, dann noch -p12345 anhängen, oder wie auch immer die Portnummer ist.

Wenn der Befehl abgesetzt ist fragt ssh wie gewohnt nach eurem Passwort und verschwindet dann in den Hintergrund.

Dann noch kurz zu dem ganzen Befehl:

  • -N sagt ssh das wir keinen Remote Befehl ausführen wollen, wir wollen ja nur ein paar Pakete weiterleiten
  • -q sagt ssh das es ruhig sein soll und uns nicht mit irgendwelchen Informationen volltexten soll
  • -T pseudo tty brauchen wir auch nicht
  • -f schickt ssh in den Hintergrund, wir brauchens ja nicht mehr zur direkten Eingabe
  • -D 7070 sorgt dafür das wir nen Port bei uns auf dem Rechner öffnen den wir ansprechen können.

Da das jetzt das erste mal ist wo wir das ausprobieren schauen wir mal schnell ob alles geklappt hat.

Code:
zeno $ ps x | grep ssh

Als Resultat sollten wir folgendes in der Art kriegen:

Code:
 1865  ??  Ss     0:00.00 ssh -N -q -T -f -D 7070
 1875  p2  S+     0:00.01 grep ssh

Okay, wir sehen ssh läuft im Hintergrund und lauscht auf unsere Anfragen.

Wenn wider erwarten etwas schief gegangen ist, also nichts angezeigt worden ist oder wir nicht mal nach dem Passwort gefragt wurden nehmen wir den -q Parameter raus und versuchen es noch einmal. Spätestens jetzt sollten wir Informationen kriegen die uns sagen warum etwas nicht geklappt hat.

Mir reicht der Tunnel im Firefox

Jetzt kommt der spannende Teil, wir starten mal den Firefox und gehen zu den Einstellungen -> Erweitert -> Netzwerk -> Einstellungen.
Da tragen wir jetzt bei SOCKS-Host localhost ein und bei Port 7070, dann bestätigen wir das mit OK und gehen raus aus den Einstellugen.
Das sollte dann so aussehen:

Verbindungs-Einstellungen-20070907-011616.png


Um zu verhindern das Firefox DNS Abfragen über die "normale" Verbindung macht tippen wir in die Adresszeile about:config ein. Dann geben wir bei Filter network.proxy ein und machen dann einen Doppeklick auf network.proxy.socks_remote_dns. Sollte dann folgendermaßen aussehen:

about_config_-_Mozilla_Firefox-20070907-013425.png


Jetzt versuchen wir mal eine gesperrte Seite anzusurfen und hoffen das alles geklappt hat. ;)

Ich will das volle Programm

Firefox zum sicheren surfen ist ja ganz nett, aber was ist mit unseren ICQ Gesprächen oder wir mögen Firefox einfach nicht und benutzten lieber Safari? Okay, dann gehen wir mal in die Systemeinstellungen in die Sparte Netzwerk.
Da kann man auch bei Proxies einen Socks Proxy einrichten, das sollte dann so aussehen:
Netzwerk-20070907-011446.png


Gegenfalls kann/muss man bei jedem Programm nachsehen ob eine eigene Konfiguration für Proxies anbietet oder auf die vom System zurückgreift.

Abkürzung für die leichte Wiederverwendung

Damit wir nicht jedesmal den ganzen Befehl mit ssh -N etc etc eingeben müssen, da sich ja eh nichts ändert und wir auch ein wenig bequem sind machen wir jetzt folgendes:
Code:
echo "alias sshtunnel='ssh -N -q -T -f -D 7070 [email protected]'" >> ~/.bash_profile

Damit haben wir uns einen Alias für den Befehl angelegt, beim nächsten Terminalstart reicht uns ein ssht{tab} und Enter und wir werden nach unserem Passwort gefragt und die Sache läuft.

Wenn du die default Shell von Bash auf irgend eine andere geändert hast muss der Spaß evtl. in die .profile oder wie auch immer gepumpt werden, aber das wirst du ja dann selbst wissen. ;)

Probleme die auf uns zukommen könnten
  • Unser Server ist vom Zugangsanbieter geblockt
  • Der Zugangsanbieter verbietet den Zugriff auf den SSH Port (Das können wir auf einem eigenem VServer/Server noch leicht lösen durch das umlegen des Ports, aber das ist halt schwer wenn man keinen Zugriff auf den Server hat ;))
  • Unsere Shell ist tausende Kilometer weit weg - Man muss bedenken das alle Verbindungen erstmal zu der Shell laufen und von da aus erfolgt die eigentliche Verbindung, auch wenn der Server von dem wir was wollen vielleicht in der gleichen Stadt steht. Das kostet Zeit und ist evtl. unangenehm spürbar.
  • Unsere kostenlose Shell ist nicht nur weit weg, sondern auch noch total überlastet und zieht unsere Verbindung noch weiter runter.
  • Unser Chef kriegt raus das wir den Firmenproxy umgehen und mahnt uns ab - Immer abwägen ob es nötig ist ;)

Programmhinweis
Und in der nächsten Folge bauen wir uns noch eine Public Key Authentication und sparen uns das Passwort. Bis dahin.. macht was schönes.. pflanzt Blümchen, verbietet auf euren SSH Servern den root Login, oder ähnliches ;)

* http://www.red-pill.eu/freeunix.shtml - Hier ist eine Liste mit kostenlosen Shell Account Anbietern. Oder einfach nach free shell account suchen.
 
Zuletzt bearbeitet:

pete99

Pomme au Mors
Registriert
21.06.05
Beiträge
874
Nach so einem Tutorial hab ich schon lange gesucht! Wenn ich zu Hause bin probier ichs gleich aus. Sieht einfach aus.

VIELEN DANK!!!

Peter
 

philz

Strauwalds neue Goldparmäne
Registriert
28.04.06
Beiträge
635
Schön, dass sich jemand die Mühe macht und zu diesem Thema eine Anleitung schreibt.

Kennt denn jemand einen vertrauenswürdigen Shell-Anbieter mit min. 10 MBit/s? ;)
 

aureus

Allington Pepping
Registriert
14.08.05
Beiträge
192
Danke für dein Tutorial. Das ist in meinen Augen definitiv die einfachste Lösung, der Server ist ja sowieso da.
 

phueghy

Jamba
Registriert
25.07.07
Beiträge
56
Hi,

vielleicht noch erwähnenswert (insbesondere bei Verbindungen aus öffentlichen Hotspots, auf die diese Anleitung ja abzielt):

beim Verbinden immer brav die Keys überprüfen. Sollte der SSH-Client melden, dass der Host-Key sich geändert hat, kann es sein, dass der "böse Tischnachbar" nicht nur lauscht, sondern aktiv dazwischenfunkt. Wer dann ohne nachzudenken sein Passwort eingibt, kann nicht blos abgehört werden, sondern der Account auf dem SSH-Server ist auch kompromittiert.

Just my 2cts.

Viele Grüße, phueghy