كيفية إنشاء شبكة VPN خفيفة الوزن بتقنية P2P باستخدام Tinc


Tinc هو محول شبكة افتراضية خاصة (VPN) مفتوح المصدر يوفر طريقة بسيطة لإنشاء شبكة شبكية خاصة من نظير إلى نظير (P2P) في Linux وWindows وmacOS. على غرار OpenVPN وWireguard، يمكنه ربط أجهزة كمبيوتر متعددة عبر طبولوجيا شبكة مختلفة في شبكة LAN افتراضية واحدة. نعرض لك هنا فوائد استخدام Tinc وكيفية تثبيت وإنشاء شبكة شبكية بسيطة تعتمد على Tinc.

لماذا نستخدم Tinc بدلاً من Wireguard وOpenVPN؟

إحدى نقاط البيع الفريدة لـ Tinc مقارنة ببرامج VPN الأخرى هي أنها مصممة لتكون شبكة شبكية. وهذا يعني أنه، على عكس Wireguard، يمكنه التكيف بسهولة مع التغيرات في ظروف الشبكة. وهذا يجعله أكثر مرونة، خاصة بالنسبة لأجهزة الكمبيوتر ذات الاتصال الضعيف بالشبكة.

وبصرف النظر عن ذلك، يتمتع Tinc بمعظم الميزات التي تتوقعها من شبكة VPN تقليدية مثل OpenVPN. يتضمن ذلك القدرة على اجتياز بيئات NAT وإنشاء أنفاق مشفرة وربط تطبيقات الشبكة المحلية فقط.

محطة طرفية تعرض أداء ping لـ Tinc على Debian.

وأخيرًا، تسعى Tinc أيضًا إلى إجراء كل اتصال تقوم به داخل الشبكة P2P. يمكن أن يتم ذلك إما من خلال الاكتشاف التلقائي للأقران أو التنسيق مع خادم Tinc الذي يمكن الوصول إليه بشكل عام. ونتيجة لذلك، فإن الاتصالات داخل شبكة Tinc VPN ليست مرنة فحسب، ولكنها أيضًا سريعة وسريعة الاستجابة.

من الجيد أن تعرف: هل ما زلت لم تقرر بعد أي VPN تختار؟ راجع مقالتنا حيث نلقي نظرة على كيفية تكديس Wireguard وOpenVPN ضد بعضهما البعض.

تثبيت Tinc على نظام Linux

الخطوة الأولى في تثبيت Tinc هي التأكد من تحديث نظامك. في أوبونتو، قم بتشغيل الأمر التالي:

sudo apt update && sudo apt upgrade -y

قم بتنزيل Tinc وتثبيته مباشرةً من مستودعات حزم Ubuntu:

محطة توضح عملية تثبيت الحزمة لـ Tinc في Ubuntu.

لتثبيت Tinc على توزيعات Linux الأخرى، استخدم مدير الحزم المناسب لذلك النظام. على سبيل المثال، أحتاج إلى الركض sudo dnf install tinc لجلب البرنامج في فيدورا.

محطة توضح عملية التثبيت في Fedora Linux.

تأكد من أنك قمت بتثبيت Tinc بشكل صحيح عن طريق فتح جلسة طرفية وتشغيلها tincd --version.

محطة تعرض إصدار Tinc الحالي الذي يعمل على Ubuntu.

إنشاء شبكة شبكية أساسية باستخدام Tinc

باستخدام Tinc على جهازك، يمكنك الآن تكوين أول شبكة تعتمد على Tinc. أنشئ مجلدًا جديدًا داخل “/etc/tinc”. سيحتوي هذا على جميع الملفات المتعلقة بعقدة Tinc الخاصة بك:

sudo mkdir -p /etc/tinc/mynetwork/hosts

قم بإنشاء ملف تكوين جديد باستخدام محرر النصوص المفضل لديك:

sudo nano /etc/tinc/mynetwork/tinc.conf

الصق كتلة التعليمات البرمجية التالية داخل ملف التكوين الجديد الخاص بك:

Name = mynode
Device = /dev/net/tun
محطة تعرض التكوين الخاص بتثبيت Tinc في Ubuntu.

ملحوظة: قد تقوم بعض توزيعات Linux بتغيير موقع محول tun داخل “/ dev”. للعثور على المسار الدقيق لنظامك، قم بتشغيل:

 find /dev -name *tun* -type c

قم بإنشاء ملف نصي ضمن المجلد “hosts” باسم عقدة Tinc الخاصة بك والصق ما يلي بداخله:

Subnet = 192.168.11.1/32
Address = YOUR-MACHINE-IP-ADDRESS-HERE
Port = 655

استبدل قيمة متغير “العنوان” بعنوان IP الخاص بجهازك. يمكنك العثور على هذا عن طريق الجري ip addr.

محطة تسلط الضوء على عنوان IP الخاص لجهاز Ubuntu.

ملحوظة: تحتاج إلى توفير عنوان IP العام لجهازك إذا كنت تريد إنشاء شبكة VPN يمكن الوصول إليها بشكل عام.

احفظ ملف المضيفين الخاص بجهازك، ثم أنشئ ملفين ضمن “/etc/tinc/mynetwork:”

sudo touch /etc/tinc/mynetwork/tinc-{up,down}
sudo chmod +x /etc/tinc/mynetwork/tinc-(up,down}

افتح ملف “tinc-up”، ثم قم بلصق كود الباش التالي بداخله. يؤدي هذا إلى إنشاء واجهة الشبكة الافتراضية لـ Tinc وتعيين عنوان IP لتلك الواجهة:

#!/bin/sh
 
ip link set $INTERFACE up
ip addr add 192.168.11.1/32 dev $INTERFACE
ip route add 192.168.11.0/24 dev $INTERFACE

احفظ الملف، ثم افتح ملف “tinc-down” والصق بداخله أيضًا ما يلي. يؤدي هذا إلى عكس “tinc-up:” حيث يقوم بإلغاء تعيين عنوان IP من واجهة Tinc الخاصة بك ويزيل تلك الواجهة من جهازك:

#!/bin/sh
 
ip route del 192.168.11.0/24 dev $INTERFACE
ip addr del 192.168.11.1/32 dev $INTERFACE
ip link set $INTERFACE down
محطة تعرض محتويات البرنامج النصي tinc-down في Ubuntu.

قم بإنشاء زوج مفاتيح لعقدة Tinc الخاصة بك عن طريق تشغيل tincd:

sudo tincd -n mynetwork --generate-keys=4096

يضعط يدخل مرتين لقبول موقع الحفظ الافتراضي لكل من المفاتيح الخاصة والعامة على عقدة Tinc الخاصة بك.

محطة تعرض عملية إنشاء زوج المفاتيح لـ Tinc في Ubuntu.

إضافة عميل Tinc الأول

لإضافة عميل Tinc جديد، ابدأ بالتأكد من تثبيت Tinc بشكل صحيح على جهازك الثاني.

محطة تعرض إصدار Tinc على دبيان.

قم بإنشاء بنية الدليل لتكوين Tinc الخاص بك باستخدام mkdir -p.

محطة طرفية تعرض بنية الدليل لتكوين Tinc الخاص بالعميل.

استخدم محرر النصوص المفضل لديك لإنشاء ملف التكوين لعميل Tinc الخاص بك:

sudo nano /etc/tinc/mynetwork/tinc.conf

الصق أسطر التعليمات البرمجية التالية داخل ملف التكوين الخاص بجهازك الثاني:

Name = myclient
Device = /dev/net/tun
ConnectTo = mynode

قم بإنشاء ملف باسم جهاز Tinc الخاص بك ضمن “/etc/tinc/mynetwork/hosts”. في هذه الحالة، قمت بتسمية جهازي الثاني باسم “myclient”، لذا سأقوم بإنشاء ملف باسم “myclient:”

sudo nano /etc/tinc/mynetwork/hosts/myclient

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

Subnet = 192.168.11.2/32
Port = 655

احفظ ملف المضيفين الجديد، ثم أنشئ نصًا برمجيًا “tinc-up” و”tinc-down” على جهازك الثاني:

sudo touch /etc/tinc/mynetwork/tinc-{up,down}
sudo chmod +x /etc/tinc/mynetwork/tinc-{up,down}
محطة طرفية تعرض ملفات البرامج النصية tinc-up وtinc-down مع بتات الأذونات الصحيحة في جهاز Tinc الثاني.

افتح ملف tinc-up باستخدام محرر النصوص المفضل لديك، ثم الصق كتلة التعليمات البرمجية التالية بداخله:

#!/bin/sh
ip link set $INTERFACE up
ip addr add 192.168.11.2/32 dev $INTERFACE
ip route add 192.168.11.0/24 dev $INTERFACE

احفظ ملف tinc-up، ثم افتح tinc-down والصق أسطر التعليمات البرمجية التالية بداخله أيضًا:

#!/bin/sh
 
ip route del 192.168.11.0/24 dev $INTERFACE
ip addr del 192.168.11.2/32 dev $INTERFACE
ip link set $INTERFACE down

قم بإنهاء تكوين عميل Tinc الخاص بك عن طريق إنشاء زوج المفاتيح الخاص به:

sudo tincd -n mynetwork --generate-keys=4096
محطة توضح عملية إنشاء زوج المفاتيح في جهاز Tinc الثاني.

تشغيل شبكة Tinc Mesh

في هذه المرحلة، أصبح لديك الآن برنامجان خفيان من Tinc تم تكوينهما بشكل صحيح. ومع ذلك، لا تزال بحاجة إلى ربط هذين البرنامجين الخفيين من Tinc لإنشاء P2P VPN الخاص بك في Linux. للقيام بذلك، تحتاج إلى نسخ ملف تكوين المضيفين من عقدة Tinc الخاصة بك إلى العميل الخاص بك والعكس صحيح.

ابدأ بفتح الجلسة الطرفية للعقدة الخاصة بك والانتقال إلى الدليل “/etc/tinc/mynetwork/hosts”:

cd /etc/tinc/mynetwork/hosts

انسخ ملف التكوين داخل هذا الدليل وانقله إلى العميل الخاص بك. في حالتي، سأستخدم scp لإرسال هذا الملف عبر ssh:

scp ./mynode YOUR-CLIENT-IP-ADDRESS:~
محطة توضح عملية نقل تكوين عميل Tinc من نظام إلى آخر.

ملحوظة: على الرغم من أنني استخدمت scp في هذا المثال، يمكنك أيضًا نقلها يدويًا باستخدام محركات الأقراص المحمولة.

انتقل إلى جهاز العميل الخاص بك وانسخ ملف المضيفين الذي قمت بنقله للتو إلى مجلد “/etc/tinc/mynetwork/hosts” الخاص بالعميل:

sudo cp -v ~/mynode /etc/tinc/mynetwork/hosts/

بعد ذلك، قم بتشغيل scp على جانب جهاز العميل لنقل ملف المضيفين الخاص به مرة أخرى إلى العقدة الخاصة بك:

scp /etc/tinc/mynetwork/hosts/myclient YOUR-NODE-IP-ADDRESS:~
محطة طرفية توضح عملية نقل ملف تكوين Tinc الخاص بالعميل إلى نظير في الشبكة.

انسخ ملف المضيفين الخاص بعميلك إلى دليل المضيفين الخاص بالعقدة الخاصة بك:

sudo cp ~/myclient /etc/tinc/mynetwork/hosts/

وفي ملاحظة جانبية: هل تشعر بالقلق إزاء خصوصيتك الشخصية على الإنترنت؟ تعرف على كيفية تحسين خصوصية وأمان جهاز الكمبيوتر الذي يعمل بنظام التشغيل Linux.

بدء تشغيل شبكة Tinc Mesh

ابدأ تشغيل شبكة Tinc التي تم تكوينها بالكامل عن طريق تشغيل الأمر التالي على كل مضيف لديك:

تأكد من قدرتك على التواصل مع العقد الخاصة بك من خلال واجهة Tinc عن طريق إجراء اختبار اتصال بسيط:

محطة توضح زمن استجابة Tinc VPN بالإضافة إلى جهاز الشبكة الذي يعمل على Ubuntu.

وأخيرًا، قم بتمكين خدمة Tinc للتأكد من أن VPN الخاص بك سيعمل عند بدء تشغيل النظام:

sudo systemctl enable --now tinc@mynetwork.service
محطة تعرض الأمر لتمكين عملية Tinc عند بدء التشغيل.

يعد تعلم كيفية إنشاء VPN شبكي P2P خاص بك في Linux باستخدام Tinc مجرد خطوة أولى في استكشاف هذا العالم الرائع لشبكات الكمبيوتر. قم بالتعمق في تعقيدات هذه التكنولوجيا من خلال الاطلاع على نظرة شاملة حول شبكات VPN.

مصدر الصورة: Growtika عبر Unsplash. جميع التعديلات ولقطات الشاشة بواسطة Ramces Red.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى