Kaip paleisti savo „OpenVPN“ serverį „Raspberry PI“

Sveiki visi!

Šiame trumpame straipsnyje paaiškinsiu, kaip nustatyti savo VPN (virtualaus privataus tinklo) serverį „Raspberry PI“ su „OpenVPN“. Sukonfigūravę serverį, sukonfigūruosime serverį, kad užmaskuotume srautą nurodydami, kad naudojame VPN. Tai padės mums išvengti tam tikros formos cenzūros.

Kodėl verta naudoti VPN?

Pirmiausia pakalbėkime apie tai, kodėl galite naudoti VPN serverį:

  1. Venkite žmogaus per vidurį. Jei jūsų vietiniame tinkle yra kenksmingas vartotojas - net ir jūsų kambario draugas - šis asmuo gali stebėti jūsų nešifruotą srautą ir jį sugadinti.
  2. Paslėpkite savo veiklą internete savo interneto paslaugų teikėjui (universiteto paslaugų teikėjui) ar universitetui, mano atveju.
  3. Atblokuoti paslaugas. Mano universitetas blokuoja visus UDP („User Datagram Protocol“) paketus. Tai reiškia, kad negaliu naudoti jokios programos, kuri bendrauja per UDP. Negaliu naudotis savo el. Pašto programa, žaisti žaidimų ar net „Git“!

Nusprendžiau savo namuose nustatyti VPN naudodamas „Raspberry Pi“. Tokiu būdu būdamas universitete galiu prisijungti prie savo namų tinklo. Jei jums reikia VPN serverio kitoje šalyje, galite nusipirkti virtualų privatų serverį 5 USD per mėnesį iš „DigitalOcean“. Norėdami gauti 10 USD nuolaidą, galite naudoti mano persiuntimo nuorodą - tai yra du mėnesiai nemokamo VPN. Bet jums nereikia jo naudoti, jei nenorite.

Diegiama „OpenVPN“

Šis žingsnis yra tikrai lengvas, nes mes naudosime apvalkalo scenarijų, kad tai atliktume už jus. Taigi jūs tiesiog turite "paspausti" kitą ir baigti.

Diegimas užtruks ilgai, priklausomai nuo pasirinkto rakto dydžio. Mano „Raspberry Pi 3 Model B“ tai užtruko apie 3 valandas.

Eikite į šią saugyklą ir vykdykite instrukcijas

„Angristan“ / „OpenVPN“ diegimas

„OpenVPN-install“ - nustatykite savo „OpenVPN“ serverį „Debian“, „Ubuntu“, „Fedora CentOS“ ir „Arch Linux“ github.com

Jei nežinote savo serverio IP adreso, tiesiog įdėkite 0.0.0.0. Pasirinkau 443prievadą ir TCP (perdavimo valdymo protokolas) protokolui.

Pastaba : Tai yra labai svarbu, nes mano universitetas leidžia tik TCP / 80 ir TCP / 443 prievadus, likusi dalis yra beveik užblokuota. Be to, „Obfsproxy“ veikia tik su TCP, todėl įsitikinkite, kad pasirinkote TCP !

Kai scenarijus bus baigtas, gausite .ovpn failą. Jį galima importuoti į jūsų mėgstamą VPN klientą, ir viskas turėtų veikti iš dėžutės.

Tikrinamas ryšys

Importuokite .ovpn failą į savo VPN klientą ir pakeiskite ip 0.0.0.0į savo Raspberry PI vietinį ip. Priklausomai nuo jūsų tinklo konfigūracijos, jis gali būti formos 192.168.*.*.

Pastaba: Tai veiks tik tuo atveju, jei esate prisijungę prie to paties „WiFi“, kaip ir „Pi“.

Sukonfigūravau savo maršrutizatorių, kad PI visada gautų rezervuotą IP adresą. Jei norite padaryti kažką panašaus, gali tekti patikrinti maršrutizatoriaus nustatymus.

Jei prisijungimas sėkmingas, sveikiname, dabar turite VPN serverį! Bet jūs negalite prieiti prie jo iš išorės ... dar.

Jei norite tik „OpenVPN“ serverio be paslėpto tarpinio serverio, galite pereiti prie „ Port Forwarding“ .

„Obfuscation Proxy Install“

„Obfs4“ yra šifruojantis tarpinis serveris. Tai užmaskuoja jūsų interneto srautą, kad atrodytų kaip triukšmas. Kas nors, kuris žiūri į jūsų srautą, iš tikrųjų nežinos, ką darote, ir tai apsaugos jus nuo aktyvių zondavimo išpuolių, kuriuos naudoja Didžioji Kinijos užkarda.

Pastaba: šis metodas neveiks, jei jūsų priešininkas leidžia tik į baltąjį sąrašą įtrauktą srautą :(

Dabar įdiekime tarpinį serverį.

0. Įdiekite reikiamą paketą:

apt-get update && apt-get install obfs4proxy
  1. Sukurkite katalogą, kuriame bus konfigūracija.
sudo mkdir -p /var/lib/tor/pt_state/obfs4

2. Sukurkite konfigūracijos failą.

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

Konfigūracijos faile įklijuosite šiuos dalykus:

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 yra adresas, kuriuo tarpinis serveris klausys naujų ryšių. Mano atveju tai yra 0.0.0.0:444- kodėl 444, o ne 443? Na, nes nenoriu pakeisti „OpenVPN“ serverio konfigūracijos, kuri šiuo metu klausosi 443. Be to, vėliau šį adresą susirašysiu į 443 naudodama „Port Forwarding“.

TOR_PT_ORPORT turėtų nukreipti į „OpenVPN“ serverį. Mano atveju mano serveris veikia127.0.0.1:443

3. Sukurkite „SystemD“ paslaugos failą.

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

Tada įklijuokite šį turinį:

[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. Paleiskite „Obfuscation“ tarpinį serverį.

Dabar įsitikinkite, kad veikia „OpenVPN“, ir paleiskite šias komandas, kad paleistumėte tarpinį serverį ir įgalintumėte jį paleisti įkrovos metu.

sudo systemctl start obfs4proxysudo systemctl enable obfs4proxy

5. Išsaugokite sertifikato RAKTĄ

Paleidus paslaugą, vykdykite šią komandą ir išsaugokite sertifikato RAKTĄ.

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/

Jei turite kokių klausimų, nukreipkite mane į „Twitter“.