كيفية تشغيل خادم OpenVPN الخاص بك على Raspberry PI

مرحبا جميعا!

سأشرح في هذه المقالة القصيرة كيفية إعداد خادم VPN (الشبكة الافتراضية الخاصة) الخاصة بك على Raspberry PI مع OpenVPN. بعد أن نقوم بإعداد الخادم ، سنقوم بإعداد خادم تشويش لإخفاء حركة المرور لدينا مما يشير إلى أننا نستخدم VPN. سيساعدنا هذا في التهرب من شكل من أشكال الرقابة.

لماذا تستخدم VPN؟

أولاً ، دعنا نتحدث عن سبب رغبتك في استخدام خادم VPN:

  1. تجنب الرجل في الوسط الهجمات. إذا كان لديك مستخدم ضار على شبكتك المحلية - حتى زميلك في الغرفة - فإن هذا الشخص قادر على مراقبة حركة المرور غير المشفرة والتلاعب بها.
  2. إخفاء نشاطك على الإنترنت من ISP (مزود خدمة الإنترنت) أو الجامعة ، في حالتي.
  3. إلغاء حظر الخدمات. تحظر جامعتي جميع حزم بروتوكول مخطط بيانات المستخدم (UDP). هذا يعني أنه لا يمكنني استخدام أي تطبيق يتصل عبر UDP. لا يمكنني استخدام عميل البريد الإلكتروني الخاص بي أو ممارسة الألعاب أو حتى استخدام Git!

قررت إعداد VPN على الإنترنت المنزلي باستخدام Raspberry Pi. بهذه الطريقة يمكنني الاتصال بشبكتي المنزلية أثناء وجودي في الجامعة. إذا كنت بحاجة إلى خادم VPN في بلد آخر ، فيمكنك شراء خادم افتراضي خاص بقيمة 5 دولارات شهريًا من DigitalOcean. يمكنك استخدام رابط الإحالة الخاص بي للحصول على خصم 10 دولارات - أي شهرين من VPN المجاني. لكن ليس عليك استخدامه إذا كنت لا تريد ذلك.

تثبيت OpenVPN

هذه الخطوة سهلة حقًا ، لأننا سنستخدم برنامج شل النصي للقيام بذلك نيابة عنك. لذلك عليك فقط "الضغط" على التالي والانتهاء.

سيستغرق التثبيت وقتًا طويلاً ، اعتمادًا على حجم المفتاح الذي اخترته. على Raspberry Pi 3 Model B ، استغرق الأمر حوالي 3 ساعات.

يرجى الذهاب إلى هذا المستودع ثم اتباع التعليمات

تثبيت Angristan / OpenVPN

تثبيت OpenVPN - قم بإعداد خادم OpenVPN الخاص بك على Debian و Ubuntu و Fedora CentOS و Arch Linux github.com

إذا كنت لا تعرف عنوان IP الخاص بخادمك ، فضع فقط 0.0.0.0. لقد اخترت 443المنفذ و TCP (بروتوكول التحكم في الإرسال) للبروتوكول.

ملاحظة : هذا مهم جدًا لأن جامعتي تسمح فقط بمنافذ 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. احفظ مفتاح الشهادة

بعد بدء الخدمة ، قم بتشغيل الأمر التالي واحفظ مفتاح الشهادة.

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.