[OpenVPN] Στήστε ένα VPN σε Linux Server

Όταν αναφερόμαστε σε Virtual Private Networks το μυαλό μας πάει αυτόματα στην ασφάλεια, την ιδιωτικότητα (privacy) και την αποφυγή της λογοκρισίας (ευτυχώς στο τελευταίο δεν έχουμε πρόβλημα εδώ στην Ελλάδα, τουλάχιστον όχι ακόμη).
Το γιατί θα ήθελε κάποιος να χρησιμοποιήσει ένα VPN είναι καθαρά προσωπική υπόθεση. Σε αυτή τη δημοσίευση θα δούμε πως μπορούμε να στήσουμε ένα VPN και να το χρησιμοποιήσουμε, μέσα σε 10 λεπτά.

  1. Εγκατάσταση – Ρυθμίσεις OpenVPN
  2. Ρύθμιση Client
  3. FAQ

Προαπαιτούμενα

Να έχουμε έναν λειτουργικό Ubuntu Server (ή παρόμοια διανομή) στον οποίο θα στήσουμε το VPN μας.

Εάν δεν έχουμε μπορούμε να στήσουμε έναν, έτσι για να πειραματιστούμε, στη DigitalOcean, δωρεάν για δυο μήνες. Επιλέγουμε ως server εκείνον με τα 5$/month.

Το στήσιμο ενός Ubuntu server στη Digital Ocean είναι μερικά κλικ μακριά. Εάν θέλουμε και αυξημένη ασφάλεια απλά προσθέτουμε, πριν δημιουργήσουμε το droplet μας, ένα SSH key. Οι ρυθμίσεις γίνονται αυτόματα και πλέον μπορούμε να συνδεθούμε στον server μας με το κλειδί που προσθέσαμε.

 

Εγκατάσταση – Ρυθμίσεις OpenVPN

Η εγκατάσταση και οι ρυθμίσεις του OpenVPN μπορούν να πάρουν από μερικά λεπτά, έως και ώρες, ίσως και μέρες για κάποιον που δεν γνωρίζει. Ευτυχώς υπάρχουν τα scripts και ευτυχώς υπάρχουν και εκείνοι οι άνθρωποι που δημιουργούν και συντηρούν αυτά τα scripts.

Εφόσον είμαστε συνδεδεμένοι στον server μας, ως root φυσικά, δίνουμε την παρακάτω εντολή:

wget https://git.io/vpn -O openvpn-install.sh && bash openvpn-install.sh

Η παραπάνω εντολή θα κατεβάσει και θα εκτελέσει το script, το οποίο θα μας καθοδηγήσει βήμα-βήμα για τις ρυθμίσεις που απαιτούνται, με ερωτήσεις και απαντήσεις. Θα φροντίσει επίσης και για την εγκατάσταση του OpenVPN.
Όταν ολοκληρωθεί η διαδικασία θα παραχθεί ένα αρχείο με το όνομα του client που έχουμε επιλέξει και επέκταση .ovpn. Αυτό είναι και το μόνο που χρειαζόμαστε για να συνδεθούμε από έναν Client που θέλουμε στο VPN μας.

Πάμε να δούμε το script εν δράση!

Μόλις εκκινήσει το script εντοπίζει αμέσως την IPv4 διεύθυνση μας. Απλά πατάμε Enter.
Στις επόμενες ερωτήσεις πατάμε επίσης Enter. Μόνο στην ερώτηση για DNS επέλεξα OpenDNS.
Δίνουμε ένα όνομα για τον client. Ότι θέλουμε αρκεί να μην περιέχει ειδικούς χαρακτήρες.
Όταν ολοκληρωθεί το script θα παραχθεί το αρχείο LinuxMintSylvia.ovpn.

Αυτό το αρχείο είναι και το μοναδικό που χρειαζόμαστε. Πρέπει όμως να το μεταφέρουμε με ασφάλεια από τον server στον client. Εδώ θα χρησιμοποιήσουμε την εντολή scp.

Από τον client λοιπόν:

scp root@xxx.xx.xxx.xx:LinuxMintSylvia.ovpn /home/nicktux

Ρύθμιση Client


 

Σε Linux Mint 18.3

Το όνομα που έδωσα στον Client δεν ήταν τυχαίο, μιας και η ρύθμιση που θα δούμε παρακάτω έχει γίνει σε Linux Mint 18.3. Βέβαια αυτό λίγη σημασία έχει. Η ρύθμιση του client εξαρτάται από τον client και το OpenVPN.
Σε Linux Mint, Ubuntu και άλλες διανομές είναι συνήθως προ-εγκατεστημένο το απαραίτητο πακέτο. Αν όχι, εγκαταστήστε το. Ακόμη και για Windows υπάρχει πακέτο OpenVPN και εκεί ακόμη η διαδικασία είναι παρόμοια.
Το μόνο που έχουμε να κάνουμε είναι να φορτώσουμε το αρχείο .ovpn και να συνδεθούμε.

Πάμε να δούμε τη διαδικασία σε Linux Mint.

Ανοίγουμε τις ρυθμίσεις δικτύου (Network) και πατάμε το «+». Έπειτα πατάμε το «Import from file..»
Αφήνουμε τα προεπιλεγμένα και πατάμε «Add».
Ίσως είναι καλό να πάμε στην καρτέλα IPv6 και να την απενεργοποιήσουμε.

Το μόνο που έχουμε να κάνουμε τώρα είναι να συνδεθούμε,

και να ελέγξουμε εάν λειτουργεί στο https://dnsleaktest.com ή στο https://whoer.net


 

Σε Debian Strech

Σε Debian Stretch μπορούμε να «παίξουμε» απευθείας από το τερματικό. Αυτό, διότι ο Network Manager φαίνεται να μην υποστηρίζει σωστά το αρχείο ovpn. Δεν το έψαξα περαιτέρω για κάποιο workaround ώστε να χρησιμοποιήσω το GUI, αφού δουλεύει σωστά από τερματικό.

Καταρχήν κάνουμε εγκατάσταση το πακέτο openvpn

:~# apt-get install openvpn

Και έπειτα εκτελούμε τη παρκάτω εντολή

:~# cp LinuxMintSylvia.ovpn /etc/openvpn/server.conf

Έπειτα τσεκάρουμε τη σύνδεση με

:~# openvpn --client --config /etc/openvpn/server.conf

Εάν όλα πάνε καλά, μπορούμε είτε να ενεργοποιήσουμε μόνιμα το openvpn με

:~# systemctl enable openvpn@server.service

ή απλά το εκκινούμε κατά βούληση με

:~# systemctl start openvpn@server.service


 

FAQ

  • Το script είναι ασφαλές;
    Ναι. Μπορείτε να δείτε τον πηγαίο κώδικα εδώ.
  • Το script λειτουργεί;
    Ναι. Τουλάχιστον σε Ubuntu Server 16.04 που το δοκίμασα.
  • Εάν θέλω να αποφύγω το server κομμάτι, υπάρχει κάτι έτοιμο;
    Υπάρχουν VPNs επί πληρωμή, καθώς και δωρεάν. Για δωρεάν δείτε στο https://www.vpnbook.com . Έχουν έτοιμα .ovpn files τα οποία μπορεί κάποιος να κατεβάσει και να φορτώσει. Από εκεί και πέρα έγκειται στο κατά πόσον εμπιστεύεται κάποιος τους τύπους που τρέχουν τον server.
  • Έχει νόημα να στήσω OpenVPN server σπίτι μου;
    Ναι ίσως και να έχει. Όχι τόσο για την ιδιωτικότητα/ανωνυμία του πράγματος, αλλά για την ασφάλεια. Για παράδειγμα, από ένα Open WiFi (και εντελώς ανασφαλές βέβαια) μπορούμε να σερφάρουμε με ασφάλεια μέσω του (Open)VPN του σπιτιού μας.
  • Γιατί αυτός ο οδηγός;
    Για να δούμε ότι το στήσιμο ενός VPN σε Linux δεν είναι πυρηνική φυσική. Και ως σημειωματάριο φυσικά.
  • Γιατί OpenVPN;
    Γιατί είναι Open. Ανοιχτός Κώδικας, πράγμα που σημαίνει περισσότερη ασφάλεια, λιγότερα security flaws.
  • Η ανωνυμία είναι εγγυημένη;
  • Όχι! Υπάρχουν διάφοροι τρόποι ώστε να εντοπίσει κάποιος την πραγματική σας IP (να γίνει exposed). Ο πιο σύνηθες από αυτούς, DNS Leak. Έπειτα, έχουμε και τα πρόσθετα – επεκτάσεις που μπορεί να «βοηθήσουν» στο leak, όπως Flash, WebRTC, Javascript.


Until next time …
Thanks for reading!

3 thoughts on “[OpenVPN] Στήστε ένα VPN σε Linux Server

  1. Χαίρεται φίλε!
    Ωραίος ο οδηγός και μου άρεσε πολύ το «FAQ» που έχεις στο τέλος.
    Όσο για το script, αυτό εδώ είναι όλο του το αποθετήριο :
    https://github.com/Nyr/openvpn-install
    ; Γιατί, δεν είδα να το αναφέρεις κάπου.

    Μα πόσο εύκολη την κάνουν πλέον την εγκατάσταση μερικοί μερικοί.. ;
    Κάθε τόσο ξετρυπώνει και από ένας οδηγός – τρόπος ή scriptάκια για την εύκολη δημιουργία ενός VPN.

    Προσωπικά βέβαια επειδή γνωρίζω και έχω αφιερώσει ώρες ώστε να μάθω αρκετά πράγματα πάνω στο αντικείμενο δε θα χρησιμοποιούσα κάτι παρόμοιο, προτιμώ να κάνω τις ρυθμίσεις μου εγώ και να είμαι σίγουρος για το τι γίνεται και τι όχι. Φαντάσου πως ούτε καν έχω δοκιμάσω τον επίσημο «<url=https://openvpn.net/index.php/access-server/overview.html>OpenVPN Access Server» που είναι κάτι αντίστοιχο με αυτό που παρουσιάζεις εδώ. Ένας απλώς τρόπος εγκατάστασης και ρύθμισης ενός VPN από την ίδια την OpenVPN!

    1. Ναι έχεις δίκιο. Δεν αναφέρω το αποθετήριο με απευθείας link, παρά μόνο μέσω του κώδικα του script στο FAQ. Φαίνεται στη γραμμή διευθύνσεων του Browser.
      Εάν έχεις μπει στη διαδικασία να κάνεις εγκατάσταση και ρυθμίσεις μόνος σου, τότε ναι οι αυτοματισμοί σου φαίνονται …κάπως. Έτσι καταλαβαίνεις και πως αισθάνονται, για παράδειγμα, όσοι έχουν στήσει μόνοι τους Arch και ξαφνικά βγαίνει ένας Installer που τα αυτοματοποιεί όλα :P
      Βέβαια εάν θέλεις να μάθεις εκ των έσω τι γίνεται με την εγκατάσταση και τις ρυθμίσεις του OpenVPN ο καλύτερος τρόπος είναι η μη αυτόματη εγκατάσταση.

      1. χαχα ναι φίλε ακριβώς, συμφωνώ με τα λεγόμενα σου! ;)

        Παρόλα αυτά το ξανά λέω, ευχαριστούμε πάρα πολύ για αυτό το άρθρο! Δεν παύει να είναι ενδιαφέρον!
        Περιμένουμε και άλλα από εσένα! :)
        Καλή συνέχεια!

Συμβάλετε κι εσείς με ένα σχόλιο

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση / Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση / Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση / Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση / Αλλαγή )

Σύνδεση με %s