Πώς να εκτελέσετε τον δικό σας διακομιστή OpenVPN σε ένα Raspberry PI

Γεια σε όλους!

Σε αυτό το σύντομο άρθρο θα εξηγήσω πώς να ρυθμίσετε τον δικό σας διακομιστή VPN (Virtual Private Network) σε ένα Raspberry PI με OpenVPN. Αφού εγκαταστήσουμε τον διακομιστή, θα εγκαταστήσουμε έναν διακομιστή συσκότισης για να αποκρύψουμε την κίνηση μας, υποδεικνύοντας ότι χρησιμοποιούμε ένα VPN. Αυτό θα μας βοηθήσει να αποφύγουμε κάποια μορφή λογοκρισίας.

Γιατί να χρησιμοποιήσετε ένα VPN;

Αρχικά, ας μιλήσουμε για το γιατί μπορεί να θέλετε να χρησιμοποιήσετε έναν διακομιστή VPN:

  1. Αποφύγετε τον άνθρωπο στις μεσαίες επιθέσεις. Εάν έχετε κακόβουλο χρήστη στο τοπικό σας δίκτυο - ακόμα και τον συγκάτοικο σας - αυτό το άτομο μπορεί να παρακολουθεί την κρυπτογραφημένη κυκλοφορία σας και να την παραβιάζει.
  2. Απόκρυψη της δραστηριότητάς σας στο Διαδίκτυο από τον πάροχο υπηρεσιών διαδικτύου (ISP) ή το Πανεπιστήμιο, στην περίπτωσή μου.
  3. Κατάργηση αποκλεισμού υπηρεσιών. Το Πανεπιστήμιο μου αποκλείει όλα τα πακέτα UDP (User Datagram Protocol). Αυτό σημαίνει ότι δεν μπορώ να χρησιμοποιήσω καμία εφαρμογή που επικοινωνεί μέσω UDP. Δεν μπορώ να χρησιμοποιήσω τον πελάτη email μου, να παίξω παιχνίδια ή ακόμα και να χρησιμοποιήσω το Git!

Αποφάσισα να δημιουργήσω ένα VPN στο σπίτι μου στο Διαδίκτυο χρησιμοποιώντας ένα Raspberry Pi. Με αυτόν τον τρόπο μπορώ να συνδεθώ στο οικιακό μου δίκτυο ενώ βρίσκομαι στο Πανεπιστήμιο. Εάν χρειάζεστε διακομιστή VPN σε άλλη χώρα, μπορείτε να αγοράσετε έναν εικονικό ιδιωτικό διακομιστή 5 $ / μήνα από την DigitalOcean. Μπορείτε να χρησιμοποιήσετε τον σύνδεσμο παραπομπής μου για να λάβετε έκπτωση 10 $ - αυτό είναι δύο μήνες δωρεάν VPN. Αλλά δεν χρειάζεται να το χρησιμοποιήσετε αν δεν θέλετε.

Εγκατάσταση του OpenVPN

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

Η εγκατάσταση θα διαρκέσει πολύ, ανάλογα με το μέγεθος κλειδιού που επιλέξατε. Στο Raspberry Pi 3 Model B μου, χρειάστηκαν περίπου 3 ώρες.

Μεταβείτε σε αυτό το αποθετήριο και ακολουθήστε τις οδηγίες

Angristan / OpenVPN-εγκατάσταση

OpenVPN-install - Ρυθμίστε τον δικό σας διακομιστή OpenVPN σε Debian, Ubuntu, Fedora CentOS και Arch Linux github.com

Εάν δεν γνωρίζετε τη διεύθυνση IP του διακομιστή σας, απλώς βάλετε 0.0.0.0. Έχω επιλέξει 443τη θύρα και το πρωτόκολλο TCP (Transmission Control Protocol).

Σημείωση : Αυτό είναι πολύ σημαντικό επειδή το πανεπιστήμιο μου επιτρέπει μόνο τις θύρες TCP / 80 και TCP / 443 , τα υπόλοιπα είναι σχεδόν αποκλεισμένα. Επίσης, το Obfsproxy λειτουργεί μόνο με TCP, οπότε βεβαιωθείτε ότι έχετε επιλέξει TCP !

Αφού ολοκληρωθεί το σενάριο, θα λάβετε ένα αρχείο .ovpn . Μπορεί να εισαχθεί στον αγαπημένο σας πελάτη VPN και όλα θα πρέπει να λειτουργούν εκτός λειτουργίας.

Δοκιμή της σύνδεσης

Εισαγάγετε το αρχείο .ovpn στον πελάτη VPN και αλλάξτε το ip 0.0.0.0στο τοπικό ip του Raspberry PI. Ανάλογα με τη διαμόρφωση του δικτύου σας, μπορεί να έχει τη μορφή 192.168.*.*.

Σημείωση: Αυτό θα λειτουργήσει μόνο εάν είστε συνδεδεμένοι στο ίδιο WiFi με το Pi.

Έχω διαμορφώσει το δρομολογητή μου, ώστε το PI να λαμβάνει πάντα μια δεσμευμένη διεύθυνση IP. Ίσως χρειαστεί να ελέγξετε τις ρυθμίσεις του δρομολογητή σας εάν θέλετε να κάνετε κάτι παρόμοιο.

Εάν η σύνδεση είναι επιτυχής, συγχαρητήρια, έχετε πλέον διακομιστή VPN! Όμως, δεν μπορείτε να αποκτήσετε πρόσβαση από έξω… ακόμα

Αν θέλετε μόνο ένα διακομιστή OpenVPN χωρίς το πληρεξούσιο συσκότιση, τότε μπορείτε να μεταβείτε στο Port Forwarding .

Εγκατάσταση διακομιστή μεσολάβησης συσκότισης

Το Obfs4 είναι ένας διακομιστής μεσολάβησης. Μεταμφιέζει την κίνηση στο Διαδίκτυο για να μοιάζει με θόρυβο Κάποιος που παρακολουθεί την επισκεψιμότητά σας δεν θα ξέρει πραγματικά τι κάνετε και θα σας προστατεύσει από ενεργές ανιχνευτικές επιθέσεις που χρησιμοποιούνται από το Μεγάλο Τείχος προστασίας της Κίνας.

Σημείωση: Αυτή η μέθοδος δεν θα λειτουργήσει εάν ο αντίπαλός σας επιτρέπει μόνο επισκεψιμότητα στη λίστα επιτρεπόμενων :(

Ας εγκαταστήσουμε τον διακομιστή μεσολάβησης τώρα.

0. Εγκαταστήστε το απαιτούμενο πακέτο:

apt-get update && apt-get install obfs4proxy
  1. Δημιουργήστε έναν κατάλογο που θα διατηρεί τη διαμόρφωση.
sudo mkdir -p /var/lib/tor/pt_state/obfs4

2. Δημιουργήστε το αρχείο διαμόρφωσης.

sudo nano /var/lib/tor/pt_state/obfs4/obfs4.config

Στο αρχείο διαμόρφωσης, θα επικολλήσετε τα ακόλουθα πράγματα:

TOR_PT_MANAGED_TRANSPORT_VER=1TOR_PT_STATE_LOCATION=/var/lib/tor/pt_state/obfs4TOR_PT_SERVER_TRANSPORTS=obfs4TOR_PT_SERVER_BINDADDR=obfs4-0.0.0.0:444TOR_PT_ORPORT=127.0.0.1:443

Το TOR_PT_SERVER_BINDADDR είναι η διεύθυνση στην οποία ο πληρεξούσιος θα ακούσει νέες συνδέσεις. Στην περίπτωσή μου είναι 0.0.0.0:444- γιατί 444 και όχι 443; Λοιπόν, επειδή δεν θέλω να αλλάξω τη διαμόρφωση του διακομιστή OpenVPN που ακούει αυτήν τη στιγμή στο 443. Επίσης, θα αντιστοιχίσω αυτήν τη διεύθυνση αργότερα σε 443 χρησιμοποιώντας το Port Forwarding.

Το TOR_PT_ORPORT πρέπει να οδηγεί στον διακομιστή OpenVPN. Στην περίπτωσή μου, ο διακομιστής μου λειτουργεί127.0.0.1:443

3. Δημιουργήστε ένα αρχείο υπηρεσίας SystemD.

sudo nano /etc/systemd/system/obfs4proxy.service

Στη συνέχεια επικολλήστε τα ακόλουθα περιεχόμενα σε αυτό:

[Unit]Description=Obfsproxy Server[Service]EnvironmentFile=/var/lib/tor/pt_state/obfs4/obfs4.configExecStart=/usr/bin/obfs4proxy -enableLogging true -logLevelStr INFO[Install]WantedBy=multi-user.target

4. Ξεκινήστε τον διακομιστή μεσολάβησης της συγκατάθεσης.

Τώρα, βεβαιωθείτε ότι το OpenVPN εκτελείται και εκτελέστε τις ακόλουθες εντολές για να ξεκινήσετε τον διακομιστή μεσολάβησης και να τον ενεργοποιήσετε κατά την εκκίνηση.

sudo systemctl start obfs4proxysudo systemctl enable obfs4proxy

5. Αποθηκεύστε το πιστοποιητικό KEY

Αφού ξεκινήσει η υπηρεσία, εκτελέστε την ακόλουθη εντολή και αποθηκεύστε το πιστοποιητικό KEY.

cat /var/lib/tor/pt_state/obfs4/obfs4_bridgeline.txt

The key is of the form Bridge obfs4 : GERPRINT> c ert=KEY iat-mode=0 . You will need it when you’re connecting to the VPN.

6. Testing the connections.

Open up your VPN client and change the ip from 443 to 444 in order to connect to the proxy instead of the OpenVPN server.

After that, find the Pluggable Transport option in your OpenVPN client and see if it supports obfs4.

If everything works, then you’re all set! Congratulations! Only a few more things to tweak before using this VPN from the outside world.

Port Forwarding

In order to access the OpenVPN server from the outside world we need to unblock the ports, because they are most likely blocked. As you remember, I have reserved my PI’s IP address on my router to always be 192.168.1.125 so it doesn’t change if the PI disconnects or if the router reboots.

This way I have defined the following rules in my Port Forwarding table:

The outside port 443 will point to the obfuscation’s server port 444. If you don’t have an obfuscation server, then leave 443->443.

The port 25 will point to the PI’s SSH port 22. This is only for my own convenience.

In case I want to access the OpenVPN server directly without the obfuscation proxy, I have created a rule 444->443

The service port is the OUTSIDE port that will be used with your PUBLIC IP address. To find your public IP, use a service like whatsmyip.com.

The internal port is the INSIDE port. It can be used only when you are connected to the network.

Note: The first rule is saying redirect all the connections from PUBLIC_IP:443 to 192.168.1.125:444

Testing

  1. Find your public IP and replace your old IP with the public IP in the .ovpn file or in the VPN client.
  2. Connect to the VPN.

That’s it.

Dynamic DNS

In most cases, your IP will change because it’s a dynamic IP. A way to overcome this is to create a small program on the PI that saves your IP and sends you an email every day or so. You may also store the IP in an online database such as Firebase.

My router has Dynamic DNS setting. This way I can use a service provider like NoIP and get a domain like example.no-ip.com that will always point to my public IP address.

Other Resources:

  • A Childs Garden Of Pluggable Transports
  • Viscosity-Obsfurcation/
  • //www.pluggabletransports.info/transports/

Αν έχετε ερωτήσεις, χτυπήστε με στο Twitter.