Kuinka ajaa oma OpenVPN-palvelin Raspberry PI: llä

Hei kaikki!

Tässä lyhyessä artikkelissa selitän, kuinka oma VPN (Virtual Private Network) -palvelin asetetaan Raspberry PI: lle OpenVPN: llä. Kun olet määrittänyt palvelimen, me asetamme hämärtymispalvelimen peittääkseen liikenteemme osoittaen, että käytämme VPN: ää. Tämä auttaa meitä välttämään jonkinlaisen sensuurin.

Miksi käyttää VPN: ää?

Puhutaan ensin siitä, miksi haluat ehkä käyttää VPN-palvelinta:

  1. Vältä ihmistä keskimmäisissä hyökkäyksissä. Jos lähiverkossasi on haitallinen käyttäjä - jopa kämppis -, tämä henkilö pystyy seuraamaan salaamatonta liikennettäsi ja muuttamaan sitä.
  2. Piilota Internet-toimintasi Internet-palveluntarjoajalta (Internet Service Provider) tai yliopistolta.
  3. Kumoa palvelujen esto. Oma yliopisto estää kaikki UDP (User Datagram Protocol) -paketit. Tämä tarkoittaa, että en voi käyttää mitään sovelluksia, jotka kommunikoivat UDP: n kautta. En voi käyttää sähköpostiohjelmaa, pelata pelejä tai edes käyttää Git!

Päätin asettaa VPN: n kotini internetiin Raspberry Pi: llä. Näin voin muodostaa yhteyden kotiverkkoani yliopistossa ollessani. Jos tarvitset VPN-palvelinta toisessa maassa, voit ostaa virtuaalisen yksityisen palvelimen 5 dollaria kuukaudessa DigitalOceanilta. Voit käyttää viittauslinkkini saadaksesi 10 dollaria alennusta - se on kahden kuukauden ilmainen VPN. Mutta sinun ei tarvitse käyttää sitä, jos et halua.

OpenVPN: n asentaminen

Tämä vaihe on todella helppo, koska käytämme shell-komentosarjaa tekemään sen puolestasi. Joten sinun täytyy vain "painaa" seuraavaksi ja lopettaa.

Asennus kestää kauan valitsemastasi avainkoosta riippuen. Raspberry Pi 3 -mallissani B kesti noin 3 tuntia.

Mene tähän arkistoon ja noudata sitten ohjeita

Angristan / OpenVPN-asennus

OpenVPN-install - Määritä oma OpenVPN-palvelin Debianiin, Ubuntuun, Fedora CentOS: iin ja Arch Linuxiin github.com

Jos et tiedä palvelimesi IP-osoitetta, laita vain 0.0.0.0. Olen valinnut 443portille ja TCP: lle (Transmission Control Protocol) protokollan.

Huomaa : Tämä on erittäin tärkeää, koska yliopistoni sallii vain TCP / 80- ja TCP / 443- portit, loput ovat melko tukossa. Myös Obfsproxy toimii vain TCP: n kanssa, joten varmista, että valitsit TCP: n !

Kun komentosarja on valmis, saat .ovpn- tiedoston. Se voidaan tuoda suosikki VPN-asiakasohjelmaan, ja kaiken pitäisi toimia heti laatikosta.

Yhteyden testaus

Tuo .ovpn-tiedosto VPN-asiakasohjelmaan ja vaihda ip 0.0.0.0Raspberry PI: n paikalliseksi ip: ksi. Verkkokokoonpanostasi riippuen se voi olla muodoltaan 192.168.*.*.

Huomaa: Tämä toimii vain, jos olet yhteydessä samaan WiFi-verkkoon kuin Pi on.

Olen määrittänyt reitittimen niin, että PI saa aina varatun IP-osoitteen. Saatat joutua tarkistamaan reitittimen asetukset, jos haluat tehdä jotain vastaavaa.

Jos yhteys on onnistunut, onnittelut, sinulla on nyt VPN-palvelin! Mutta et pääse siihen ulkopuolelta ... vielä.

Jos haluat vain OpenVPN-palvelimen ilman peitepalvelinta, voit siirtyä Port Forwarding -palveluun .

Hämärtymisen välityspalvelimen asennus

Obfs4 on sekoittava välityspalvelin. Se peittää Internet-liikenteen näyttämään melulta. Joku, joka harhauttaa liikennettäsi, ei oikeastaan ​​tiedä, mitä teet, ja se suojaa sinua aktiivisilta koehyökkäyksiltä, ​​joita Kiinan suuri palomuuri käyttää.

Huomaa: Tämä menetelmä ei toimi, jos vastustajasi sallii vain sallittujen luetteloon lisätyn liikenteen :(

Asennetaan välityspalvelin nyt.

0. Asenna vaadittu paketti:

apt-get update && apt-get install obfs4proxy
  1. Luo hakemisto, joka pitää kokoonpanon.
sudo mkdir -p /var/lib/tor/pt_state/obfs4

2. Luo määritystiedosto.

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

Liitä määritystiedostoon seuraavat asiat:

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 on osoite, jolla välityspalvelin kuuntelee uusia yhteyksiä. Minun tapauksessani se on 0.0.0.0:444- miksi 444 ja ei 443? No, koska en halua muuttaa OpenVPN-palvelimen kokoonpanoa, joka parhaillaan kuuntelee numeroa 443. Kartoitan tämän osoitteen myöhemmin numeroon 443 Port Forwarding -toiminnon avulla.

TOR_PT_ORPORT: n tulisi osoittaa OpenVPN-palvelimeen. Minun tapauksessani palvelimeni toimii127.0.0.1:443

3. Luo SystemD-palvelutiedosto.

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

Liitä sitten seuraava sisältö siihen:

[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. Käynnistä Obfuscation-välityspalvelin.

Varmista nyt, että OpenVPN on käynnissä, ja suorita seuraavat komennot välityspalvelimen käynnistämiseksi ja sen käynnistämiseksi käynnistyksen yhteydessä.

sudo systemctl start obfs4proxysudo systemctl enable obfs4proxy

5. Tallenna sertifikaatin AVAIN

Kun palvelu on käynnistynyt, suorita seuraava komento ja tallenna varmenteen AVAIN.

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/

Jos sinulla on kysyttävää, lyö minut Twitterissä.