Pages

Friday, November 18, 2011

Fun Project: Vodafone Femtocell στο Εξωτερικό

Disclaimer: Τα παρακάτω σχεδόν σίγουρα παραβιάζουν το EULA με τη Vodafone GR. Δεν έχω σκοπό να κάνω κατάχρηση της υπηρεσίας, τα αναφέρω πιο πολύ για πληροφοριακούς σκοπούς, και γιατί ήταν εν τέλει ένα διασκεδαστικό geek project.

Ένα από τα πιο ενδιαφέροντα προϊόντα της Vodafone είναι το femtocell, του οποίου το consumer όνομα είναι Vodafone Full Σήμα. Είναι μια συσκευή που συνδέεται στο internet (κουμπώνει με ethernet πάνω σε router) και δίνει 100% 3G σήμα Vodafone στο γύρω χώρο. Απευθύνεται σε άτομα που μένουν σε χώρο που δεν έχει καλό (ή καθόλου) σήμα η Vodafone. Έτσι αντί να συνδέεται το κινητό με μια κεραία της Vodafone μακριά, συνδέεται τοπικά στο femtocell και στη συνέχεια τα δεδομένα (φωνή+data) γίνονται route μέσω internet στο δίκτυο της Vodafone. (Λειτουργεί μόνο για νούμερα που είναι δηλωμένα στη Vodafone για το εκάστοτε femtocell).

Χρησιμοποιούσα το σύστημα για αρκετό καιρό στην Ελλάδα. Τις τελευταίες μέρες όμως που βρίσκομαι στην Αγγλία σκέφτηκα το εξής: Τι θα γίνει αν πάρω το femtocell και το συνδέσω στο router μου στην Αγγλία? Ίσως να μπορώ να δημιουργήσω ένα μικρό χώρο με σήμα Vodafone GR και έτσι να καλώ από το κινητό μου στην Ελλάδα σαν να ήταν τοπική η κλήση.

Μια και το femtocell είναι φτιαγμένο να λειτουργεί πχ σε υπόγεια που δεν υπάρχει καθόλου σήμα κινητής, η μόνη του επικοινωνία με τον έξω κόσμο είναι το internet. Οπότε υπέθεσα ότι δεν μπορεί να γνωρίζει το femtocell αν βρίσκομαι σε ένα υπόγειο στην Ελλάδα ή σε ένα στην Αγγλία (ή οπουδήποτε στον κόσμο).

Έφερε λοιπόν το femtocell στην Αγγλία, το συνέδεσα στο router, αλλά δεν δούλεψε.

Σκέφτηκα ότι προφανώς κάνουν κάποιον έλεγχο ώστε η IP που παίρνει το femtocell να είναι ελληνική (ή, πιο σωστά, το routing να γίνεται αποκλειστικά σε ελληνικά hops). Για να ξεπεραστεί αυτό το θέμα, έπρεπε να αναγκάσω το femtocell να πάρει ελληνική IP.

Εκεί σκέφτηκα να χρησιμοποιήσω VPN (έχω λογαριασμό σε ελληνικά πανεπιστήμια), το οποίο ουσιαστικά βάζει virtually έναν υπολογιστή στο "τοπικό" δίκτυο μιας εταιρίας ή πανεπιστημίου. Αυτό είναι εύκολο να γίνει για έναν υπολογιστή διότι μπορεί να τρέξει το κατάλληλο software, αλλά δεν μπορεί να γίνει στο femtocell διότι δεν έχω σαν χρήστης καμία πρόσβαση σε αυτό (πχ κάποιο web interface).

Για να το πετύχω αυτό σκέφτηκα να χρησιμοποιήσω έναν router που να τρέχει DD-WRT, ένα ανοιχτό firmware που μπορεί να μπει σε διάφορους routers και να τους δώσει έξτρα δυνατότητες.

Όλως τυχαίως, υπάρχει μια έκδοση του DD-WRT που τρέχει OpenVPN. Δηλαδή μπορεί ο ίδιος ο router να λειτουργήσει σαν VPN client και να συνδεθεί να την Ελλάδα. Έτσι, για ότι συσκευή (PC, femtocell κτλ) συνδεθεί πάνω σε αυτόν τον router, θα στέλνονται τα πακέτα του απευθείας στην Ελλάδα. Ίσως έτσι και το femtocell να "ξεγελαστεί" νομίζοντας πως βρίσκεται στην Ελλάδα και να λειτουργήσει κανονικά!

Επίσης όλως τυχαίως, είχα ένα router Linksys WRT54G που τρέχει φανταστικά το DD-WRT και ήταν έτοιμος για δοκιμές.

Στο σημείο αυτό ήταν που έφαγα την πιο πολλή ώρα μια και δεν είχα εμπειρία σε scripting για το DD-WRT, αλλά να 'ναι καλά ο gandr που με βοήθησε στα δύσκολα.

Δεν θα μπω σε λεπτομέρειες για το κομμάτι αυτό, πρώτον γιατί δε θέλω να αντιγραφεί εύκολα, και δεύτερο γιατί τα VPN settings του κάθε χρήστη είναι διαφορετικά. Πάντως η βασική ιδέα είναι πως το configuration file (και τα certificates) ενός OpenVPN client (που παρέχονται από τον VPN provider) πρέπει να περαστεί σαν startup script στο DD-WRT (μερικές πληροφορίες για αυτό υπάρχουν εδώ, εδώ και εδώ).

Το θέμα είναι πως όταν όλα γίνουν σωστά, ο router συνδέεται αυτόματα στο ελληνικό VPN, και ότι συσκευή μπαίνει πάνω του γίνεται route μέσω Ελλάδας (βέβαια τα πακέτα σε physical layer περνάνε από τον Αγγλικό ISP όπου πρέπει να συνδέεται ο DD-WRT, αλλά σε network επίπεδο δε το καταλαβαίνουν αυτό - αυτή είναι η μαγεία των δικτύων).

Για να μην τα πολυλογώ, όταν το Vodafone femtocell κούμπωσε πάνω σε αυτό το σωστά σεταρισμένο VPN router, όλα δούλεψαν ρολόι! Το femtocell "ξεγελάστηκε", νομίζοντας πως είναι στην Ελλάδα, και μου έδωσε κανονικά 3G σήμα της Vodafone GR. Έτσι το iPhone, μέσα σε όλα τα υπόλοιπα Αγγλικά δίκτυα, είδε και συνδέθηκε στο ελληνικό:






Ένα pocket Ελλάδας στο εξωτερικό λοιπόν!


Οι δυνατότητες που επιτρέπει αυτό το "hack"είναι ενδιαφέρουσες. Πέρα από τις κλήσεις για Ελλάδα που πια μπορούν να χρεώνονται ως τοπικές ακριβώς σαν να βρισκόμουνα σπίτι μου στη Λαμία, το σύστημα αυτό (VPN router + femtocell) θα δουλέψει οπουδήποτε στον κόσμο. Έτσι, μπορώ πχ να έχω πλάνο 3G δεδομένων με τη Vodafone, και να το χρησιμοποιώ όταν ταξιδεύω, αντί να πληρώνω τα αστεία roaming fees (συνήθως 5-10 EUR ανά MB).

Πώς θα μπορούσε η Vodafone να αποτρέψει αυτή τη χρήση του femtocell? Μέσω internet δεν φαίνεται να υπάρχει τρόπος να γνωρίζουν ότι το femtocell δεν βρίσκεται στην Ελλάδα. Η μόνη λύση φαίνεται να είναι οι πληροφορίες για τα γειτονικά towers και δίκτυα που - συνήθως - μεταφέρονται σαν πληροφορία στο δίκτυο της Vodafone. Αυτό από μόνο του δεν είναι λόγος να γίνει alert στο σύστημα - πχ όσοι βρίσκονται στα σύνορα της Ελλάδας μπορεί να λαμβάνουν και τα δίκτυα της γειτονικής χώρας, αλλά συνεχίζουν να συνδέονται στα ελληνικά.

Οπότε θα πρέπει να υπάρχει ένα if ώστε όταν τα δίκτυα αυτά είναι γεωγραφικά μακριά από την Ελλάδα, τότε να μην συνδέεται το femtocell. Αυτό θα μπορούσε να γίνει είτε από τις πληροφορίες για τις θέσεις των γειτονικών κεραιών, είτε από τα ονόματα των δικτύων.

Categories