بعد الإعلان الأخير نسبيًا من قبل موزيلا عن إطلاق دعم لـ DNS-over-HTTPS (DoH) في الإنتاج على الشبكة ، تستمر الخلافات حول ما إذا كان هذا شرًا أو جيدًا. في رأيي ، فإن موقف "الشر" يعتمد بشكل أساسي على حقيقة أن التلاعب في نفس الوقت باستفسارات DNS الخاصة بك ، حتى لأغراض مفيدة لك ، سيكون أمرًا صعبًا ، لذلك في الوقت الحالي ، ما زلت في وضع "جيد".

في الاتحاد الروسي ، يضطر مشغلو الاتصالات ، الذين يضعون في ظل ظروف صارمة للغاية بموجب تشريعنا ، إلى بناء أنظمة متعددة المستويات متطورة لمنع الوصول إلى المحتوى المحظور بواسطة Roskomnadzor في الاتحاد الروسي ، في أحد المستويات التي يعمل فيها اعتراض DNS بنجاح أو أكثر. سيسمح لك استخدام DoH بالالتفاف حول هذا المستوى ، والذي مع استخدام VPN يمكن أن يجعل حياتك أسهل قليلاً. يرجى ملاحظة أن الحل في حد ذاته لا يمكن أن ينقذك من الحظر ، لأنه لا يكاد يوجد مزود في روسيا يعتمد فقط على التصفية من خلال DNS. تحتاج إلى خيار آخر للالتفاف على الحظر ، على سبيل المثال ، VPN ، أحد الخيارات الموضحة في مقالاتي السابقة.
إنه لأمر متناقض ، ولكن في panopticon الحالي ، لا يهددك مشغل الاتصالات بتجاوز أقفاله (باستخدام أدوات خاصة لهذا الغرض) ، لذلك إذا كنت خائفًا من إيذائه بهذه الطريقة ، فستذهب هذه المخاوف دون جدوى.
لكن التحول إلى متصفح خاص لتجاوز اعتراض DNS ليس هو طريقنا. طريقتنا هي نقل جميع الأجهزة في شبكتك المنزلية إلى DoH ، بسرعة وكفاءة ودون عمل غير ضروري.
تنصل
نظرًا لأن نشر طرق لتجاوز الوصول إلى المعلومات الممنوعة على أراضي الاتحاد الروسي ليس شرعيًا ، فإن الغرض من هذه المقالة هو التحدث عن طريقة تسمح لك بأتمتة الوصول إلى الموارد المسموح بها في أراضي الاتحاد الروسي ، ولكن بسبب تصرفات شخص ما لا يمكن الوصول إليها مباشرة من خلال مزودك. والوصول إلى الموارد الأخرى التي تم الحصول عليها نتيجة لإجراءات من المقال هو أحد الآثار الجانبية المؤسفة وهدف المقال ليس بأي حال من الأحوال.
TL ؛ د
نقوم بنشر خادم DNS القائم على Pi-Hole لدينا باستخدام Cloudflare DoH للاستعلامات إلى العالم. الهدف هو تشفير كافة استعلامات DNS وتجاوز عامل تصفية التصفية من خلال اعتراض DNS بهذه الطريقة. مكافأة مفيدة هي تصفية الإعلانات.
لا تفتح الدراية السحرية ، تعليمات بسيطة خطوة لأولئك الذين لا يريدون أن يفهموا كل التعقيدات بأنفسهم.
ماذا تحتاج لهذا
- الثقة Cloudflare. هذه في الواقع نقطة مهمة للغاية ، لأنه في التنفيذ الموصوف ، تتم معالجة جميع طلبات DNS الخاصة بك بواسطة خدمة Cloudflare. إذا كنت لا تثق به ، فسيتعين عليك تنفيذ حل آخر (وهذا الأمر أكثر تعقيدًا بقليل من الحل الموضح ، لكن الهدف من هذه المقالة ليس كذلك).
- لتكون قادرًا على دعم خادم Linux يعمل باستمرار على شبكتك المنزلية التي ستتعامل مع استعلامات DNS في أجهزتك. متطلبات Pi-Hole هي من 512M RAM (ومع ذلك ، لم أتحقق من العمل بحجم أصغر). إذا كان جهاز التوجيه الخاص بك أو NAS قادرًا على تشغيل الأجهزة الافتراضية - وهذا خيار ممتاز ، إذا كان Raspberry Pi أو كمبيوتر صغير آخر على ARM مستلقياً في مكان ما على الرف - ليس أقل جودة ، إذا كانت المزرعة الافتراضية على ESXi تطن على الميزانين في الممر - ما أقوله لك ، وأنت تعرف كل شيء بنفسك. إذا لم يكن لديك أي من هذا ، فيمكنك العثور على الحلول الأصغر ، مثل Orange Pi Zero ، في السوق الثانوية لوحدات بمئات روبل أو يتم إحضارها من علي مقابل أو ناقص الأموال نفسها. لكن اختيار النظام الأساسي هو أبعد من نطاق هذه المقالة ، لذلك نحن نعتقد أن لديك شيء ما. ومع ذلك ، يمكن طرح الأسئلة حول هذا الموضوع في التعليقات.
- يجب أن تكون على دراية لينكس والشبكات. أو على الأقل تريد الحصول على مثل هذه الفكرة. بما أنني لست مستعدًا لاحتضان الضخامة هذه المرة ، فسيتعين عليك دراسة بعض اللحظات غير المفهومة من أجلك أنت. ومع ذلك ، بالطبع ، سأجيب على أسئلة محددة في التعليقات ومن غير المرجح أن تكون هي الوحيدة التي يجب الإجابة عليها ، لذلك لا تتردد في طرحها.
مصدر البيانات
عنوان IPv4 لخادمنا على الشبكة المنزلية هو 192.168.1.10 ويتم تعيينه على أنه ثابت.
يتم تنفيذ الإعدادات على Linux من الجذر (أي قبل تشغيل التكوين ، نقوم بتشغيل sudo su - command).
لفترة وجيزة - منطق الحل
- تثبيت وتكوين Pi-Hole
- تثبيت وتكوين cloudflared
- تكوين جهاز التوجيه منزلك
- نحن نحل المشاكل
في الواقع القرار
1. تثبيت وتكوين Pi-Hole
Pi-Hole هي عبارة عن منصة منزلية مشهورة مصممة أساسًا لمكافحة الإعلانات عن طريق حظر طلبات النطاق من قائمة محدَّثة مركزياً. ليس أنه عنصر ضروري في الحل ، ولكن إذا بدأت في جمع DNS المنزلي ، فسيصبح من الصعب التوقف. ولكن بجدية - قد لا تكون Pi-Hole مثالية ، ولكنها تزيل كمية كبيرة من الصداع من شخص يحتاج إلى "العمل".
لتثبيت Pi-Hole على خادم Linux يعمل بالفعل ، نحتاج فقط إلى تشغيل أمر واحد:
curl -sSL https://install.pi-hole.net | bash
وبعد ذلك سيرشدك البرنامج النصي الجاري خلال خطوات التثبيت.
في اللحظة التي يسألك فيها عن اختيار Upstream DNS Provider ، يمكنك اختيار أي منها ، لأننا في الخطوة التالية سوف نستمر في تغييرها. يمكن ترك جميع المعلمات الأخرى بأمان افتراضيًا.
في نهاية التثبيت ، سيظهر لك البرنامج النصي كلمة مرور تم إنشاؤها عشوائيًا من واجهة الويب ، والتي سيكون من المفيد لك أن تكتبها.
إذا حدث خطأ ما أثناء التثبيت ، يمكنك استخدام الطرق البديلة الموضحة هنا .
2. تثبيت وتكوين cloudflared
من أجل التبديل إلى DNS عبر HTTPS ، نستخدم حلاً قياسيًا من Cloudflare. تم إنشاء البرنامج الخفي cloudflared في الأصل لرفع نفق Argo من جانب المشترك ، مما يتيح لك نشر خادم الويب الخاص بك على Cloudflare CDN ، حتى لو تم استضافته على عنوان IP خاص خلف NAT. لكن خاصية مفيدة للغاية لهذا البرنامج الخفي هي عملها كوكيل DoH ، ونحن نستخدم هذه الخاصية هنا.
هنا ، للتثبيت ، نحتاج إلى بذل المزيد من الجهد ، ولكن أيضًا لا شيء معقد بشكل خاص.
نقوم باختيار وتنزيل المثبت لنظامنا الأساسي.
# For amd64 Debian/Ubuntu cd /tmp wget https://bin.equinox.io/c/VdrWdbjqyF/cloudflared-stable-linux-amd64.deb apt-get install ./cloudflared-stable-linux-amd64.deb cloudflared -v # For amd64 CentOS/RHEL/Fedora cd /tmp wget https://bin.equinox.io/c/VdrWdbjqyF/cloudflared-stable-linux-amd64.rpm yum install ./cloudflared-stable-linux-amd64.rpm cloudflared -v # For ARM cd /tmp wget https://bin.equinox.io/c/VdrWdbjqyF/cloudflared-stable-linux-arm.tgz tar -xvzf cloudflared-stable-linux-arm.tgz cp ./cloudflared /usr/local/bin chmod +x /usr/local/bin/cloudflared cloudflared -v
بعد تنفيذ الأمر الأخير ، يجب أن نحصل على إخراج مشابه لما يلي:
cloudflared version 2019.9.0 (built 2019-09-06-0333 UTC)
إذا كان لديك واحد (بالطبع ، قد يختلف الإصدار ورقم الإصدار) ، فتهانينا ، كان التثبيت ناجحًا. الآن الأمر متروك لك لتكوين.
إنشاء مستخدم للخدمة:
useradd -s /usr/sbin/nologin -r -M cloudflared
قم بإنشاء ملف تكوين الخدمة / etc / default / cloudflared:
# Commandline args for cloudflared CLOUDFLARED_OPTS=--port 5053 --upstream https://1.1.1.1/dns-query --upstream https://1.0.0.1/dns-query
ونمنح حقوقًا للمستخدم الذي تم إنشاؤه حديثًا وللملف القابل للتنفيذ:
chown cloudflared:cloudflared /etc/default/cloudflared chown cloudflared:cloudflared /usr/local/bin/cloudflared
بعد ذلك ، قم بإنشاء الملف /lib/systemd/system/cloudflared.service ، مما سيتيح لنا الفرصة لدمج الخدمة في systemd:
[Unit] Description=cloudflared DNS over HTTPS proxy After=syslog.target network-online.target [Service] Type=simple User=cloudflared EnvironmentFile=/etc/default/cloudflared ExecStart=/usr/local/bin/cloudflared proxy-dns $CLOUDFLARED_OPTS Restart=on-failure RestartSec=10 KillMode=process [Install] WantedBy=multi-user.target
نقوم بتنشيط الخدمة وتشغيلها:
systemctl enable cloudflared systemctl start cloudflared systemctl status cloudflared
إذا نجح كل شيء ، سترى أن الخدمة في حالة نشطة (قيد التشغيل).
يمكنك التحقق من تشغيل الخدمة ، على سبيل المثال باستخدام الأمر dig:
dig @127.0.0.1 -p 5053 google.com
في قسم الإجابات في الإجابة ، سترى عنوان IP الذي تلقته خدمتك على google.com عبر DoH ، مثل:
google.com. 217 IN A 172.217.6.142
يبقى فقط لتوصيل الخدمة إلى Pi-Hole. للقيام بذلك ، انتقل إلى واجهة الويب Pi-Hole (كلمة المرور المسجلة في المرحلة الأولى مفيدة لك) ، انتقل إلى الإعدادات - عنصر قائمة DNS وجعلها تبدو كما يلي:

الشيء الرئيسي هو ملء الحقل المخصص بالإدخال 127.0.0.1 # 5053 وترك الداو عليه وإزالته من الآخرين. بعد ذلك ، لا تنس التمرير لأسفل في الصفحة وانقر فوق "حفظ".
إذا نسيت كتابة كلمة المرور - لا بأس ، انتقل إلى الخادم عبر ssh وقم بتشغيل الأمر pihole -a -p ، سيتيح لك تعيين كلمة مرور جديدة. حسنًا ، بشكل عام ، انظر إلى مفاتيح فريق pihole ، فهناك الكثير من الأشياء المثيرة للاهتمام. على سبيل المثال ، يتم تحديث النظام بأمر pihole -up واحد.
3. قم بإعداد جهاز توجيه منزلك
بالطبع ، لا يمكنني إغلاق مجموعة متنوعة كاملة من أجهزة التوجيه مع هذا النص. ولكن بالنسبة لمعظم أجهزة التوجيه المنزلية ، فإن النقاط التالية صحيحة:
1) يمكنك تعيين خادم DNS مخصص للموجه في إعدادات واجهة WAN ، حتى إذا تم الحصول على عنوان IP ديناميكيًا من الموفر
2) يصدر جهاز التوجيه عنوانه للعملاء الداخليين ك DNS ويعيد توجيه طلباتهم إلى الخادم المحدد في إعدادات WAN
وفقًا لذلك ، في هذه الحالة ، من الضروري والكافي تسجيل عنوان Pi-Hole الخاص بنا كخادم DNS في إعدادات واجهة WAN الخاصة بالموجه المنزلي. من المهم أن يكون خادم DNS الوحيد في الإعدادات ، إذا تم تحديد أي خادم آخر - سيقوم الموجه بموازنة الطلبات بينهما وفقًا للمبدأ الوحيد المعروف لها ، وهذا الموقف غير مريح للغاية لمشاكل تصحيح الأخطاء على الشبكة.
إذا حدث خطأ ما فجأة وتوقفت الخدمة عن العمل ، يكفي تغيير الإعداد أعلاه إلى عنوان خادم DNS لمزود الخدمة الخاص بك أو ، على سبيل المثال ، 8.8.8.8 ، وبعد ذلك فقط ابدأ في الفهم.
إذا كان جهاز التوجيه الخاص بك أكثر ذكاءً ، على سبيل المثال ، لديه القدرة على تحديد عنوان DHCP للتوزيع على العملاء كخادم DNS ، فيمكنك الانتقال إلى مسار بديل وتكوين توزيع عنوان Pi-Hole للعملاء مباشرةً. سيؤدي ذلك إلى إلغاء تحميل جهاز التوجيه بشكل طفيف ، ولكنه سيعقد التراجع أعلاه من استخدام الخدمة.
إذا لم ينجح شيء ما - اسأل في التعليقات ، فسنجد حلاً.
4. نحل المشاكل
بشكل عام ، بعد الانتهاء من النقاط المذكورة أعلاه ، يجب أن يكون كل شيء على ما يرام معك ، ولكن هناك بعض الفروق الدقيقة التي صادفتها مع العملاء في بعض الأحيان.
بعد البدء في استخدام Pi-Hole ، قد تواجهك مشاعر غير اعتيادية للإعلانات المخفضة على أجهزتك (خاصة المحمول). لا تشعر بالقلق ، هذا هو ما كنت تقصد. أيضًا ، قد تتوقف بعض الخدمات عن العمل بالطريقة المعتادة ، وسيستلزم ذلك مشاركتك في الإعدادات. على سبيل المثال ، يحاول موقع الويب Aliexpress بشكل دوري إعادة توجيهك إلى العنوان best.aliexpress.com ، المدرج في قائمة الإعلانات ، وهذا يمنع الوصول إلى Ali.
يعد اكتشاف مثل هذه المشكلة أمرًا بسيطًا للغاية - إذا كنت تحاول الوصول إلى خادم محظور ، فسوف يعرض لك متصفحك خطأ ERR_NAME_NOT_RESOLVED أو ما شابه ، وسيظهر فحص سطر الأوامر عبر nslookup <اسم الخادم> 0.0.0.0.
من السهل أيضًا حل مشكلة خادم معين - فقط أضفه إلى القائمة البيضاء. للقيام بذلك ، انتقل إلى http: //pi.hole/admin ، وقم بتسجيل الدخول ، وحدد القائمة البيضاء في القائمة اليمنى وأضف الخادم الذي نحتاجه. على سبيل المثال ، اضطررت إلى فتح ، بالإضافة إلى best.aliexpress.com المذكورة ، s.click.aliexpress.com ، فضلاً عن مجموعة من المواقع في مجال miui.com لكي تعمل خدمات Xiaomi. ربما تحتاج إلى شيء خاص بك. لكن تتبع ما يجب فتحه بالضبط ليس بالأمر الصعب - على صفحة لوحة المعلومات الرئيسية للخدمة وفي سجلات الاستعلام ، يمكنك دائمًا معرفة طلبات النطاق التي تم حظرها وإضافتها إلى القائمة البيضاء.
كما يحدث بانتظام أن Pi-Hole مثبت على خادم تقوم بتشغيل بعض أنواع خدمات الويب عليه بالفعل. في هذه الحالة ، لن تتمكن من الوصول إلى واجهة الإدارة المستندة إلى الويب. تعتمد كيفية حل هذا الصراع على الموقف المحدد ، ولكن الحلول الرئيسية هي:
- إذا لم يتم استخدام خادم الويب ، ولكن تم إيقافه افتراضيًا - ابحث وتعطيل
- إذا تم استخدام خادم الويب وأنت تعرف كيفية التعامل معه ، فأضف واجهة الويب Pi-Hole كمورد منفصل لخادم الويب الخاص بك.
- يمكنك أيضًا هبوط واجهة الويب Pi-Hole على منفذ مختلف عن طريق تصحيح معلمة server.port في ملف /etc/lighttpd/lighttpd.conf. ولكن هذا سيتطلب تذكر المنفذ الذي يعمل عليه الخادم ، لذلك لا أرحب بهذه المخططات.
استنتاج
كما وعدت ، لم يكتب أي شيء جديد. بالنسبة للعديد من القراء ، يكون هذا المخطط مفهومًا وواضحًا ، ويتم تنفيذه بالفعل ، أو لا يتم تنفيذه على أنه غير ضروري. بنى كثيرون آخرون شيئًا مماثلاً بطريقة مختلفة ، باستخدام نفس المكونات أو المكونات الأخرى. أقترح عليك اعتبار هذا المنشور أشبه بفارغ الحل الخاص بك ، إذا احتجت إليه في أي وقت. ولكن بعد تنفيذها كإرشادات خطوة بخطوة ، ستتلقى بالفعل خدمة تغطي احتياجاتك الأساسية لتصفية الإعلانات واستخدام DoH.
تقليديًا ، سأجيب على الأسئلة وساعد في الإعدادات.
ملاحظة من GennPen - عند استخدام DoH ، فإنك تعتمد على اتصالك بالإنترنت ، وإذا نفدت الأموال في حسابك ، فلن تتمكن حتى من تسجيل الدخول إلى حساب موفر الخدمة الشخصي الخاص بك لدفعها. لذلك ، بالنسبة لمثل هذه المواقع في هذا الحل ، من المستحسن تسجيل إدخالات ثابتة في Pi-Hole - يمكن القيام بذلك في وحدة التحكم باستخدام الأمر pihole -a -r أو ببساطة يدويًا في ملف / etc / hosts. لسوء الحظ ، لم يتم تضمين الأداة في واجهة الويب لهذا الغرض.