IP/Ethernet Tunnel Using Linux: Tunnel με το SSH
Description: This is issue 33 of Magaz, the Hellenic LinuxMagazine
Keywords: magaz hellenic greek hellas greece hellug linux magazine

Magaz, The Greek Linux Magazine
Τεύχος #33
Περιληπτικά Περιεχόμενα Αναλυτικά Περιεχόμενα Mirrors Links Πληροφορίες Συντάκτες Αναζήτηση Επικοινωνία
Επόμενο Προηγούμενο Περιεχόμενα ### 3. Tunnel με το SSH Το ssh είναι από τα πιο γνωστά πλέον προγράμματα. Είναι για όλους σχεδόν ένα από τα πιο χρήσιμα εργαλεία για remote access. Το αγαπημένο μας ssh μπορεί να κάνει και κάποιες άλλες δουλειές, όπως να κάνει port forwarding ή να γίνει socks 4 proxy, διοχετεύοντας όλο το traffic από το τοπικό μηχάνημα στο απομακρυσμένο. ### 3.1 Socks 4 proxy Για να γίνει το ssh ένας μικρός τοπικός socks 4 proxy το μόνο που έχετε να κάνετε είναι:
    ssh -D 1080 my.linux.server.gr
Τώρα όσο είμαστε συνδεδεμένοι στο απομακρυσμένο μηχάνημα my.linux.server.gr θα παρατηρήσουμε και την port 1080 στο μηχάνημά μας να ακούει για συνδέσεις. Το option -D ορίζει πως το τοπικό μηχάνημα θα εξυπηρετεί συνδέσεις στην port 1080. Άρα, αν ρυθμίσουμε τον φυλλομετρητή μας να χρησιμοποιεί proxy ή τον αγαπημένο μας IRC client να χρησιμοποιεί την port 1080 σαν proxy θα παρατηρήσουμε πως όλες πλέον οι συνδέσεις μας περνούν μέσα από το secure shell που έχουμε. ### 3.2 Port Forwarding Ένα άλλο option που έχει το ssh είναι να κάνει port forwarding από και προς το απομακρυσμένο μηχάνημα. Εδώ υπάρχουν δύο περιπτώσεις. #### Να κάνει κάποιος forward μία port από το τοπικό μηχάνημα μέσω του ssh. Για να γίνει αυτό το μόνο που πρέπει να κάνουμε είναι :
    ssh -L 1080:uk.irc.gr:6667 my.linux.server.gr
όπου στην προκειμένη περίπτωση, ανοίγει μια port στο τοπικό μηχάνημα και στο παράδειγμά μας η port 1080 και ότι σύνδεση γίνει εκεί μεταφέρεται αμέσως μέσω του ssh και κάνει σύνδεση στο server uk.irc.gr στην port 6667. Με το συγκεκριμένο παράδειγμα μπορούμε να ανοίξουμε τον αγαπημένο μας IRC Client και να δώσουμε σαν server το local μηχάνημα και port την 1080
    /server 127.0.0.1 1080
και να συνδεθούμε στο GRNet και συγκεκριμένα στον server uk.irc.gr. Ομοίως, μπορούμε να κάνουμε το ίδιο και για ένα web site ή ένα ftp server. Προσωπικά βρήκα πολύ χρήσιμο το option αυτό όταν ο διαχειριστής του proxy της εταιρίας σου επιτρέπει να κάνεις ssh άλλα δεν επιτρέπει τις port για να κάνει κανείς IRC. #### Να κάνει κάποιος forward μία port από το απομακρυσμένο μηχάνημα στο τοπικό μηχάνημα ή σε κάποιο άλλο στο τοπικό δίκτυο. Αυτό θα ήτανε ιδιαίτερα χρήσιμο αν θέλουμε να συνδεθεί κάποιος προσωρινά στο μηχάνημα μας ή σε κάποιο μηχάνημα στο τοπικό μας δίκτυο. Με την εντολή:
    ssh -R 5100:192.168.0.3:80 my.linux.server.gr
- ανοίγουμε την port 5100 στο μηχάνημα my.linux.server.gr και του ορίζουμε πως θα ανακατευθύνει ότι συνδέσεις γίνονται εκεί μέσω του ssh στο μηχάνημα 192.168.0.3 και στην port 80 (που είναι οι web υπηρεσίες συνήθως). Έν ολίγοις αν στο μηχάνημα μας 192.168.0.3 έχουμε κάποιο web server όποιος χρήστης πάει να δει το site http://my.linux.server.gr:5100/ στην πραγματικότητα θα δει τον web server μας. Σημείωση: Για να ανοίξουμε ports μικρότερα από την port 1024 θα πρέπει να έχουμε root access στα αντίστοιχα μηχανήματα, δηλαδή στο 3.2.2 πρέπει να έχουμε root access στο απομακρυσμένο μηχάνημα και στην ενότητα 3.2.1 θα πρέπει να έχουμε root access στο μηχάνημα το οποίο βρισκόμαστε. ### 3.3 Και αν δεν μπορούμε να κάνουμε ssh; Σε πολλές περιπτώσεις όμως, για πολλούς και διάφορους λόγους, κάποιος "κακός" διαχειριστής δεν μας αφήνει να έχουμε πρόσβαση με secure shell (ssh), και περνάει όλη την κίνηση του δικτύου προς το Internet από κάποιο proxy. Ευτυχώς όμως υπάρχουν εργαλεία που μας επιτρέπουν να μπορέσουμε να "προσπεράσουμε" τον proxy. Τέτοια εργαλεία είναι: το proxytunnel, το corkscrew, το desproxy, το Http Proxy και άλλα. Ύστερα από αρκετές δοκιμές εμένα μου άρεσε περισσότερο και μου δούλεψε αρκετά έως πολύ εύκολα το proxytunnel που δεν χρειάζεται καν root access, μπορείς να το έχεις στο home directory και υποστηρίζει και proxy authentication. #### Εγκατάσταση - ρύθμιση Μπορείτε να κατεβάσετε το πρόγραμμα από το http://proxytunnel.sf.net/ και να το εγκαταστήσετε πολύ εύκολα, είτε να κατεβάσετε binaries. Ίσως η ρύθμισή του να φανεί λιγάκι περίεργη αλλά είναι αρκετά εύκολη. Τα μόνα που έχετε να κάνετε είναι: Να δημιουργήσετε τον κατάλογο /.ssh στο home directory σας (mkdir /.ssh) Να δημιουργήσετε το αρχείο config (touch /.ssh/config) Να επεξεργασθείτε το αρχείο config με τον αγαπημένο σας επεξεργαστή κειμένου (πχ. vi, vim, mcedit, pico, joe ή όποιον προτιμάτε) και τέλος να προσθέσετε την γραμμή
      Host foobar

      ProtocolKeepAlives 30

      ProxyCommand /path/to/proxytunnel -g proxy.customer.com
      -G 8080 -u user -s password -d my.linux.server.gr -D
      443
Όπου: * proxy.customer.com είναι ο proxy server (μπορεί να χρησιμοποιηθεί και η IP του server) * 8080 είναι η port του proxy * user είναι το username που χρησιμοποιείτε για τον proxy * password είναι το password για τον proxy * my.linux.server.gr είναι το μηχάνημα στο οποίο θέλετε να συνδεθείτε * και 443 είναι η port στο μηχάνημα αυτό (η port για το ssh συνήθως είναι η 22, αλλά μπορούμε να "σηκώσουμε" ssh server σε όποια port θέλουμε. Εδώ χρησιμοποιώ την 443 γιατί σε αυτήν την port επιτρέπει ο proxy secure connections, επειδή η 443 είναι η port για https) Είναι πλέον έτοιμο το proxytunnel να το χρησιμοποιήσετε. Για να το χρησιμοποιήσουμε απλά γράφουμε:
    ssh foobar
και το πρόγραμμα κάνει τα υπόλοιπα. Αν όλα πάνε καλά και είναι σωστές οι ρυθμίσεις θα συνδεθεί στο my.linux.server.gr χωρίς κανένα πρόβλημα. Επόμενο Προηγούμενο Περιεχόμενα