كيفية تعطيل Ubuntu Dock على Ubuntu 20.04
أحيانًا يكون من الأفضل مغادرة الرصيف والإبحار بعيدًا!
قم بإعداد VPN ذاتية الاستضافة باستخدام Wireguard
A VPN (الشبكة الافتراضية الخاصة) يسمح للمستخدم للاتصال بشبكة خاصة بعد كما لو كان جهاز الكمبيوتر الخاص بالمستخدم ترتبط مباشرة إلى شبكة الاتصال الخاصة. تم تطوير التكنولوجيا في البداية للسماح بالوصول عن بُعد إلى الشبكة الداخلية الخاصة للشركة ، للموظفين غير الموجودين بالفعل في موقع الشبكة الداخلية.
يتم نشر خادم VPN في موقع الشبكة الداخلية. هذا الخادم موجود على الشبكة العامة ويمكن للموظف الوصول إليه باستخدام عميل VPN. المصادقة مطلوبة للاتصال بخادم VPN. يتم تأمين الاتصال بين خادم VPN وعميل VPN باستخدام بروتوكول الأنفاق. لاحظ أن هذا الاتصال قد يكون أو لا يكون مشفرًا ، ولكن عادةً ما يكون مشفرًا في معظم بروتوكولات VPN.
استخدام آخر لشبكة VPN هو عدم الكشف عن هويتك عند الوصول إلى الإنترنت أو التحايل على القيود الجغرافية المفروضة أثناء الوصول إلى بعض مواقع الويب. في مثل هذه الحالات ، فإن الشبكة التي يريد المستخدم الاتصال بها ليست شبكة خاصة ، ولكنها بدلاً من ذلك هي الإنترنت.
تم تطوير العديد من بروتوكولات VPN على مر السنين. تستفيد هذه البروتوكولات من بروتوكولات الأنفاق المختلفة وخوارزميات التشفير للاتصال بين الخادم والعميل.
أحد هذه البروتوكولات ، الذي يكتسب استخدامًا واسعًا مؤخرًا ، هو Wireguard . Wireguard أخف وأبسط وأكثر أداءً من بروتوكولات VPN التقليدية المعروفة مثل OpenVPN و IPSec. تم تطبيقه بالفعل لنظام التشغيل Windows و Mac OS وعدد كبير من توزيعات Linux. في Linux ، يتم تنفيذه كوحدة kernel. وهي متوفرة في المستودعات الرسمية لـ Ubuntu 20.04.
في هذه المقالة ، سنرى كيفية إعداد خادم وعميل Wireguard VPN في Ubuntu 20.04.
التركيب
بالنسبة لهذه المقالة ، أقوم بإعداد خادم Wireguard على Ubuntu 20.04 Linode و Wireguard Client على جهازي المحلي باستخدام Ubuntu 20.04.
تقوم الحزمة wireguard
بتثبيت كل من Wireguard Server والعميل. قم بتشغيل الأمر التالي على كل من جهاز الخادم وجهاز العميل.
sudo apt install wireguard
تكوين الخادم
مفاتيح الأمان
نحتاج إلى إنشاء مجموعة من أزواج المفاتيح العامة / الخاصة من أجل مصادقة وتأمين اتصال Wireguard. يمكن القيام بذلك باستخدام الأوامر التالية:
sudo su
cd /etc/wireguard
umask 077
wg genkey | tee private_key | wg pubkey > public_key
لاحظ أننا نقوم بجميع مهام التكوين بصفتنا مستخدمًا متميزًا. والسبب هو أن الوصول إلى الدليل /etc/wireguard
ممنوع للمستخدمين العاديين ، ولا يمكن الوصول إلى الدليل بامتيازات sudo فقط لمستخدم عادي.
بعد ذلك ، قمنا بتعيين قناع إنشاء الملف على077
. هذا يعني أنه كلما تم إنشاء ملف جديد في هذا المجلد بأي عملية ، سيتم إخفاء أذوناته تلقائيًا بالرقم 077. على سبيل المثال. إذا تم إنشاء ملف في هذا المجلد بأذونات 777 ، فسيتم إخفاءه تلقائيًا وتصبح الأذونات فعليًا 700. ويتم ذلك بحيث يكون لمالك الملف فقط جميع الأذونات الخاصة بالملف ، ولا يمتلك أي شخص آخر أذونات.
في السطر التالي ، نقوم بإنشاء زوج المفاتيح العامة / الخاصة للخادم. يتم حفظها في الملفات private_key
و public_key
. لعرض المفاتيح ، قم بتشغيل:
cat private_key
cat public_key
انسخ المفتاح الخاص ، فنحن نحتاجه في الخطوة التالية.
ملاحظة: لا تشارك أبدًا مفتاحك الخاص علنًا!
ملف الضبط
لنقم بإنشاء ملف تكوين لخادم Wireguard. يمكنك اختيار أي اسم للملف. سنقوم بإنشاء ملف wg0.conf
في هذا المثال.
vim wg0.conf
أضف ما يلي إلى الملف.
[Interface]
Address = 10.20.43.1/24
SaveConfig = true
ListenPort = 51190
PrivateKey =
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o -j MASQUERADE; ip6tables -A FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE; ip6tables -D FORWARD -i wg0 -j ACCEPT; ip6tables -t nat -D POSTROUTING -o -j MASQUERADE
الصق المفتاح الخاص الذي نسخته مسبقًا في السطر 5 في الكود أعلاه.
يتعين علينا تكوين Wireguard على شبكة فرعية (افتراضية) مختلفة عن عنوان IP الخاص بالخادم. هنا ، لقد استخدمت 10.20.43.1 للخادم وسوف أستخدم 10.20.43.2 للعميل. يمكن استخدام أي شبكة فرعية هنا. للحصول على عنوان IP للخادم والواجهة ، قم بتشغيل:
ifconfig
الجزء المميز هو عنوان IP
لاحظ عنوان IP الخاص بالخادم. هذا مطلوب أثناء تكوين العميل.
الواجهة التي يستخدمها الخادم ، كما هو موضح في الصورة أعلاه ، هي eth0
. يمكن أن يختلف اسم الواجهة بناءً على شبكة المستخدم ، ويمكن أن يكون wlan0
أو wlp2s0
في حالة اتصال المستخدم بشبكة WiFi باستخدام بطاقة لاسلكية.
استبدل in PostUp
و PostDown
بواجهة الخاص بك ؛ في هذا المثال هو eth0
. PostUp
و PostDown
تستخدم توجيهات لتحديد أي يجب تشغيل الأوامر عند بدء تشغيل الملقم ويتوقف على التوالي. في مثالنا ، نستخدم iptables
الأمر لتعيين قواعد IP بحيث يشارك العملاء عنوان IP الخاص بالخادم. ستسقط القواعد بمجرد توقف الخادم.
حفظ وإنهاء الملف. عند استخدام vim ، اضغط على Esc ، ثم اكتب :wq
واضغط على Enter للحفظ والخروج.
إذا كنت تستخدم ufw
جدار حماية على الخادم ، فنحن بحاجة إلى السماح باتصالات UDP بمنفذ خادم VPN ، 51190.
ufw allow 51190/udp
بدء الخدمة
الآن بعد الانتهاء من التكوين ، يمكننا بدء خدمة Wireguard VPN.
لتمكين الخدمة من البدء في وقت التمهيد ، قم بتشغيل:
systemctl enable [email protected]
لاحظ أن هذا wg0
هو اسم ملف التكوين.
لبدء الخدمة ، قم بتشغيل:
service [email protected] start
تحقق من أن الخدمة قد بدأت بنجاح:
service [email protected] status
تحقق من أن الواجهة التي أنشأناها في ملف التكوين قد بدأت ، باستخدام الأمر IP.
ip a show wg0
تم الآن إعداد وتشغيل خادم Wireguard VPN. لنقم بتهيئة العميل الآن.
تكوين العميل
تكوين العميل لـ Wireguard يشبه إلى حد ما تكوين الخادم. نقوم بإنشاء المفاتيح للعميل ، ثم نقوم بإنشاء ملف التكوين.
مفاتيح الأمان
لإنشاء زوج المفاتيح العام / الخاص للعميل ، قم بتشغيل:
sudo su
cd /etc/wireguard
umask 077
wg genkey | tee client_private_key | wg pubkey > client_public_key
يتم الآن إنشاء المفاتيح العامة والخاصة للعميل في ملفات client_private_key
و client_public_key
.
تحقق من أنه تم إنشاؤها باستخدام cat
الأمر.
cat client_private_key
cat client_public_key
انسخ المفتاح الخاص المعروض حيث نحتاج إلى إضافته إلى ملف التكوين للعميل.
ملف الضبط
قم بإنشاء ملف التكوين بأي اسم تريده. سنقوم بإنشائه باسم wg0-client
هذا المثال.
vim wg0-client.conf
أضف التكوين التالي.
[Interface]
# IP Address and Private Key of the Client
Address = 10.20.43.2/24
PrivateKey =
[Peer]
# Public key, IP Address and Port of the Server
PublicKey =
Endpoint = :51190
AllowedIPs = 0.0.0.0/0, ::/0
أدخل عنوان الشبكة الفرعية للعميل. كما هو موضح سابقًا ، نستخدمها 10.20.43.2
للعميل في هذا المثال.
أضف المفتاح الخاص للعميل الذي تم إنشاؤه في الخطوة السابقة إلى السطر 4 في رمز التكوين أعلاه.
ضمن "Peer" ، نضيف معلومات حول خادم Wireguard VPN الذي نريد الاتصال به.
أدخل المفتاح العام للخادم. أدخل عنوان IP الخاص بالخادم ، والذي لاحظناه سابقًا ، وقم بنقله بالتنسيق المحدد مقابل نقطة النهاية . هذا هو المنفذ الذي حددناه في ملف تكوين الخادم والذي بدأت عليه خدمة VPN على الخادم.
يجب إدخال عناوين IP المسموح بها على النحو الوارد (0.0.0.0/0) بحيث يتم توجيه أي طلب على IP عام ديناميكي يستخدمه العميل دائمًا إلى خادم VPN.
حفظ وإنهاء الملف. عند استخدام vim ، اضغط على Esc ، ثم اكتب :wq
واضغط على Enter للحفظ والخروج.
قم بتمكين خدمة العميل للتشغيل مع كل عملية تمهيد ، وابدأ تشغيلها.
systemctl enable [email protected]
service [email protected] start
تحقق مما إذا كانت الخدمة قد بدأت.
service [email protected] status
إضافة نظير إلى الخادم
الآن لدينا خادم VPN والعميل قيد التشغيل. ومع ذلك ، لا يتم إنشاء نفق آمن بين الاثنين إلا إذا قمنا بإنشاء اتصال نظير إلى نظير بين الخادم والعميل.
ارجع إلى الخادم. أولاً ، قم بإيقاف خدمة VPN .
service [email protected] stop
بعد ذلك ، افتح ملف التكوين لإضافة التكوين للنظير (العميل).
vim /etc/wireguard/wg0.conf
قم بإلحاق الأسطر التالية بالملف.
[Peer]
PublicKey =
AllowedIPs = 10.20.43.2/32
الآن ، ابدأ تشغيل خدمة VPN مرة أخرى .
service [email protected] start
هذا كل شيء! هذا هو كل التكوين المطلوب لإعداد خادم وعميل Wireguard VPN. دعنا الآن نختبر VPN الخاص بنا.
اختبار VPN
أولاً ، لنقم بإجراء اختبار ping بسيط من العميل إلى الخادم ، للتأكد من عمل اتصال نفق VPN. قم بتشغيل ما يلي على العميل :
ping 10.20.43.1
بعد ذلك ، افتح مستعرض ويب وافتح أي موقع ويب للتحقق مما إذا كنت قادرًا على الاتصال بالإنترنت من جهاز العميل. يمكنك أيضًا التحقق من اتصالك بالإنترنت من سطر الأوامر باستخدام wget
.
wget
الآن ، قمنا بفحص اتصال النفق والاتصال بالإنترنت. إذا كان كلاهما يعمل ، فنحن بحاجة الآن إلى التأكد من أن كل حركة مرور الإنترنت القادمة إلى العميل تمر عبر الخادم.
لهذا ، نحتاج ببساطة إلى التحقق من عنوان IP الخاص بالعميل كما يراه الإنترنت. طريقة واحدة للقيام بذلك هي الذهاب إلى whatsmyip.org . أو من سطر الأوامر ، يمكننا الاستعلام عن خدمة أخرى مماثلة تسمى معلومات IP ، باستخدام Curl.
قم بتشغيل ما يلي على جهاز العميل
curl https://ipinfo.io/ip
نعم فعلا. إنه عنوان IP العام لـ Linode حيث يتم استضافة خادم VPN. هذه هي الطريقة التي يتم بها تحقيق إخفاء الهوية باستخدام VPN ، حيث يتم الآن رؤية عنوان IP لخادم VPN وليس جهاز الكمبيوتر الخاص بك في جميع أنحاء الإنترنت.
استنتاج
تعد سهولة الإعداد واحدة من أهم مزايا Wireguard على برامج VPN التقليدية مثل OpenVPN ، والتي تحتاج إلى مستوى أعلى من الشبكات ومعرفة التوجيه لإعدادها. ومع ذلك ، هناك نقص في الوثائق الرسمية التفصيلية الخاصة بـ Wireguard مما قد يتسبب في حدوث مشكلات إذا كان إعداد Wireguard الخاص بك يتسبب في حدوث أخطاء أو لا يعمل كما هو متوقع.
ومع ذلك ، يعد Wireguard خيارًا ممتازًا إذا كنت تريد شبكة افتراضية خاصة مستضافة ذاتيًا للاتصال الآمن عبر الإنترنت. لمعرفة المزيد حول Wireguard والبروتوكولات والتقنيات التي تستخدمها ، يمكنك التحقق من الموقع الرسمي .
أحيانًا يكون من الأفضل مغادرة الرصيف والإبحار بعيدًا!
طريقة سهلة لتغيير الدلائل في Linux من المحطة
تشرح لك هذه المقالة عملية إضافة مصادقة مفاتيح SSH على خادم Ubuntu 20.04 وتعطيل المصادقة المستندة إلى كلمة المرور.
تعرف على كيفية تحديث Firefox من Terminal على كمبيوتر Ubuntu Linux
الوصول بأمان إلى جهاز Ubuntu الخاص بك من أي مكان
التحقق من وجود ملف أو دليل من نص برمجي Bash
دليل سريع لتثبيت Google Chrome من سطر الأوامر على Ubuntu 20.04
Speedtest.net هي خدمة لاختبار سرعة اتصالك بالإنترنت. يستخدم خادم speedtest.net قريب للتنزيل
امنح امتيازات الجذر لأي مستخدم لديه sudo على Ubuntu 20.04 LTS
تحديث NodeJS باستخدام APT و NVM.