Τρίτη, Ιουνίου 07, 2011

SSH tunneling για ζόρικα hotspots

Έστω ότι είσαι out and about με το laptop παραμάσχαλα. Βρίσκεις ένα WiFi hotspot στο οποίο όμως 1) δεν περνάει VPN, 2) δεν θέλεις να έχεις μη κρυπτογραφημένα connections.

Οφείλεις να έχεις προετοιμαστεί. Οφείλεις να έχεις στήσει στο σπίτι (ή σε άλλο μέρος που εμπιστεύεσαι) έναν ssh server. Μη ξεχάσεις να ανοίξεις το firewall και να κάνεις το ssh port (22) forward στον ssh server. Βάλε κι ένα dyndns για να βρίσκεις τον server σου χωρίς να μαντεύεις IP.

Όταν λοιπόν είσαι στο laptop σου και βρίσκεις το εν λόγω hotspot, ανοίγεις κονσόλα και δίνεις
ssh -D 5000 myserver.dyndns.com

Μετά, πας στα network proxy settngs του OS σου και σετάρεις τον SOCKS proxy σε address:localhost και port:5000.

Έτοιμος. Όλη σου η κίνηση περνάει κρυπτογραφημένη από το SSH tunnel και βγαίνει στο internet από τον SSH server σου. Η ταχύτητα μπορεί να είναι λίγο μικρότερη γιατί το upload του server σου γίνεται το bottleneck.

Αυτό βέβαια με την προϋπόθεση ότι το hotspot επιτρέπει συνδέσεις στο port 22 (στο οποίο δουλεύει το ssh). Για να μην έχω αυτό το πρόβλημα, έχω βάλει τον ssh server να ακούει σε port 22 KAI 443. Η 443 είναι του HTTPS και είναι απίθανο να βρείτε hotspot που να εμποδίζει connections σε αυτή την πόρτα. Βέβαια, η λύση αυτή προϋποθέτει ότι ο ssh server δεν έχει https σελίδες.

Ακολούθως, η εντολή για την δημιουργία του ssh tunnel γίνεται:
ssh -D 5000 myserver.dyndns.com -p 443

Μη ξεχάσεις να βγάλεις την ρύθμιση του SOCKS proxy όταν τελειώσεις με την όλη ιστορία, γιατί το laptop σου δεν θα συνδέεται πουθενά αλλού μέχρι να ξανακάνεις ssh tunnel.

2 σχόλια:

saperduper είπε...

(μαλλον ηθελες να γραψεις 22 αντι για 80)

dtsomp είπε...

Σωστότατος, το διόρθωσα.