
قم بإعداد شبكة VPN شخصية في السحابة
Algo VPN عبارة عن مجموعة من نصوص Ansible البرمجية التي تبسّط إعداد شبكة VPN شخصية عبر WireGuard وIPsec. يستخدم الإعدادات الافتراضية الأكثر أمانًا المتاحة ويعمل مع مزودي الخدمات السحابية الشائعين.
لمزيد من المعلومات، اطّلع على إعلان الإصدار.
أسهل طريقة لتشغيل خادم Algo هي تشغيله على نظامك المحلي أو من Google Cloud Shell، والسماح له بإعداد جهاز افتراضي جديد في السحابة نيابةً عنك.
أنشئ حسابًا لدى مزود استضافة سحابية. يدعم Algo DigitalOcean (الأسهل استخدامًا)، وAmazon Lightsail، وAmazon EC2، وVultr، وMicrosoft Azure، وGoogle Compute Engine، وScaleway، وDreamCompute، وLinode، وغيرها من خدمات الاستضافة السحابية المبنية على OpenStack، والاستضافة السحابية المبنية على CloudStack، أو Hetzner Cloud.
احصل على نسخة من Algo. سيتم تشغيل نصوص Algo من نظامك المحلي. هناك طريقتان للحصول على نسخة:
نزّل ملف ZIP. فك ضغط الملف لإنشاء مجلد باسم algo-master يحتوي على نصوص Algo البرمجية.
استخدم git clone لإنشاء مجلد باسم algo يحتوي على نصوص Algo البرمجية:
git clone https://github.com/trailofbits/algo.git
اضبط خيارات التكوين. افتح config.cfg في محرر النصوص المفضل لديك. حدد المستخدمين الذين تريد إنشاءهم في قائمة users. أنشئ مستخدمًا فريدًا لكل جهاز تنوي توصيله بشبكة VPN الخاصة بك. يجب عليك أيضًا مراجعة الخيارات الأخرى قبل النشر، لأن تغيير رأيك فيها لاحقًا .
وهكذا انتهيت! يمكنك الآن إعداد العملاء للاتصال بشبكة VPN الخاصة بك. تابع إلى إعداد عملاء VPN أدناه.
"# Congratulations! #"
"# Your Algo server is running. #"
"# Config files and certificates are in the ./configs/ directory. #"
"# Go to https://whoer.net/ after connecting #"
"# and ensure that all your traffic passes through the VPN. #"
"# Local DNS resolver 172.16.0.1 #"
"# The p12 and SSH keys password for new users is XXXXXXXX #"
"# The CA key password is XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX #"
"# Shell access: ssh -F configs/<server_ip>/ssh_config <hostname> #"
تُوضع الشهادات وملفات التكوين التي سيحتاجها المستخدمون في مجلد configs. تأكد من تأمين هذه الملفات لأن كثيرًا منها يحتوي على مفاتيح خاصة. تُحفظ جميع الملفات ضمن مجلد فرعي باسم عنوان IP الخاص بخادم Algo VPN الجديد.
مهم لمستخدمي IPsec: إذا كنت تريد إضافة المستخدمين أو حذفهم لاحقًا، يجب تحديد yes عند ظهور السؤال Do you want to retain the keys (PKI)? أثناء نشر الخادم. يحافظ هذا على سلطة الشهادات (CA) اللازمة لإدارة المستخدمين.
يُستخدم WireGuard لتوفير خدمات VPN على أجهزة Apple. يُنشئ Algo ملف تكوين WireGuard باسم wireguard/<username>.conf ورمز QR باسم wireguard/<username>.png لكل مستخدم محدّد في config.cfg.
على iOS، ثبّت تطبيق WireGuard من App Store. ثم استخدم تطبيق WireGuard لمسح رمز QR أو أرسل ملف التكوين إلى الجهاز عبر AirDrop.
على macOS، ثبّت تطبيق WireGuard من Mac App Store. سيظهر WireGuard في شريط القوائم بمجرد تشغيل التطبيق. انقر على أيقونة WireGuard، واختر Import tunnel(s) from file...، ثم حدد ملف تكوين WireGuard المناسب.
على iOS أو macOS، يمكنك تفعيل "Connect on Demand" و/أو استبعاد شبكات Wi-Fi موثوقة معينة (مثل شبكة منزلك أو عملك) عن طريق تعديل تكوين النفق في تطبيق WireGuard. (لا يمكن لـ Algo فعل ذلك تلقائيًا نيابةً عنك.)
إذا كنت تفضّل استخدام VPN المدمج IPsec على أجهزة Apple، أو تحتاج إلى تفعيل "Connect on Demand" أو استبعاد شبكات Wi-Fi تلقائيًا، فراجع دليل إعداد عميل Apple لـ IPsec للحصول على تعليمات تكوين مفصلة.
يُستخدم WireGuard لتوفير خدمات VPN على Android. ثبّت عميل WireGuard. استورد ملف wireguard/<name>.conf المطابق إلى جهازك، ثم أنشئ اتصالًا جديدًا باستخدامه. راجع دليل إعداد Android للحصول على تعليمات التثبيت والتكوين التفصيلية.
يُستخدم WireGuard لتوفير خدمات VPN على Windows. يُنشئ Algo ملف تكوين WireGuard باسم wireguard/<username>.conf لكل مستخدم محدّد في config.cfg.
ثبّت عميل WireGuard. استورد ملف wireguard/<username>.conf المُنشأ إلى جهازك، ثم أنشئ اتصالًا جديدًا باستخدامه. راجع تعليمات إعداد Windows للحصول على شرح أكثر تفصيلًا واستكشاف الأخطاء وإصلاحها.
يمكن لعملاء Linux استخدام WireGuard أو IPsec:
WireGuard: يعمل WireGuard بشكل رائع مع عملاء Linux. راجع دليل إعداد WireGuard على Linux للحصول على تعليمات خطوة بخطوة لتكوين WireGuard على Ubuntu والتوزيعات الأخرى.
IPsec: لعملاء strongSwan لـ IPsec (بما في ذلك OpenWrt وUbuntu Server والتوزيعات الأخرى)، راجع دليل إعداد IPsec على Linux للحصول على تعليمات تكوين مفصلة.
بالنسبة لموجّهات OpenWrt التي تستخدم WireGuard، راجع دليل إعداد OpenWrt لـ WireGuard للحصول على تعليمات تكوين خاصة بالموجّه.
بالنسبة للأجهزة غير المشمولة أعلاه أو للتكوين اليدوي، ستحتاج إلى شهادات وملفات تكوين محددة. تعتمد الملفات التي تحتاجها على منصة جهازك وبروتوكول VPN (WireGuard أو IPsec).
إذا فعّلت دور نفق SSH الاختياري، سيتم إنشاء حسابات مستخدمين محليين لكل مستخدم في config.cfg، وستكون ملفات SSH authorized_key الخاصة بهم في مجلد configs (user.pem). لا تمتلك حسابات مستخدمي SSH وصولًا إلى الصدفة، ولا يمكنها المصادقة بكلمة مرور، ولديها خيارات نفق محدودة فقط (مثل اشتراط ssh -N). يضمن ذلك حصول مستخدمي SSH على أقل صلاحيات مطلوبة لإعداد نفق دون القدرة على تنفيذ أي إجراءات أخرى على خادم Algo.
استخدم مثال الأمر أدناه لبدء نفق SSH عن طريق استبدال <user> و<ip> بقيمك الخاصة. بمجرد إعداد النفق، يمكنك تكوين متصفح أو تطبيق آخر لاستخدام 127.0.0.1:1080 كخادم وكيل SOCKS لتوجيه حركة المرور عبر خادم Algo:
ssh -D 127.0.0.1:1080 -f -q -C -N <user>@algo -i configs/<ip>/ssh-tunnel/<user>.pem -F configs/<ip>/ssh_config
تم تكوين خادم Algo الخاص بك للوصول عبر SSH بالمفاتيح فقط لأغراض إدارية. افتح تطبيق الطرفية، ونفّذ cd إلى مجلد algo-master حيث نزّلت Algo في الأصل، ثم استخدم الأمر المعروض في رسالة النجاح:
ssh -F configs/<ip>/ssh_config <hostname>
حيث <ip> هو عنوان IP الخاص بخادم Algo. إذا وجدت نفسك تسجّل الدخول إلى الخادم بانتظام، فسيكون من المفيد تحميل مفتاح SSH الخاص بـ Algo تلقائيًا. أضف المقتطف التالي إلى نهاية ~/.bash_profile لإضافته إلى بيئة الصدفة بشكل دائم:
ssh-add ~/.ssh/algo > /dev/null 2>&1
بدلاً من ذلك، يمكنك اختيار تضمين التكوين المُنشأ لأي خوادم Algo تم إنشاؤها في إعداد SSH الخاص بك. عدّل الملف ~/.ssh/config لإضافة هذا التوجيه في الأعلى:
Include <algodirectory>/configs/*/ssh_config
حيث <algodirectory> هو المجلد الذي استنسخت فيه Algo.
يجعل Algo إضافة المستخدمين أو إزالتهم من خادم VPN الخاص بك أمرًا سهلاً بعد النشر الأولي.
لمستخدمي IPsec: يجب أن تكون قد حددت yes عند ظهور السؤال Do you want to retain the keys (PKI)? أثناء النشر الأولي للخادم. يحافظ هذا على سلطة الشهادات اللازمة لإدارة المستخدمين. يجب عليك أيضًا حفظ كلمتَي مرور p12 ومفتاح CA المعروضتين أثناء النشر، لأنهما تُعرضان مرة واحدة فقط.
لإضافة المستخدمين أو إزالتهم، عدّل أولاً قائمة users في ملف config.cfg. أضف أسماء مستخدمين جديدة أو أزل الموجودة حسب الحاجة. ثم انتقل إلى مجلد algo في الطرفية وشغّل:
macOS/Linux:
./algo update-users
Windows:
.\algo.ps1 update-users
بعد اكتمال العملية، سيتم إنشاء ملفات تكوين جديدة في مجلد configs لأي مستخدمين جدد. سيتم تحديث خادم Algo VPN ليحتوي فقط على المستخدمين المدرجين في ملف config.cfg. لن يتمكن المستخدمون الذين تمت إزالتهم من الاتصال بعد الآن، وسيحصل المستخدمون الجدد على شهادات وملفات تكوين جديدة جاهزة للاستخدام.
يتّبع Algo نهجًا عمليًا تجاه الخصوصية. افتراضيًا، نقلل من التسجيل مع الاحتفاظ بمعلومات كافية للأمان واستكشاف الأخطاء وإصلاحها.
ما يتم تسجيله افتراضيًا:
sudo wg - تعرض آخر نقطة نهاية ووقت المصافحة)تتحكم إعدادان رئيسيان في الخصوصية ضمن config.cfg:
strongswan_log_level: -1 - يتحكم في تسجيل اتصالات StrongSwan (-1 = معطّل، 2 = تصحيح)privacy_enhancements_enabled: true - المفتاح الرئيسي لتدوير السجلات ومسح السجل وتصفية السجلات والتنظيفلتفعيل التصحيح الكامل عند استكشاف الأخطاء وإصلاحها، اضبط كلاً من strongswan_log_level: 2 وprivacy_enhancements_enabled: false. سيؤدي ذلك إلى التقاط سجلات اتصال مفصلة وتعطيل جميع ميزات الخصوصية. تذكر التراجع عن هذه التغييرات بعد الانتهاء من التصحيح.
بعد النشر، تحقق من إعدادات الخصوصية الخاصة بك:
ssh -F configs/<server_ip>/ssh_config <hostname>
sudo /usr/local/bin/privacy-monitor.sh
الخصوصية المثالية مستحيلة مع أي حل VPN. يرى مزود الخدمة السحابية الخاص بك بيانات وصفية لحركة مرور الشبكة ويسجلها بغض النظر عن تكوين خادمك. وبالطبع، يعرف مزود خدمة الإنترنت (ISP) أنك تتصل بخادم VPN، حتى لو لم يستطع رؤية ما تفعله عبره.
للحصول على أعلى مستوى من الخصوصية، تعامل مع خوادم Algo الخاصة بك على أنها قابلة للاستبدال. أنشئ مثيلًا جديدًا عندما تحتاجه، واستخدمه لغرضك المحدد، ثم دمّره بالكامل. يمكن أن تكون الطبيعة المؤقتة للبنية التحتية السحابية ميزة خصوصية إذا استخدمتها عن قصد.
إذا قرأت جميع الوثائق وكان لديك المزيد من الأسئلة، أنشئ نقاشًا جديدًا.
ظللت أشتكي طويلاً من الحالة المزرية لخدمات VPN، وقد حان الوقت على الأرجح لإلقاء محاضرة مناسبة حول هذا الموضوع. الخلاصة: استخدموا Algo.
-- Kenn White
قبل اختيار مزود أو تطبيق VPN، تأكد من إجراء بعض البحث https://research.csiro.au/ng/wp-content/uploads/sites/106/2016/08/paper-1.pdf ... – أو فكّر في Algo
-- The Register
Algo سهل وآمن حقًا.
-- the grugq
جرّبت Algo VPN، وهي مجموعة نصوص برمجية تتيح لك إعداد VPN في السحابة في وقت قصير جدًا، حتى لو لم تكن تعرف الكثير عن التطوير. ويجب أن أقول إنني أعجبت كثيرًا بنهج Trail of Bits.
-- Romain Dillet لصالح TechCrunch
إذا كنت غير مرتاح لدفع المال لمزود VPN عشوائي ومجهول الهوية، فهذا هو الحل الأفضل.
-- Thorin Klosowski لصالح Lifehacker
راجع دليل التطوير الخاص بنا للحصول على معلومات حول:
جميع التبرعات تدعم استمرار التطوير. شكرًا!
Algo مرخّص وموزَّع بموجب AGPLv3. إذا كنت ترغب في توزيع تعديل أو خدمة مغلقة المصدر مبنية على Algo، فيُرجى التفكير في شراء استثناء. كما هو الحال مع الطرق المذكورة أعلاه، سيساعد ذلك في دعم استمرار التطوير.
ابدأ النشر. عُد إلى الطرفية. داخل مجلد Algo، شغّل النص البرمجي المناسب لمنصتك:
macOS/Linux:
./algo
Windows:
.\algo.ps1
في المرة الأولى التي تشغّل فيها النص البرمجي، سيُثبّت تلقائيًا بيئة Python المطلوبة (Python 3.11+). وفي المرات اللاحقة، يبدأ العمل فورًا على جميع المنصات (macOS وLinux وWindows عبر WSL). يستخدم نص Windows PowerShell برنامج WSL تلقائيًا عند الحاجة، لأن Ansible يتطلب بيئة شبيهة بيونكس. تتوفر العديد من الميزات الاختيارية، ولا يُشترط أي منها للحصول على خادم VPN كامل الوظائف. هذه الميزات الاختيارية موصوفة في وثائق النشر.