Το προφίλ μας στο Google Plus
20

OpenVPN Access Server, χωρίς βάσανα και πόνο!

Η παρουσία ενός OpenVPN server στο cloud αποτελεί άριστη λύση για την προστασία της ιδιωτικότητάς μας στο ίντερνετ. Όμως η σωστή ρύθμιση ενός τέτοιου server χρειάζεται μεγάλη προετοιμασία, τα επιμέρους βήματα σίγουρα δεν μπορούν να χαρακτηριστούν ως προφανή, ενώ γενικά το όλο πρότζεκτ δεν είναι ό,τι πιο απλό για τους νεοφερμένους στη γραμμή εντολών του Unix, στην κρυπτογραφία δημόσιου κλειδιού και στη λογική των Αρχών Πιστοποίησης. Ευτυχώς, τα πράγματα δεν χρειάζεται να είναι *τόσο* δύσκολα.

Σε αναλυτικό άρθρο που δημοσιεύεται στο site του περιοδικού δείχνουμε πώς στήνουμε έναν VPN server με τη βοήθεια του OpenVPN, σε ένα εικονικό ή φυσικό σύστημα με Ubuntu Server. Όπως ίσως θα γνωρίζετε, το λεγόμενο Community Edition του OpenVPN, αυτό δηλαδή με το οποίο καταπιανόμαστε στο προαναφερθέν άρθρο, παρέχεται χωρίς κανέναν περιορισμό. Η χρήση του όμως προϋποθέτει ένα σχετικά υψηλό επίπεδο τεχνογνωσίας, ενώ και η προετοιμασία καθώς και η διαχείριση του OpenVPN server δεν είναι εργασίες που στο Λευκαντί Ευβοίας θα χαρακτηρίζαμε ως no-brainers.

Για όλους όσοι επιθυμούν να ξεκινήσουν γρήγορα με τον δικό τους VPN server και ίσως ν’ αφήσουν την κατανόηση της παρασκηνιακής λογικής γι’ αργότερα, υπάρχει κι ο ωραιότατος OpenVPN Access Server. Πρόκειται για μια εκδοχή του OpenVPN η οποία εκτός από τον βασικό server παρέχει εύχρηστο web panel διαχείρισης, καθώς και μια σειρά από clients για Windows, OS X, Android και iOS (υπάρχει βεβαίως και δυνατότητα σύνδεσης από Linux, BSD και άλλα συστήματα Unix). Η OpenVPN Technologies Inc, η εταιρεία πίσω από τα Community Edition και Access Server του OpenVPN, τις δύο αυτές εκδοχές τις παρέχει δωρεάν αλλά στην Access Server επιτρέπει την ταυτόχρονη σύνδεση δύο μόνο *διαφορετικών* clients. Για περισσότερους ζητά την αγορά κατάλληλου license. Αν πάντως μιλάμε για μη-επαγγελματικό σενάριο χρήσης κι ενδιαφερόμαστε για περισσότερες από δύο συσκευές (clients), υπάρχει τρόπος να μην πληρώσουμε: Αρκεί να έχουμε ένα λογαριασμό χρήστη για τον Access Server και γι’ αυτόν να επιτρέψουμε τις ταυτόχρονες συνδέσεις, από διαφορετικές συσκευές. Η λύση σίγουρα δεν είναι ιδανική για ένα εταιρικό περιβάλλον, για μεμονωμένους χρήστες όμως είναι μια χαρά.

Στο υπόλοιπο του άρθρου δείχνουμε, αναλυτικά και βήμα προς βήμα, πώς εγκαθιστούμε και ρυθμίζουμε τον OpenVPN Access Server σε ένα VPS στο cloud, το οποίο τρέχει Ubuntu Server.

Προαπαιτούμενα
Χρειαζόμαστε ένα VPS στο cloud με Ubuntu Server, στο οποίο θα έχουμε πλήρη πρόσβαση μέσω SSH. Στο πλαίσιο του παρόντος άρθρου επιστρατεύσαμε ένα μικρό VPS από τη Digital Ocean με 512MB RAM, 20GB SSD drive και 1ΤΒ δωρεάν bandwidth ανά μήνα. Ως λειτουργικό για το droplet –έτσι ονομάζει η Digital Ocean τα VPS της– επιλέξαμε το Ubuntu Server 14.04 LTS 64bit. Η εταιρεία έχει data centers σε διάφορες γεωγραφικές περιοχές στον πλανήτη και το συγκεκριμένο droplet φιλοξενείται σε data center της Νέας Υόρκης. Το δε κόστος φιλοξενίας είναι $5 ανά μήνα κι αν αποφασίσετε να φτιάξετε και το δικό σας VPS στη Digital Ocean, ξεκινήστε από το http://bit.ly/digocean10off (referal URL) ώστε να κερδίσετε $10 έκπτωση σε credit. Πρακτικά, με το μικρό droplet θα έχετε δύο μήνες δωρεάν.

Φροντίσαμε εξάλλου να έχουμε πρόσβαση στο λογαριασμό ενός απλού χρήστη του VPS μας, μέσω SSH και χωρίς να πληκτρολογούμε password. Ο εν λόγω χρήστης (sub0) έχει τη δυνατότητα να αποκτά δικαιώματα root, με το sudo. Το iptables το ρυθμίσαμε ώστε να επιτρέπονται, βεβαίως, οι συνδέσεις στο TCP port του OpenSSH server, ενώ είχαμε και το fail2ban ενεργό προκειμένου να αντιμετωπίζουμε τα brute force και DoS attacks προς την υπηρεσία του SSH. Περισσότερα για το πώς θα ρυθμίσετε το δικό σας VPS μπορείτε να διαβάσετε εδώ.

Σημειώστε ότι, ανεξαρτήτως του πώς θα ρυθμίσετε το iptables, μετά την εγκατάσταση του OpenVPN Access Server θα προστεθούν αυτόματα οι κατάλληλοι κανόνες ώστε να είναι εφικτή η πρόσβαση στο web panel, βεβαίως και στον ίδιο τον server. Επίσης, θα είναι δυνατή η αναδρομολόγηση της δικτυακής κίνησης των πελατών μέσω του απομακρυσμένου μηχανήματος.

Ενημέρωση 19/11/2015. Χάρη στην έρευνα των αναγνωστών μας lmike και IoannisG (βλ. σχόλια στο παρόν άρθρο) διαπιστώσαμε κι εμείς ότι η Digital Ocean προσφάτως άρχισε να αντιστοιχεί *δύο* διευθύνσεις IP στο eth0, το βασικό network interface των νέων VPS. Η μία από τις διευθύνσεις IP (η πρώτη) είναι προσβάσιμη από το Διαδίκτυο, η δεύτερη όχι. Μετά την εγκατάσταση του OpenVPN Access Server η υπηρεσία θα χρησιμοποιεί τη μη-προσβάσιμη διεύθυνση προκειμένου να δέχεται συνδέσεις στο administrative web panel, με αποτέλεσμα να μη μπορούμε να συνδεθούμε σ’ αυτό. Μία λύση είναι να ακυρώσουμε την αντιστοίχιση αυτής της δεύτερης διεύθυνσης IP για το eth0 του VPS. Προς τούτο, ανοίγουμε με δικαιώματα διαχειριστή το αρχείο /etc/network/interfaces κι από το μπλοκ που αφορά στο eth0 αφαιρούμε τη γραμμή της μορφής “up ip addr add 10.13.0.*/16 dev eth0”. Παράδειγμα: Το υπό συζήτηση μπλοκ σε δικό μας δοκιμαστικό VPS είναι το ακόλουθο

auto eth0
iface eth0 inet static
        address 162.243.245.122
        netmask 255.255.255.0
        gateway 162.243.245.1
        up ip addr add 10.13.0.7/16 dev eth0
        dns-nameservers 8.8.8.8 8.8.4.4

και η γραμμή που πρέπει να αφαιρέσουμε είναι η

up ip addr add 10.13.0.7/16 dev eth0

Μετά την απομάκρυνση της επίμαχης γραμμή αποθηκεύουμε την αλλαγή στο /etc/network/interfaces κι απλά επανεκκινούμε το VPS.

Λήψη και εγκατάσταση του OpenVPN Access Server
Από τον αγαπημένο μας web browser μεταβαίνουμε στο δικτυακό τόπο του OpenVPN και συγκεκριμένα στη σελίδα

https://openvpn.net/index.php/access-server/overview.html

Αυτό που μας ενδιαφέρει είναι το κουμπί Access Server Software Packages, στ’ αριστερά.

Για τον OpenVPN Access Server παρέχονται αυτόνομα πακέτα, κατάλληλα για εγκατάσταση σε μια πληθώρα διανομών Linux. Επιπρόσθετα, διατίθενται VMs και cloud servers με τον Access Server προεγκατεστημένο. Δεν σκοπεύουμε να εγκαταστήσουμε σε VM, ενώ έχουμε ήδη το VPS μας στο cloud. Κάνουμε, λοιπόν, ένα κλικ στο κουμπί Access Server Software Packages.

Για τον OpenVPN Access Server παρέχονται αυτόνομα πακέτα, κατάλληλα για εγκατάσταση σε μια πληθώρα διανομών Linux. Επιπρόσθετα, διατίθενται VMs και cloud servers με τον Access Server προεγκατεστημένο. Δεν σκοπεύουμε να εγκαταστήσουμε σε VM, ενώ έχουμε ήδη το VPS μας στο cloud. Κάνουμε, λοιπόν, ένα κλικ στο κουμπί Access Server Software Packages.

Πατάμε λοιπόν στο κουμπί Access Server Software Packages κι αμέσως φορτώνει η σελίδα για την επιλογή εκδοχής του Access Server, ανάλογα με τη διανομή Linux στην οποία σκοπεύουμε να τον εγκαταστήσουμε. Στο πλαίσιο της παρουσίασής μας ενδιαφερόμαστε για το Ubuntu.

Πακέτα εγκατάστασης του Access Server διατίθενται για όλες τις δημοφιλείς διανομές του Linux. Στο VPS μας τρέχουμε Ubuntu Server, οπότε πατάμε στο κουμπί Ubuntu.

Πακέτα εγκατάστασης του Access Server διατίθενται για όλες τις δημοφιλείς διανομές του Linux. Στο VPS μας τρέχουμε Ubuntu Server, οπότε πατάμε στο κουμπί Ubuntu.

Μετά από κλικ στο κουμπάκι του Ubuntu βλέπουμε ότι έχουμε τέσσερις επιλογές: 32 ή 64bit, για Ubuntu 12 ή 14. Στο VPS έχουμε το Ubuntu Server 14.04 LTS 64bit, οπότε η επιλογή που τώρα μας ενδιαφέρει είναι η τέταρτη: “Ubuntu 14 amd/x86 64-bit”. Δεν θέλουμε βέβαια να κατεβάσουμε το αντίστοιχο πακέτο στον υπολογιστή από τον οποίο εργαζόμαστε, θέλουμε όμως το αντίστοιχο URL. Έτσι, κάνουμε δεξί κλικ πάνω στο “Ubuntu 14 amd/x86 64-bit” κι από το παράθυρο που εμφανίζεται επιλέγουμε την ενέργεια Copy Link ή Copy Link Address ή όπως αλλιώς λέγεται η ενέργεια αντιγραφής URL στον browser μας, τέλος πάντων. Στο πλαίσιο του παραδείγματος, το URL που μόλις αντιγράψαμε είναι το

http://swupdate.openvpn.org/as/openvpn-as-2.0.21-Ubuntu14.amd_64.deb

Στο VPS μας έχουμε Ubuntu Server 14.04 LTS 64bit, συνεπώς κάνουμε δεξί κλικ πάνω στο κουμπί 'Ubuntu 14 amd/x86 64-bit' και επιλέγουμε τη λειτουργία για αντιγραφή URL. Το ίδιο το downloading θα γίνει σε λίγο, αφού πρώτα συνδεθούμε στο VPS.

Στο VPS μας έχουμε Ubuntu Server 14.04 LTS 64bit, συνεπώς κάνουμε δεξί κλικ πάνω στο κουμπί “Ubuntu 14 amd/x86 64-bit” και επιλέγουμε τη λειτουργία για αντιγραφή URL. Το ίδιο το downloading θα γίνει σε λίγο, αφού πρώτα συνδεθούμε στο VPS.

Για τη συνέχεια συνδεόμαστε, μέσω SSH, στο VPS όπου πρόκειται να εγκατασταθεί ο Access Server. Κατεβάζουμε το σχετικό πακέτο πληκτρολογώντας

sub0@defiant:~$ wget http://swupdate.openvpn.org/as/openvpn-as-2.0.21-Ubuntu14.amd_64.deb

Δεν είναι κι άσχημη η ταχύτητα downstream του VPS μας, ε;

Δεν είναι κι άσχημη η ταχύτητα downstream του VPS μας, ε;

Η εγκατάσταση του Access Server επιτυγχάνεται με τη βοήθεια του εργαλείου dpkg και με δικαιώματα root:

sub0@defiant:~$ sudo dpkg -i openvpn-as-2.0.21-Ubuntu14.amd_64.deb

Παρατηρώντας τα μηνύματα που εμφανίζονται κατά την εγκατάσταση του OpenVPS Access Server, παρατηρούμε ότι δημιουργείται ένας νέος λογαριασμός χρήστη με username το openvpn.

Παρατηρώντας τα μηνύματα που εμφανίζονται κατά την εγκατάσταση του OpenVPS Access Server, παρατηρούμε ότι δημιουργείται ένας νέος λογαριασμός χρήστη με username το openvpn.

Η διαδικασία ολοκληρώνεται ταχύτατα και, μεταξύ άλλων, στο σύστημα δημιουργείται ένας νέος λογαριασμός χρήστη με username το openvpn. Πριν συνεχίσουμε οφείλουμε να ορίσουμε ένα ισχυρό password για τον εν λόγω λογαριασμό:

sub0@defiant:~$ sudo passwd openvpn

Καθορίστε ένα πανίσχυρο password. Το δικό μας, π.χ., είναι ένα εντελώς τυχαίο string μήκους 30 χαρακτήρων που συνδυάζει πεζοκεφαλαία, αριθμούς και σύμβολα. Είναι βεβαίως αδύνατο να το θυμόμαστε, οπότε το έχουμε αποθηκευμένο σε ένα ασφαλές μέρος (ως σημείωση στο LastPass).

Για το λογαριασμό με όνομα openvpn οφείλουμε να ορίσουμε ένα *πανίσχυρο* password.

Για το λογαριασμό με όνομα openvpn οφείλουμε να ορίσουμε ένα *πανίσχυρο* password.

Πρώτη σύνδεση
Στη μπάρα διευθύνσεων του browser της προτίμησής μας πληκτρολογούμε

https://διεύθυνση_IP_του_VPS:943

Προσοχή στο πρωτόκολλο, το οποίο πρέπει να είναι “https” κι όχι “http”. Χρειάζεται επίσης να συμπεριλάβουμε το port, μετά την άνω-κάτω τελεία (943). Την πρώτη φορά που θα επισκεφτούμε το web panel του OpenVPN Access Server θα πάρουμε προειδοποίηση για self-signed πιστοποιητικό. Θα το δεχτούμε ως έγκυρο και θα προχωρήσουμε. Δείτε τα ακόλουθα screen shots και διαβάστε τις αντίστοιχες περιγραφές.

Το defiant.gr είναι το domain name του VPS στο οποίο έχουμε εγκατεστημένο τον OpenVPN Access Server μας. Αν δεν έχετε αντιστοιχισμένο domain name στο δημόσιο IP του VPS σας, θα δώσετε απευθείας το IP. Την πρώτη φορά που επιχειρούμε να επισκεφτούμε το web panel του Access Server παίρνουμε προειδοποίηση για self-signed πιστοποιητικό. Το δεχόμαστε ως έγκυρο και μάλιστα φροντίζουμε ώστε ο web browser να το εμπιστεύεται και στο μέλλον.

Το defiant.gr είναι το domain name του VPS στο οποίο έχουμε εγκατεστημένο τον OpenVPN Access Server μας. Αν δεν έχετε αντιστοιχισμένο domain name στο δημόσιο IP του VPS σας, θα δώσετε απευθείας το IP. Την πρώτη φορά που επιχειρούμε να επισκεφτούμε το web panel του Access Server παίρνουμε προειδοποίηση για self-signed πιστοποιητικό. Το δεχόμαστε ως έγκυρο και μάλιστα φροντίζουμε ώστε ο web browser να το εμπιστεύεται και στο μέλλον.

Μετά την αποδοχή του πιστοποιητικού πληκτρολογούμε το όνομα του χρήστη (openvpn) που δημιουργήθηκε κατά την εγκατάσταση του OpenVPN Access Server, καθώς και το password που καθορίσαμε πριν λίγο. Στο drop-down menu δίπλα από το 'Go' επιλέγουμε το 'Login' κι αμέσως κάνουμε κλικ στο κουμπί δεξιά.

Μετά την αποδοχή του πιστοποιητικού πληκτρολογούμε το όνομα του χρήστη (openvpn) που δημιουργήθηκε κατά την εγκατάσταση του OpenVPN Access Server, καθώς και το password που καθορίσαμε πριν λίγο. Στο drop-down menu δίπλα από το “Go” επιλέγουμε το “Login” κι αμέσως κάνουμε κλικ στο κουμπί δεξιά.

Η απλότητα του OpenVPN Access Server σε όλο της το μεγαλείο! Προκειμένου να συνδεθούμε στον server αρκεί να κατεβάσουμε και να εγκαταστήσουμε τον κατάλληλο client για το λειτουργικό σύστημα του υπολογιστή ή της συσκευής που μας ενδιαφέρει. Δεν χρειαζόμαστε ούτε πιστοποιητικά, ούτε ιδιωτικά κλειδιά, ούτε παράξενες κι ακατανόητες ρυθμίσεις: Το μόνο που πρέπει να διαθέτουμε είναι το password του χρήστη openvpn, ώστε να το δώσουμε στον client όταν μας το ζητήσει.

Η απλότητα του OpenVPN Access Server σε όλο της το μεγαλείο! Προκειμένου να συνδεθούμε στον server αρκεί να κατεβάσουμε και να εγκαταστήσουμε τον κατάλληλο client για το λειτουργικό σύστημα του υπολογιστή ή της συσκευής που μας ενδιαφέρει. Δεν χρειαζόμαστε ούτε πιστοποιητικά, ούτε ιδιωτικά κλειδιά, ούτε παράξενες κι ακατανόητες ρυθμίσεις: Το μόνο που πρέπει να διαθέτουμε είναι το password του χρήστη openvpn, ώστε να το δώσουμε στον client όταν μας το ζητήσει.

Η εγκατάσταση του λεγόμενου OpenVPN Connect client για υπολογιστές Windows ή OS X είναι απλούστατη και πραγματοποιείται με διαδοχικά κλικ στον αντίστοιχο installation wizard. Αναλόγως των ρυθμίσεων ασφαλείας στο OS X, σημειώστε ότι προκειμένου να εκτελεστεί ο installer ίσως χρειαστεί η παρέμβασή σας από το System Preferences –> Security & Privacy –> General –> Allow apps downloaded from. Μετά την εγκατάσταση το πρόγραμμα θα είναι έτοιμο για να συνδεθεί στον απομακρυσμένο OpenVPN Access Server και το μόνο που θα πρέπει να γνωρίζουμε είναι το password του χρήστη με username το openvpn. Έχετε κατά νου ότι στα Windows καλό είναι να τρέχετε τον client με δικαιώματα διαχειριστή (δεξί κλικ πάνω στο σχετικό εικονίδιο κι επιλογή του Run as Administrator). Για τη σύνδεση εξάλλου από συσκευή με Android ή με iOS, κατεβάζουμε τη δωρεάν εφαρμογή OpenVPN Connect από το Play Store ή από το Apple Store αντίστοιχα. Εκτός από το password του χρήστη openvpn θα χρειαστούμε και το σωστό connection profile, το οποίο περιγράφεται σε ένα αρχείο ονόματι client.ovpn που λαμβάνουμε από τη σελίδα

https://διεύθυνση_IP_του_VPS:943/?src=connect

με ένα κλικ στο “Yourself (user-locked profile)”. Το συγκεκριμένο αρχείο το κατεβάζουμε κι αν επιθυμούμε να συνδεθούμε στον Access Server από μηχάνημα με Linux ή όταν δεν θέλουμε να χρησιμοποιήσουμε το OpenVPN Connect αλλά ένα διαφορετικό πρόγραμμα σύνδεσης, όπως, π.χ., είναι το Viscosity (βλ. τελευταία ενότητα).

Δοκιμές πριν/μετά
Ένας γρήγορος τρόπος προκειμένου να βεβαιωθούμε ότι βγαίνουμε στο Internet μέσω του απομακρυσμένου OpenVPN Access Server κι όχι μέσω του ISP μας, είναι με δύο διαδοχικές επισκέψεις σε κάποιο από τα sites που αναφέρουν το δημόσιο IP καθώς και τη γεωγραφική μας θέση. Ένα εξ αυτών είναι το https://myiplocation.org.

Χωρίς να συνδεθούμε στον Access Server, από έναν web browser επισκεφτόμαστε τη διεύθυνση https://myiplocation.org. Παρατηρήστε τη διεύθυνση IP καθώς και τη γεωγραφική θέση. Η δεύτερη δεν ανταποκρίνεται στην πραγματικότητα, τουλάχιστον όμως είναι εντός της χώρας.

Χωρίς να συνδεθούμε στον Access Server, από έναν web browser επισκεφτόμαστε τη διεύθυνση https://myiplocation.org. Παρατηρήστε τη διεύθυνση IP καθώς και τη γεωγραφική θέση. Η δεύτερη δεν ανταποκρίνεται στην πραγματικότητα, τουλάχιστον όμως είναι εντός της χώρας.

Αφού συνδεθούμε στον Access Server πηγαίνουμε ξανά στο https://myiplocation.org. Η διεύθυνση IP έχει αλλάξει, το ίδιο και η γεωγραφική μας θέση: για το Internet, φαίνεται ότι έχουμε αμερικάνικη διεύθυνση IP και βρισκόμαστε στο Μανχάταν.

Αφού συνδεθούμε στον Access Server πηγαίνουμε ξανά στο https://myiplocation.org. Η διεύθυνση IP έχει αλλάξει, το ίδιο και η γεωγραφική μας θέση: για το Internet, φαίνεται ότι έχουμε αμερικάνικη διεύθυνση IP και βρισκόμαστε στο Μανχάταν.

Εξ ορισμού, για όσο είμαστε συνδεδεμένοι στον OpenVPN Access Server όλα τα DNS queries περνάνε μέσα από το κρυπτογραφημένο κανάλι που ξεκινά από τον υπολογιστή μας και φτάνει έως το VPS. Έτσι, ο ISP μας αφενός δεν βλέπει το περιεχόμενο των δικτυακών πακέτων που στέλνουμε και λαμβάνουμε (είναι κρυπτογραφημένα), αφετέρου δεν έχει ιδέα για τα sites και τις υπηρεσίες που επισκεπτόμαστε ή προσπελάζουμε. Για να δούμε πώς αλλάζουν οι χρησιμοποιούμενοι name servers *μετά* τη σύνδεσή μας στον Access Server, μπορούμε να κάνουμε δύο διαδοχικές επισκέψεις στο δικτυακό τόπο http://dnsleaktest.com και να τρέξουμε το Standard ή το Extended test.

Μπροστά από το laptop των δοκιμών μας υπάρχει ένας pfSense router που παρέχει υπηρεσίες recursive DNS στα μηχανήματα του τοπικού δικτύου (http://deltahacker.gr/?p=14887). Πριν συνδεθούμε στον OpenVPN Access Server μεταβαίνουμε στο http://dnsleaktest.com και τρέχουμε το Extended test. Μετά από λίγο φαίνεται ότι ο name server είναι το μηχάνημα με δημόσιο IP αυτό που έχουμε πάρει από τον ISP μας. Το αποτέλεσμα είναι αναμενόμενο, αφού ο name server του pfSense είναι recursive.

Μπροστά από το laptop των δοκιμών μας υπάρχει ένας pfSense router που παρέχει υπηρεσίες recursive DNS στα μηχανήματα του τοπικού δικτύου. Πριν συνδεθούμε στον OpenVPN Access Server μεταβαίνουμε στο http://dnsleaktest.com και τρέχουμε το Extended test. Μετά από λίγο φαίνεται ότι ο name server είναι το μηχάνημα με δημόσιο IP αυτό που έχουμε πάρει από τον ISP μας. Το αποτέλεσμα είναι αναμενόμενο, αφού ο name server του pfSense είναι recursive.

Φροντίζουμε ώστε να συνδεθούμε στον Access Server, μεταβαίνουμε ξανά στο http://dnsleaktest.com και για άλλη μια φορά τρέχουμε το Extended test. Μερικά δευτερόλεπτα αργότερα διαπιστώνουμε ότι, πλέον, χρησιμοποιούμε μια σειρά από name servers της Google στην Αμερική. Πρόκειται για τους name servers που γνωρίζει το VPS μας στη Digital Ocean και τους οποίους ο OpenVPN Access Server φρόντισε να 'περάσει' στον client -- εν προκειμένω στο laptop των δοκιμών.

Φροντίζουμε ώστε να συνδεθούμε στον Access Server, μεταβαίνουμε ξανά στο http://dnsleaktest.com και για άλλη μια φορά τρέχουμε το Extended test. Μερικά δευτερόλεπτα αργότερα διαπιστώνουμε ότι, πλέον, χρησιμοποιούμε μια σειρά από name servers της Google στην Αμερική. Πρόκειται για τους name servers που γνωρίζει το VPS μας στη Digital Ocean και τους οποίους ο OpenVPN Access Server φρόντισε να “περάσει” στον client — εν προκειμένω στο laptop των δοκιμών.

Το web panel διαχείρισης
Η ρύθμιση του OpenVPN Access Server δεν χρειάζεται να γίνεται με την τροποποίηση configuration files, αλλά μέσω του παρεχόμενου web panel. Για απλή καθημερινή χρήση το πιθανότερο είναι ότι δεν θα χρειαστεί να επέμβετε στη λειτουργία του server. Καλό είναι πάντως να έχετε μια ιδέα για το περιβάλλον του web panel. Από έναν browser μεταβείτε στην ακόλουθη διεύθυνση

https://διεύθυνση_IP_του_VPS:943/admin

και συνδεθείτε στο λογαριασμό με username το openvpn. Ρίξτε μια ματιά στα ακόλουθα screenshots, διαβάστε και τις αντίστοιχες περιγραφές.

Στη σελίδα Status Overview βλέπουμε, μεταξύ άλλων, το δημόσιο IP του OpenVPN Access Server (1), το domain name (αν υπάρχει) (2), καθώς και το πλήθος των συνδεδεμένων clients (3).

Στη σελίδα Status Overview βλέπουμε, μεταξύ άλλων, το δημόσιο IP του OpenVPN Access Server (1), το domain name (αν υπάρχει) (2), καθώς και το πλήθος των συνδεδεμένων clients (3).

Ιδού περισσότερες λεπτομέρειες για τον έναν και μοναδικό πελάτη που αυτή τη στιγμή είναι συνδεδεμένος στον OpenVPN Access Server. Παρατηρήστε ότι καταγράφεται και η δημόσια διεύθυνση IP που ο πελάτης έχει πάρει από τον ISP. Στο ίντερνετ, πάντως, βγαίνει με το δημόσιο IP του VPS στο οποίο κατοικεί ο Access Server.

Ιδού περισσότερες λεπτομέρειες για τον έναν και μοναδικό πελάτη που αυτή τη στιγμή είναι συνδεδεμένος στον OpenVPN Access Server. Παρατηρήστε ότι καταγράφεται και η δημόσια διεύθυνση IP που ο πελάτης έχει πάρει από τον ISP. Στο ίντερνετ, πάντως, βγαίνει με το δημόσιο IP του VPS στο οποίο κατοικεί ο Access Server.

Στις ρυθμίσεις περί Routing δείτε ότι, εξ ορισμού, η διαδικτυακή κίνηση των πελατών δρομολογείται μέσω του OpenVPN Access Server (1). Σε διαφορετική περίπτωση οι πελάτες ναι μεν θα αποκτούσαν ασφαλή πρόσβαση στο δίκτυο του απομακρυσμένου server, αλλά θα εξακολουθούσαν να βγαίνουν στο ίντερνετ μέσω του ISP. Προσέξτε εξάλλου κι αυτό το DNS Setting, λίγο πιο κάτω: Οι πελάτες είναι δυνατόν α) να συνεχίσουν να χρησιμοποιούν τους name servers που χρησιμοποιούσαν πριν τη σύνδεση, β) να αρχίσουν να χρησιμοποιούν τους name servers τους οποίους γνωρίζει ο Access Server (προεπιλογή) (2) ή γ) ν' αρχίσουν να χρησιμοποιούν τους name servers που εμείς καθορίζουμε.

Στις ρυθμίσεις περί Routing δείτε ότι, εξ ορισμού, η διαδικτυακή κίνηση των πελατών δρομολογείται μέσω του OpenVPN Access Server (1). Σε διαφορετική περίπτωση οι πελάτες ναι μεν θα αποκτούσαν ασφαλή πρόσβαση στο δίκτυο του απομακρυσμένου server, αλλά θα εξακολουθούσαν να βγαίνουν στο ίντερνετ μέσω του ISP. Προσέξτε εξάλλου κι αυτό το DNS Setting, λίγο πιο κάτω: Οι πελάτες είναι δυνατόν α) να συνεχίσουν να χρησιμοποιούν τους name servers που χρησιμοποιούσαν πριν τη σύνδεση, β) να αρχίσουν να χρησιμοποιούν τους name servers τους οποίους γνωρίζει ο Access Server (προεπιλογή) (2) ή γ) ν’ αρχίσουν να χρησιμοποιούν τους name servers που εμείς καθορίζουμε.

Στη σελίδα Advanced VPN Settings υπάρχει μια εξαιρετικά χρήσιμη επιλογή, η οποία είναι εξ ορισμού ενεργοποιημένη. Πρόκειται για την Multiple Sessions per User: Χάρη σ' αυτή επιτρέπονται περισσότερες από μία συνδέσεις στον ίδιο λογαριασμό του Access Server, συνεπώς δεν χρειάζεται να αγοράσουμε license προκειμένου να συνδέσουμε περισσότερους από έναν υπολογιστές ή συσκευές. Η συγκεκριμένη προσέγγιση δεν είναι ιδανική για εταιρικά περιβάλλοντα, είναι όμως ό,τι πρέπει για όσους εκμεταλλεύονται τον Access Server για προσωπική χρήση.

Στη σελίδα Advanced VPN Settings υπάρχει μια εξαιρετικά χρήσιμη επιλογή, η οποία είναι εξ ορισμού ενεργοποιημένη. Πρόκειται για την Multiple Sessions per User: Χάρη σ’ αυτή επιτρέπονται περισσότερες από μία συνδέσεις στον ίδιο λογαριασμό του Access Server, συνεπώς δεν χρειάζεται να αγοράσουμε license προκειμένου να συνδέσουμε περισσότερους από έναν υπολογιστές ή συσκευές. Η συγκεκριμένη προσέγγιση δεν είναι ιδανική για εταιρικά περιβάλλοντα, είναι όμως ό,τι πρέπει για όσους εκμεταλλεύονται τον Access Server για προσωπική χρήση.

Σύνδεση από Linux κι από δικό μας client
Για τη σύνδεση στον OpenVPN Access Server από Linux, αρκεί να υπάρχει στη διανομή εγκατεστημένο το πακέτο του OpenVPN Community Edition. Στο Ubuntu, π.χ., το εγκαθιστούμε δίνοντας

sudo apt-get install openvpn

ενώ στο openSUSE είναι ήδη εγκατεστημένο. Το συγκεκριμένο πακέτο περιλαμβάνει το ομώνυμο εκτελέσιμο του OpenVPN, το οποίο μπορεί να λειτουργεί είτε ως server είτε ως client. Μας ενδιαφέρει η λειτουργία client, οπότε κατεβάζουμε το connection profile (αρχείο client.ovpn) από το

https://διεύθυνση_IP_του_VPS:943/?src=connect

και σ’ ένα τερματικό πληκτρολογούμε

sudo openvpn --config ~/client.ovpn

(υποθέσαμε ότι το αρχείο client.ovpn είναι στον προσωπικό κατάλογο του χρήστη). Δείτε λίγο τα ακόλουθα screen shots.

Βρισκόμαστε στο περιβάλλον GNOME του openSUSE Leap κι έχουμε ήδη κατεβάσει το αρχείο client.ovpn, δηλαδή το προκαθορισμένο connection profile προς το λογαριασμό του χρήστη openvpn, στον απομακρυσμένο OpenVPN Access Server. Η σύνδεση επιτυγχάνεται από ένα οποιοδήποτε τερματικό και με δικαιώματα root. Παρατηρήστε ότι χρειάζεται να πληκτρολογήσουμε τα username και password του απομακρυσμένου χρήστη.

Βρισκόμαστε στο περιβάλλον GNOME του openSUSE Leap κι έχουμε ήδη κατεβάσει το αρχείο client.ovpn, δηλαδή το προκαθορισμένο connection profile προς το λογαριασμό του χρήστη openvpn, στον απομακρυσμένο OpenVPN Access Server. Η σύνδεση επιτυγχάνεται από ένα οποιοδήποτε τερματικό και με δικαιώματα root. Παρατηρήστε ότι χρειάζεται να πληκτρολογήσουμε τα username και password του απομακρυσμένου χρήστη.

Τα μηνύματα στο τερματικό δείχνουν την πρόοδο της (σύντομης) διαδικασίας σύνδεσης και το τελευταίο φανερώνει ότι επετεύχθη επιτυχώς.

Τα μηνύματα στο τερματικό δείχνουν την πρόοδο της (σύντομης) διαδικασίας σύνδεσης και το τελευταίο φανερώνει ότι επετεύχθη επιτυχώς.

Με μια γρήγορη επίσκεψη στο https://dnsleaktest.com διαπιστώνουμε ότι για το ίντερνετ έχουμε αμερικάνικο IP -- κι ας βρισκόμαστε κάπου στην Καλαμαριά.

Με μια γρήγορη επίσκεψη στο https://dnsleaktest.com διαπιστώνουμε ότι για το ίντερνετ έχουμε αμερικάνικο IP — κι ας βρισκόμαστε κάπου στην Καλαμαριά.

Το αρχείο cilent.ovpn δεν πρέπει να διαρρεύσει. Αν κάποιος τρίτος το πάρει και με κάποιον τρόπο μάθει και το password του χρήστη openvpn στον απομακρυσμένο OpenVPN Access Server, τότε θα είναι κι εκείνος σε θέση να συνδέεται. Το εν λόγω αρχείο είναι χρήσιμο κι όταν αντί για τον OpenVPN Connect client θέλουμε να χρησιμοποιήσουμε κάποιον άλλον, όπως, π.χ., είναι το Viscosity, για OS X και Windows. Το προγραμματάκι δεν διανέμεται δωρεάν, σε σύγκριση όμως με το OpenVPN Connect το βρίσκουμε πολύ πιο λειτουργικό κι ευέλικτο.

Το Viscosity, για OS X και Windows, είναι ο αγαπημένος μας VPN client. Μεταξύ άλλων είναι σε θέση να καταλαβαίνει και τα connection profiles του OpenVPN Access Server.

Το Viscosity, για OS X και Windows, είναι ο αγαπημένος μας VPN client. Μεταξύ άλλων είναι σε θέση να καταλαβαίνει και τα connection profiles του OpenVPN Access Server.

Χαρείτε τον ολοκαίνουργιο VPN server σας κι εκμεταλλευτείτε τον, ειδικά από το laptop σας κι άλλες φορητές συσκευές. Σε περίπτωση που ενδιαφέρεστε να ενισχύσετε την ιδιωτικότητα *ολόκληρου* του οικιακού σας τοπικού δικτύου κι όχι μεμονομένων υπολογιστών ή/και συσκευών σας, διαβάστε αυτό το άρθρο.

20 Responses to “OpenVPN Access Server, χωρίς βάσανα και πόνο!”

  1. ioanniskar | 10/11/2015 at 16:07

    Ευχαριστούμε, το δοκίμασα σε ένα VPS στην Atlanta και συνδέθηκε με tunnelblick σε OS X.

    • subZraw | 10/11/2015 at 18:56

      Πάρα πολύ ωραία :) Δοκίμασες μήπως κάποια υπηρεσία με γεωγραφικούς περιορισμούς, όπως, π.χ., το Hulu;

      • ioanniskar | 20/11/2015 at 01:09

        Δεν δοκίμασα να κάνω streaming γιατί δεν έχω ενεργή συνδρομή αλλά οι σελίδες του hulu και το netflix ανοίγουν κανονικά (χωρίς openvpn με ενημερώνουν ότι δεν υποστηρίζονται στη χώρα μου).

  2. ToPnt | 15/11/2015 at 12:00

    Μόλις εχθές το διάβασα από το περιοδικό που μου ήρθε..
    Τι λέτε ρε παιδιά τώρα ; Δηλαδή με αυτό έχεις ένα πλήρως λειτουργικό OpenVPN Server με τόση τεράστια ευκολία ; Σοβαρά τώρα ; ( θα προσπαθήσω να το δω και ο ίδιος το συντομότερο, ώστε να το πιστέψω :P )
    και με ευκολία διαχείρισης χάρης του ωραίου web Panel.
    Με μόνο μειονέκτημα ότι αν το θες *δωρεάν εντελώς*.. θα μπορούν μόνο δύο ταυτόχρονοι clients να είναι συνδεδεμένοι.. Τα λέω σωστά ; ^_^ χαχαα

    Θέλω να κάνω και μια ακόμη όμως ερώτηση που είναι λίγο πιο γενική.

    Τι σημαίνει “στο cloud” ;
    Δύσκολη ίσος ερώτηση, αλλά έχει αρχίσει λίγο και με σκαλίζει…
    Ποια η διαφορά όταν λέμε έχω ένα server αγορασμένο ( κάπου ) & από το να λέμε έχω ένα server στο cloud ;

    Υ.Σ. : Πάντως όπως και να έχει, θέλω να πω πως η μαγεία αυτή εδώ : http://deltahacker.gr/openvpn-revisited/ δε χάνεται έτσι.. ;)

    Ευχαριστώ πολύ, για αυτό το πάρα πολύ ενδιαφέρων θέμα!. :)

    • subZraw | 16/11/2015 at 12:58

      Γεια χαρά,
      Αναφορικά με το “μειονέκτημα”, αντιγράφω εδώ από το άρθρο: “Στη σελίδα Advanced VPN Settings υπάρχει μια εξαιρετικά χρήσιμη επιλογή, η οποία είναι εξ ορισμού ενεργοποιημένη. Πρόκειται για την Multiple Sessions per User: Χάρη σ’ αυτή επιτρέπονται περισσότερες από μία συνδέσεις στον ίδιο λογαριασμό του Access Server, συνεπώς δεν χρειάζεται να αγοράσουμε license προκειμένου να συνδέσουμε περισσότερους από έναν υπολογιστές ή συσκευές.”

  3. lmike | 18/11/2015 at 15:22

    καλησπέρα έχω ένα πρόβλημα οταν παω να μπω στην σελίδα μου λέει οτι δεν υπάρχει, δοκίμασα και σε αλλα λειτουργικά και παλι το ιδιο. Έχετε καμιά ιδεα?

    https://openvpn.net/index.php/access-server/section-faq-openvpn-as/69-virtual-appliance/433-why-cant-i-access-the-adminclient-ui.html
    Δοκίμασα αυτο αλλα τιποτα

    • subZraw | 18/11/2015 at 16:51

      Καλησπέρα,
      Για να βεβαιωθείς ότι ο OpenVPN AS είναι ενεργοποιημένος και περιμένει συνδέσεις στο port 943, συνδέσου μέσω SSH στο VPS σου και δώσε κάτι σαν το ακόλουθο:

      sub0@defiant:~$ sudo netstat -antp | grep 943
      tcp   0   0 a.b.c.d:943  0.0.0.0:*   LISTEN   1358/python
      

      Τώρα, η διεύθυνση που θα πρέπει να επισκεφτείς από κάποιον web browser ώστε να αποκτήσεις πρόσβαση στο administration panel του server, είναι της μορφής https://δημόσιο_IP_του_VPS:943/admin

      Προσοχή στο “s” του “https”, όπως επίσης και στο port (943). Αν ο OpenVPN AS είναι ενεργός και δεν υπάρχει κάποιο firewall που να μπλοκάρει την πρόσβαση στο port 943, δεν θα έχεις θέμα.

      • lmike | 19/11/2015 at 12:49

        Στο a.b.c.d ποια ip πρέπει να είναι?
        το αποτέλεσμα του sudo netstat -antp | grep 943 είναι:
        tcp 0 0 10.13.0.7:943 0.0.0.0:* LISTEN 13429/python

        • subZraw | 19/11/2015 at 14:07

          Το a.b.c.d είναι η δημόσια διεύθυνση IP που έχει το VPS στο οποίο κατοικεί ο OpenVPN Access Server σου.

  4. IoannisG | 19/11/2015 at 13:59

    Καλησπέρα κι απο εμένα, έχω το ίδιο ακριβώς πρόβλημα με vm της digitalocean και η απάντηση είναι
    tcp 0 0 10.13.0.10:943 0.0.0.0:* LISTEN 1176/python

  5. lmike | 19/11/2015 at 14:47

    Το βρήκα το πρόβλημα. Στα vm της digitalocean στο /etc/network/interfaces βάζει την γραμμή “up ip addr add 10.13.0.7/16 dev eth0” και ετσι το eth0 εχει 2 ip και ο OpenVPN Access Server ακούει σε λάθος ip. Την έσβησα έκανα reboot και μετά έτρεξα ξανά την εντολή: /usr/local/openvpn_as/bin/ovpn-init –force

    • subZraw | 19/11/2015 at 15:13

      Αυτό είναι παράξενο (και δεν ίσχυε στην περίπτωσή μου). Τέλος πάντων, το θέμα είναι ότι έβγαλες άκρη. Enjoy!

      • lmike | 19/11/2015 at 15:18

        Έφτιαξες τώρα ενα vm και δεν εχεις αυτή την γραμμή στο /etc/network/interfaces ?

        • subZraw | 19/11/2015 at 15:34

          Είχα έτοιμο, αλλά μιας και το ανέφερες μπήκα στον πειρασμό και τελικά έφτιαξα ένα καινούργιο (στο 2ο data center της Νέας Υόρκης). Πράγματι υπάρχει αυτή η γραμμή και πράγματι πρέπει να αφαιρεθεί, αλλιώς ο OpenVPN AS δεν “ακούει” από το δημόσιο IP. Το γιατί προστίθεται αυτή η γραμμή στο /etc/network/interfaces είναι κάτι που θέλει διερεύνηση… :/

          • lmike | 19/11/2015 at 18:32

            Λεω και εγω γιατι αμα ειχαμε μονο εμεις το προβλημα θα υπηρχε θεμα :P

  6. IoannisG | 19/11/2015 at 23:56

    Το επιβεβαιώνω κι εγώ, κοίταξα σε ένα παλαιότερο vm και δεν υπάρχει αλλά υπάρχει στο καινούριο που έφτιαξα, μετά την προαναφερθείσα τροποποίηση δουλεύει κανονικά

Leave a Reply

You must be logged in to post a comment.

Σύνδεση

Αρχείο δημοσιεύσεων