Saját OpenVPN-kiszolgáló futtatása Raspberry PI-n

Üdv mindenkinek!

Ebben a rövid cikkben elmagyarázom, hogyan állíthat be saját VPN (Virtual Private Network) szervert egy Raspberry PI-n OpenVPN-lel. A szerver beállítása után beállítunk egy obfuscation szervert, hogy leplezzük forgalmunkat, jelezve, hogy VPN-t használunk. Ez segít elkerülni a cenzúra valamilyen formáját.

Miért érdemes VPN-t használni?

Először beszéljünk arról, miért érdemes VPN-kiszolgálót használni:

  1. Kerülje az embert a középső támadásokban. Ha rosszindulatú felhasználója van a helyi hálózatán - még a szobatársa is -, az a személy képes figyelni a titkosítatlan forgalmát, és azt manipulálni.
  2. Elrejtse internetes tevékenységét az ISP (Internet Service Provider) vagy az egyetem elől, esetemben.
  3. Szolgáltatások letiltása. A My University blokkolja az összes UDP (User Datagram Protocol) csomagot. Ez azt jelenti, hogy nem használhatok olyan alkalmazásokat, amelyek UDP-n keresztül kommunikálnak. Nem használhatom az e-mail kliensemet, nem játszhatok, vagy akár a Git-et sem használhatom!

Úgy döntöttem, hogy a Raspberry Pi segítségével beállítok egy VPN-t otthoni internetemen. Így tudok csatlakozni az otthoni hálózathoz, amíg az egyetemen vagyok. Ha más országban van szüksége VPN-kiszolgálóra, vásárolhat egy 5 dolláros havi virtuális magánszervert a DigitalOcean-tól. Használhatja a hivatkozási linkemet, hogy 10 dolláros kedvezményt kapjon - ez két hónap ingyenes VPN. De nem kell használni, ha nem akarja.

Az OpenVPN telepítése

Ez a lépés nagyon egyszerű, mert egy shell szkriptet fogunk használni az Ön számára. Tehát csak „nyomkodnia” kell a következőt és befejeznie.

A telepítés hosszú időt vesz igénybe, a választott kulcsmérettől függően. A Raspberry Pi 3 B modellemen kb. 3 órát vett igénybe.

Kérjük, keresse fel ezt a tárat, majd kövesse az utasításokat

Angristan / OpenVPN-install

OpenVPN-install - Állítsa be saját OpenVPN szerverét a Debian, az Ubuntu, a Fedora CentOS és az Arch Linux alatt github.com

Ha nem tudja a szerver IP-címét, tegye be 0.0.0.0. 443A portnak választottam , a TCP-nek (Transmission Control Protocol) a protokollt.

Megjegyzés : Ez nagyon fontos, mert az egyetemem csak a TCP / 80 és TCP / 443 portokat engedélyezi, a többiek nagyjából blokkolva vannak. Az Obfsproxy is csak a TCP-vel működik, ezért győződjön meg róla, hogy a TCP-t választotta !

A szkript befejezése után kap egy .ovpn fájlt. Importálható kedvenc VPN-kliensébe, és mindennek a dobozon kívül kell működnie.

A kapcsolat tesztelése

Importálja az .ovpn fájlt a VPN-kliensébe, és módosítsa az ip- 0.0.0.0t a Raspberry PI helyi ip- jére . A hálózati konfigurációtól függően lehet, hogy az űrlap formája 192.168.*.*.

Megjegyzés: Ez csak akkor működik, ha ugyanahhoz a WiFi-hez csatlakozik, mint a Pi.

Úgy konfiguráltam az útválasztóm, hogy a PI mindig fenntartott IP-címet kapjon. Lehet, hogy ellenőriznie kell az útválasztó beállításait, ha valami hasonlót szeretne megtenni.

Ha a kapcsolat sikeres, gratulálunk, most már rendelkezik VPN-szerverrel! De kívülről nem férhet hozzá ... még.

Ha csak egy OpenVPN szervert szeretne obfuscation proxy nélkül, akkor ugorhat a Port Forwarding lehetőségre .

Obfuscation Proxy telepítése

Az Obfs4 kódolási proxy. Úgy leplezi le internetes forgalmát, hogy zajnak tűnjön. Valaki, aki a forgalmát szemléli, valójában nem fogja tudni, mit csinál, és megvédi Önt az aktív tesztelő támadásoktól, amelyeket a kínai nagy tűzfal használ.

Megjegyzés: Ez a módszer nem fog működni, ha az ellenfél csak az engedélyezőlistán szereplő forgalmat engedélyezi :(

Telepítsük most a proxy szervert.

0. Telepítse a szükséges csomagot:

apt-get update && apt-get install obfs4proxy
  1. Hozzon létre egy könyvtárat, amely megtartja a konfigurációt.
sudo mkdir -p /var/lib/tor/pt_state/obfs4

2. Hozza létre a konfigurációs fájlt.

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

A konfigurációs fájlba beilleszti a következő dolgokat:

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

A TOR_PT_SERVER_BINDADDR az a cím, amelyen a proxy meghallgatja az új kapcsolatokat. Az én esetemben ez az 0.0.0.0:444- miért 444 és nem 443? Nos, mert nem akarom megváltoztatni az OpenVPN kiszolgáló konfigurációját, amely éppen a 443-on figyel. Ezenkívül később ezt a címet a Port továbbítás segítségével a 443-ra fogom feltérképezni.

A TOR_PT_ORPORT az OpenVPN szerverre kell mutatnia. Esetemben a szerverem fut127.0.0.1:443

3. Hozzon létre egy SystemD szolgáltatásfájlt.

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

Ezután illessze be a következő tartalmat:

[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. Indítsa el az Obfuscation proxyt.

Most győződjön meg arról, hogy az OpenVPN fut, és futtassa a következő parancsokat a proxy elindításához és a rendszerindításkor történő elindításának engedélyezéséhez.

sudo systemctl start obfs4proxysudo systemctl enable obfs4proxy

5. Mentse el a tanúsító kulcsot

A szolgáltatás elindulása után futtassa a következő parancsot, és mentse a cert KEY-t.

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/

If you have any questions hit me up on Twitter.