تجاوز انتقائي للأقفال على أجهزة التوجيه باستخدام البرامج الثابتة Padavan و Keenetic OS

تم نشر عدد كبير من الإرشادات مع خيارات مختلفة لتجاوز حظر موارد الإنترنت. لكن الموضوع لا يفقد أهميته. في كثير من الأحيان ، يتم الاستماع إلى المبادرات على المستوى التشريعي لحظر المواد المتعلقة بأساليب تجاوز الأقفال. وكانت هناك شائعات بأن Roskomnadzor ستتلقى حزمة أخرى من أموال دافعي الضرائب للحصول على أقفال "أفضل". لن يتعلم المستخدمون ذوو الخبرة أي شيء جديد أو مفيد من المقالة. ولكن سيحصل الآخرون على تعليمات جاهزة خطوة بخطوة لتجاوز الأقفال الانتقائي البسيط والفعال على أجهزة التوجيه الشائعة باستخدام Padavan و Keenetic الثابتة.



المحتويات



مقدمة


استخدمت خيار تجاوز قفل Zolg لمدة عامين تقريبًا. تستند العديد من التعليمات على الشبكة إلى ذلك. الألغام بما في ذلك.

كان كل شيء جيدًا ، ولكن "الأفضل دائمًا هو عدو الخير". أولاً ، أصبحت بعض البرامج الجديدة "ذكية" جدًا وستحل النطاقات باستخدام طرقها الخاصة ، متجاوزة خادم DNS الخاص بالموجه. لا يسمح هذا dnsmasq على جهاز التوجيه بإضافة العنوان إلى مجموعة ipset لإلغاء القفل ويؤدي إلى نتيجة منطقية - يظل المورد مقفلاً. في Android 9 ، الدعم الأصلي لـ DNS-over-TLS ، أي هذه الطريقة لتجاوز القفل تتوقف عن العمل (إذا كان الجهاز الآخر لم يصل إلى dnsmasq من قبل). ثانيًا ، يؤدي تحديث قائمة النطاق بالكامل من antizapret إلى نتائج غير متوقعة في كل مرة. قد تتضمن القائمة المجالات غير المحظورة حقًا والتي يكون تشغيلها مهمًا من خلال القناة الرئيسية. يجب أن تكون دائمًا في حالة تأهب وتحرير الملفات التي تم إنشاؤها بيديك. ثالثًا ، لقد سئمت من "جر" قائمة كبيرة من المجالات التي تضم عشرات الآلاف من الكازينوهات وما شابهها ، والتي لا حاجة إليها ببساطة. بمرور الوقت ، أدركت أنني بحاجة فقط إلى قائمة محددة صغيرة من الموارد المحظورة.

لذلك ، لمدة عام ، كنت أستخدم طريقة فتح معدلة قليلاً ، وأنا راضٍ تمامًا عن:

  • البساطة وسهولة التحكم (بعد التكوين).
  • السيطرة الكاملة على الموارد التي تحتاج إلى فتحها.
  • الحد الأدنى من متطلبات موارد المعالج وذاكرة الوصول العشوائي لجهاز التوجيه.
  • تغطية واسعة من الفروق الدقيقة عند تجاوز الأقفال.

من المهم أن نلاحظ أن خياري ليس مخصصًا للحالة عندما تحتاج إلى فتح مئات وآلاف المجالات. لأنه عند بدء تشغيل جهاز التوجيه ، يتم حل كل مجال من القائمة المحددة. كلما زاد عدد المجالات في القائمة ، زادت مدة تهيئة العديد من ipset لفتحها.

أساس تجاوز الأقفال هو نفسه - شبكة Tor. يرجع استخدامه إلى عاملين بسيطين - مجانًا ، واحتمال حجب Tor في روسيا قريب من الصفر ، على عكس أي خدمة VPN. تور هو أساس تهريب المخدرات في روسيا من الوسط إلى الأسفل. سوف يؤدي Locking Tor إلى البحث عن أدوات جديدة للسوق وخفض مستوى عدم الكشف عن هويته ، مما يستتبع تفعيلًا ناجحًا لعمل وكالات إنفاذ القانون المحلية. في نهاية المطاف ، سيبدأ هذا ، مثل الفيروس ، في التأثير سلبًا على الرابط العلوي. نظرًا لأحدث الأخبار المدهشة حول اتصالات كبار المسؤولين الحكوميين بالاتجار العالمي بالمخدرات بروسيا ، فإن حظر تور في روسيا هو مجرد حظر ، على الرغم من أنه تافه. لا Roskomnadzor ، بغض النظر عن عدد المليارات المخصصة لهذه الوكالة ، ليس هناك محكمة واحدة في روسيا لديها إذن من الأعلى لمنع تور. ولا يفاجئ أحدًا أو يخيف أي شخص ، على الرغم من أن روسيا تغرق ببساطة في المخدرات (أي طفل في المدرسة يعرف ما سيفعله ، وبعد 30 دقيقة من الممكن بالفعل في أي مدينة يبلغ عدد سكانها 10 آلاف شخص الحصول على أي مخدرات عمليًا بحرية بأي كمية - مثل حقيقة الحياة الشريرة). في الوضع الحالي ، فإن احتمال حجب شبكة Tor أقل من احتمال حجب موقع متحف Hermitage.

التعليمات المقدمة سهلة للتكيف مع أجهزة التوجيه باستخدام OpenWrt. أيضًا ، التغييرات الصغيرة تجعل من السهل استبدال Tor بـ OpenVPN.

كيف ستتمكن من تجاوز الأقفال بعد التكوين؟


كل شيء بسيط للغاية. لديك ملف /opt/etc/unblock.txt - قائمة بسيطة لفتحها. يمكنك فتح نطاق أو عنوان IP أو نطاق عناوين أو CIDR. سطر واحد - عنصر واحد. يُسمح باستخدام الأسطر الفارغة ، ويمكنك استخدام الحرف # في بداية السطر للتجاهل.

هنا مثال على ملفي الشخصي
###- rutracker.org rutor.info rutor.is mega-tor.org kinozal.tv nnm-club.me nnm-club.ws tfile.me tfile-home.org tfile1.cc megatfile.cc megapeer.org megapeer.ru tapochek.net tparser.org tparser.me rustorka.com uniongang.tv fast-torrent.ru ###    rezka.ag hdrezka.ag hdrezka.me filmix.co filmix.cc seasonvar.ru ### lib.rus.ec flibusta.is flibs.me flisland.net flibusta.site ### telegram.org tdesktop.com tdesktop.org tdesktop.info tdesktop.net telesco.pe telegram.dog telegram.me t.me telegra.ph web.telegram.org desktop.telegram.org updates.tdesktop.com venus.web.telegram.org flora.web.telegram.org vesta.web.telegram.org pluto.web.telegram.org aurora.web.telegram.org 149.154.160.0/20 91.108.4.0/22 91.108.8.0/22 91.108.12.0/22 91.108.16.0/22 91.108.56.0/22 109.239.140.0/24 67.198.55.0/24 ### 7-zip.org edem.tv 4pna.com 2019.vote ### Tor check.torproject.org ###   IP ( #   ) #195.82.146.214 ###   CIDR ( #   ) #103.21.244.0/22 ###    ( #   ) #100.100.100.200-100.100.100.210 


بعد تحرير هذا الملف ، ما عليك سوى تنفيذ الأمر لتطبيق التكوين الجديد:

 unblock_update.sh 

يتم إلغاء تأمين جميع الموارد من unlock.txt دون الحاجة إلى إعادة تشغيل جهاز التوجيه.

مبدأ العمل


  • تؤدي تهيئة الموجه إلى إنشاء مجموعة فارغة من عناوين IP لمجموعة ipset تسمى إلغاء الحظر.
  • تمت إضافة قاعدة لإعادة توجيه جميع الحزم ذات الوجهات من إلغاء الحظر إلى خدمة Tor إلى جدار الحماية.
  • تبدأ خدمة Tor في وضع وكيل شفاف.
  • تم إطلاق البرنامج النصي الخاص unlock_ipset.sh ، والذي يحل جميع المجالات من unlock.txt ويضيف عناوين IP الخاصة بهم إلى مجموعة إلغاء الحظر. تتم أيضًا إضافة عناوين IP والنطاقات و CIDRs من هذا الملف إلى إلغاء الحظر.
  • يتم إطلاق Dnsmasq مع ملف تكوين إضافي ، unlock.dnsmasq ، والذي يشير إلى إضافة عناوين IP للنطاق من unlock.txt إلى مجموعة إلغاء الحظر عند حلها.
  • يقوم cron بتشغيل unlock_ipset.sh بتردد معين للتعويض جزئيًا عن الحالات المحتملة ذات الفروق الدقيقة.
  • إذا لزم الأمر ، يتم حل جميع المجالات من unlock.txt (فقط) من خلال dnscrypt-proxy إذا قام الموفر بتصفية DNS.

تكوين موجه Padavan


يجب أن يكون لديك جهاز توجيه مثبت عليه برنامج Padavan الثابت ومدير حزمة Entware الذي تم تكوينه بالفعل. في نظام التشغيل Windows ، يمكنك استخدام عميل PuTTY للاتصال بالموجه عبر SSH.

تأكد من أنك تستخدم Entware ، وليس إصدار Entware-ng القديم. عرض محتويات مجلد / opt / var / opkg-list. سيكون هناك ملف entware أو entware-ng. في الحالة الثانية ، تحتاج إلى تحديث برنامج Padavan الثابت لجهاز التوجيه الخاص بك إلى أحدث إصدار وإعادة تثبيت مدير حزمة Entware. عندها فقط تابع التعليمات خطوة بخطوة.

كما أظهرت المراجعات ، بشكل رئيسي أولئك الذين قاموا بتكوين Entware بشكل غير صحيح في البداية (أي لم يتم تحميل البرامج النصية من init.d) في الذاكرة الداخلية لجهاز التوجيه. إذا كان لديك Xiaomi Mi Router 3 أو 3G ، ولست متأكدًا من أن Entware في الذاكرة الداخلية يعمل بشكل صحيح (بدء تلقائي) ، فقم فقط بإعداد كل شيء مرة أخرى. خذ PROMETHEUS. يحدّث البرنامج النصي (1). قم بتحديث كود المصدر (2). اجمع أحدث البرامج الثابتة وافتحها (4). إعادة تعيين إعدادات البرامج الثابتة (NVRAM وتخزين الملفات) - متقدم> الإدارة> الإعدادات. تكوين الوصول إلى الإنترنت على جهاز التوجيه وتمكين SSH. نفذ في PROMETHEUS Firmware> تنسيق RWFS. اختر Advanced> Administration> Settings> Mount file system في قسم R / W> UBIFS. أعد تشغيل جهاز التوجيه. سيتم تسجيل جميع البرامج النصية لبدء تشغيل Entware الحالية من الذاكرة الداخلية تلقائيًا ، وسيعمل كل شيء مثل الساعة.

للاختبارات ، استخدمت جهاز Xiaomi Mi Router 3G الشهير (تم تثبيت Entware في الذاكرة الداخلية) مع أحدث البرامج الثابتة - 32a93db. كل شيء سيعمل حتى على الطفل الأسطوري WT3020 AD / F / H مقابل 10 دولارات.



1. تثبيت البرامج اللازمة على جهاز التوجيه


 opkg update opkg install mc tor tor-geoip bind-dig cron 

مولودية - مدير ملفات قائد منتصف الليل. هو مطلوب فقط بسبب محرر mcedit المناسب. إذا كنت معتادًا على استخدام محرر نصوص آخر ، فلا يمكن تثبيت mc.
خدمة Tor - Tor.
tor-geoip - قاعدة بيانات geo-IP لـ Tor.
ربط حفر - عميل DNS (تناظري NSLOOKUP والمضيف).
كرون - جدولة المهام.

2. تهيئة ipset ، وإنشاء عدة عناوين IP غير مقفلة (start_script.sh)


قم بتوصيل الوحدات الضرورية وقم بإنشاء مجموعة فارغة من العناوين باستخدام إلغاء حظر الاسم عند تشغيل جهاز التوجيه. للقيام بذلك ، افتح ملف /etc/storage/start_script.sh في المحرر:

 mcedit /etc/storage/start_script.sh 

أضف في النهاية:

 modprobe ip_set modprobe ip_set_hash_ip modprobe ip_set_hash_net modprobe ip_set_bitmap_ip modprobe ip_set_list_set modprobe xt_set ipset create unblock hash:net 

للصق من المخزن المؤقت ، استخدم Shift + Insert ، واحفظ - F2 ، واخرج - F10.



إذا كنت ترغب في ذلك ، يمكنك تعديل ملف start_script.sh من خلال واجهة الويب الخاصة بجهاز التوجيه - "متقدم"> "التخصيص"> "البرامج النصية"> "تشغيل قبل تهيئة جهاز التوجيه". بعد التحرير ، انقر فوق "تطبيق".



3. إعداد تور


احذف محتويات ملف تكوين Tor:

 cat /dev/null > /opt/etc/tor/torrc 

افتح ملف تكوين Tor:

 mcedit /opt/etc/tor/torrc 

الصق (Shift + Insert) المحتويات:

 User admin PidFile /opt/var/run/tor.pid ExcludeExitNodes {RU},{UA},{AM},{KG},{BY} StrictNodes 1 TransPort 192.168.0.1:9141 ExitRelay 0 ExitPolicy reject *:* ExitPolicy reject6 *:* GeoIPFile /opt/share/tor/geoip GeoIPv6File /opt/share/tor/geoip6 DataDirectory /opt/var/lib/tor 

إذا لزم الأمر ، استبدل 192.168.0.1 بالعنوان الداخلي لجهاز التوجيه (LAN). وصف موجز التكوين:

  • استبعاد عقد الإخراج: روسيا ، أوكرانيا ، أرمينيا قيرغيزستان ، روسيا البيضاء.
  • قم بتعليق وكيل شفاف إلى العنوان 192.168.0.1 ، المنفذ 9141.
  • رفض أن تكون نقطة خروج.

4. قائمة المجالات (وليس فقط) لتجاوز القفل (unlock.txt)


يعد ملف unlock.txt قائمة بسيطة لفتحها. يمكنك فتح نطاق أو عنوان IP أو نطاق أو CIDR. سطر واحد - عنصر واحد. يتم تجاهل الأسطر الفارغة (بما في ذلك المسافات وعلامات التبويب). يمكنك استخدام الحرف # في بداية السطر لتجاهله.

قم بإنشاء الملف /opt/etc/unblock.txt :

 mcedit /opt/etc/unblock.txt 

يمكن أن يحتوي كل صف على اسم مجال أو عنوان IP أو نطاق أو CIDR. يمكنك استخدام الحرف # للتعليق على الأسطر.

هنا مثال على ملفي الشخصي
 ###- rutracker.org rutor.info rutor.is mega-tor.org kinozal.tv nnm-club.me nnm-club.ws tfile.me tfile-home.org tfile1.cc megatfile.cc megapeer.org megapeer.ru tapochek.net tparser.org tparser.me rustorka.com uniongang.tv fast-torrent.ru ###    rezka.ag hdrezka.ag hdrezka.me filmix.co filmix.cc seasonvar.ru ### lib.rus.ec flibusta.is flibs.me flisland.net flibusta.site ### telegram.org tdesktop.com tdesktop.org tdesktop.info tdesktop.net telesco.pe telegram.dog telegram.me t.me telegra.ph web.telegram.org desktop.telegram.org updates.tdesktop.com venus.web.telegram.org flora.web.telegram.org vesta.web.telegram.org pluto.web.telegram.org aurora.web.telegram.org 149.154.160.0/20 91.108.4.0/22 91.108.8.0/22 91.108.12.0/22 91.108.16.0/22 91.108.56.0/22 109.239.140.0/24 67.198.55.0/24 ### 7-zip.org edem.tv 4pna.com 2019.vote ### Tor check.torproject.org ###   IP ( #   ) #195.82.146.214 ###   CIDR ( #   ) #103.21.244.0/22 ###    ( #   ) #100.100.100.200-100.100.100.210 


5. نص برمجي لملء مجموعة من عناوين IP غير المحظورة لقائمة معينة من المجالات (unlock_ipset.sh)


قم بإنشاء البرنامج النصي /opt/bin/unblock_ipset.sh :

 mcedit /opt/bin/unblock_ipset.sh 

الصق (Shift + Insert) المحتويات:

 #!/bin/sh until ADDRS=$(dig +short google.com @localhost) && [ -n "$ADDRS" ] > /dev/null 2>&1; do sleep 5; done while read line || [ -n "$line" ]; do [ -z "$line" ] && continue [ "${line:0:1}" = "#" ] && continue cidr=$(echo $line | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/[0-9]{1,2}') if [ ! -z "$cidr" ]; then ipset -exist add unblock $cidr continue fi range=$(echo $line | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}-[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}') if [ ! -z "$range" ]; then ipset -exist add unblock $range continue fi addr=$(echo $line | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}') if [ ! -z "$addr" ]; then ipset -exist add unblock $addr continue fi dig +short $line @localhost | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | awk '{system("ipset -exist add unblock "$1)}' done < /opt/etc/unblock.txt 

منح حقوق التنفيذ:

 chmod +x /opt/bin/unblock_ipset.sh 

النص البرمجي بسيط للغاية ، وهذا هو جوهر عمله ... نحن في انتظار أن يعمل حل نطاق google.com (إذا لم يتم ذلك ، فلن يتم ملء الكثير من عمليات إلغاء الحظر عند تشغيل جهاز التوجيه ، لأن جهاز التوجيه سيظل قيد التهيئة). نقرأ الأسطر في ملف unlock.txt. تقوم أسطر القراءة بحذف المسافات وعلامات التبويب تلقائيًا في البداية والنهاية. تخطي الأسطر الفارغة. تخط الأسطر التي تبدأ بحرف #. نحن نبحث في سطر CIDR. إذا تم العثور على CIDR ، فأضفه إلى إلغاء الحظر. نحن نبحث عن نطاق في السلسلة. إذا تم العثور عليها ، فأضفها إلى إلغاء الحظر. نحن نبحث عن عنوان IP في السلسلة. إذا تم العثور على IP ، فأضفه لإلغاء الحظر. دعونا حل خط من خلال حفر. تتم إضافة جميع عناوين IP للنتيجة إلى إلغاء الحظر.

6. برنامج نصي لإنشاء ملف تكوين dnsmasq إضافي من قائمة مجالات معينة (unlock_dnsmasq.sh)


قم بإنشاء البرنامج النصي /opt/bin/unblock_dnsmasq.sh :

 mcedit /opt/bin/unblock_dnsmasq.sh 

الصق (Shift + Insert) المحتويات:

 #!/bin/sh cat /dev/null > /opt/etc/unblock.dnsmasq while read line || [ -n "$line" ]; do [ -z "$line" ] && continue [ "${line:0:1}" = "#" ] && continue echo $line | grep -Eq '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' && continue echo "ipset=/$line/unblock" >> /opt/etc/unblock.dnsmasq done < /opt/etc/unblock.txt 

منح حقوق التنفيذ:

 chmod +x /opt/bin/unblock_dnsmasq.sh 

البرنامج النصي بسيط للغاية ، هذا هو جوهر عمله ... نقرأ تسلسلًا من /opt/etc/unblock.txt. تقوم أسطر القراءة بحذف المسافات وعلامات التبويب تلقائيًا في البداية والنهاية. تخطي الأسطر الفارغة. تخطي الخطوط التي تبدأ بـ #. نحن نتخطى الخطوط التي تحتوي على عنوان IP (IP ، range ، CIDR) ، أي نحن مهتمون فقط بالسلاسل مع أسماء النطاقات. في الملف /opt/etc/unblock.dnsmasq نضيف أسطرًا من النموذج "ipset = / domain_name / unlock". هذا يعني أنه بعد تحديد عناوين IP الخاصة بمجال معين ، ستتم إضافتها تلقائيًا إلى مجموعة إلغاء الحظر.

تأكد من تشغيل البرنامج النصي لإنشاء ملف unlock.dnsmasq:

 unblock_dnsmasq.sh 

تحقق من إنشاء ملف unlock.dnsmasq:

 cat /opt/etc/unblock.dnsmasq 

7. البرنامج النصي للتحديث الإجباري للنظام بعد تحرير قائمة المجالات (unlock_update.sh)


قم بإنشاء البرنامج النصي /opt/bin/unblock_update.sh :

 mcedit /opt/bin/unblock_update.sh 

الصق (Shift + Insert) المحتويات:

 #!/bin/sh ipset flush unblock /opt/bin/unblock_dnsmasq.sh restart_dhcpd sleep 3 /opt/bin/unblock_ipset.sh & 

منح حقوق التنفيذ:

 chmod +x /opt/bin/unblock_update.sh 

8. برنامج نصي لتعبئة مجموعة من عمليات إلغاء الحظر تلقائيًا عند تشغيل جهاز توجيه (S99unblock)


قم بإنشاء البرنامج النصي /opt/etc/init.d/S99unblock :

 mcedit /opt/etc/init.d/S99unblock 

الصق (Shift + Insert) المحتويات:

 #!/bin/sh [ "$1" != "start" ] && exit 0 /opt/bin/unblock_ipset.sh & 

منح حقوق التنفيذ:

 chmod +x /opt/etc/init.d/S99unblock 

9. إعادة توجيه الحزم ذات الوجهات من إلغاء الحظر إلى Tor (post_iptables_script.sh)


افتح الملف /etc/storage/post_iptables_script.sh في المحرر:

 mcedit /etc/storage/post_iptables_script.sh 

أضف في النهاية:

 iptables -t nat -A PREROUTING -i br0 -p tcp -m set --match-set unblock dst -j REDIRECT --to-port 9141 



إذا كنت ترغب في ذلك ، يمكنك تعديل ملف post_iptables_script.sh من خلال واجهة الويب الخاصة بالموجه - "متقدم"> "التخصيص"> "البرامج النصية"> "التشغيل بعد إعادة تشغيل قواعد جدار الحماية". بعد التحرير ، انقر فوق "تطبيق".



يمكنك إضافة (هذا اختياري) إلى نفس الملف لإعادة توجيه جميع الطلبات إلى المنفذ الخارجي 53 لنفسك. يعد ذلك ضروريًا حتى لا يستخدم العملاء على الشبكة المحلية خدمات DNS الخاصة بجهة خارجية. ستمر الطلبات عبر خادم DNS العادي.

 iptables -t nat -I PREROUTING -i br0 -p udp --dport 53 -j DNAT --to 192.168.0.1 iptables -t nat -I PREROUTING -i br0 -p tcp --dport 53 -j DNAT --to 192.168.0.1 

إذا لزم الأمر ، استبدل 192.168.0.1 بالعنوان الداخلي لجهاز التوجيه (LAN).

10. توصيل ملف تكوين إضافي إلى dnsmasq


نحن بحاجة إلى ربط ملف unlock.dnsmasq الذي تم إنشاؤه بـ dnsmasq. للقيام بذلك ، افتح الملف /etc/storage/dnsmasq/dnsmasq.conf في المحرر:

 mcedit /etc/storage/dnsmasq/dnsmasq.conf 

أضف في النهاية:

 conf-file=/opt/etc/unblock.dnsmasq 

إذا كنت تريد (هذا اختياري) ، يمكنك إضافة خادم إضافي للدقة والموثوقية:

 server=8.8.8.8 

إذا كنت ترغب في ذلك ، يمكنك تعديل ملف dnsmasq.conf عبر واجهة الويب الخاصة بجهاز التوجيه - "متقدم"> "LAN"> "خادم DHCP"> "ملف تكوين المستخدم dnsmasq.conf". بعد التحرير ، انقر فوق "تطبيق".



11. إضافة مهمة إلى cron لتحديث محتويات مجموعة إلغاء الحظر بشكل دوري


يعد هذا تأمينًا إضافيًا في حالة استخدام البرامج / الأجهزة لطريقة حل خاصة بها وتغيير عنوان IP الخاص بالمجال. كل ما عليك فعله هو تشغيل البرنامج النصي unlock_ipset.sh على التردد المطلوب. على سبيل المثال ، سنطلق كل يوم الساعة 6 صباحًا.

استبدل اسم الجذر باسم admin في ملف تهيئة cron:

 sed -i 's/root/admin/g' /opt/etc/crontab 

افتح الملف / opt / etc / crontab في المحرر:

 mcedit /opt/etc/crontab 

أضف في النهاية:

 00 06 * * * admin /opt/bin/unblock_ipset.sh 

إذا كنت ترغب في ذلك ، يمكنك التعليق على جميع مهام القالب الأخرى. إليك ما سيبدو عليه ملف crontab:



12. إعادة تشغيل جهاز التوجيه


قم بتشغيل الأمر:

 reboot 

بعد إعادة التشغيل ، افتح موقع check.torproject.org في متصفحك (يجب إضافته إلى unlock.txt). إذا فعلت كل شيء بشكل صحيح ، فسترى النقش "تهانينا. تم تكوين هذا المتصفح لاستخدام Tor. ":




تكوين جهاز توجيه بنظام تشغيل Keenetic


يجب أن يكون لديك موجه Keenetic / Zyxel مع تكوين Entware Package Manager (OPKG) بالفعل. على سبيل المثال ، إليك قائمة ببعض أجهزة التوجيه التي تدعم Entware: Keenetic II و Keenetic III و Extra و Extra II و Giga II و Giga III و Omni و Omni II و Viva و Ultra و Ultra II و Omni (KN-1410) و Extra (KN -1710) ، جيجا (KN-1010) ، ألترا (KN-1810) ، Viva (KN-1910) ، DSL (KN-2010) ، Duo (KN-2110). يمكن العثور على تعليمات تكوين Entware هنا (حتى 10 نقاط).

إذا سبق لك (مع البرامج الثابتة تحت 2.07) أن قمت بالفعل بإضافة دعم Entware ، فتأكد من أنك تستخدم Entware-ng القديمة .

تأكد من تمكين "وحدات نواة النظام الفرعي لـ Netfilter" - الإعدادات العامة> تغيير مجموعة المكونات. إذا لم يكن موجودًا في قائمة العناصر المتاحة ، فحاول تثبيت مكون بروتوكول IPv6 أولاً. إذا لم يظهر هذا بعد ذلك ، فحاول بدونه ، ولكن هناك احتمال كبير أنك لن تتمكن من إلغاء القفل حسب النطاق و CIDR (لأنه لن يكون هناك دعم للتجزئة: net set).



للاختبارات ، استخدمت Keenetic Ultra (KN-1810) مع أحدث البرامج الثابتة - 2.14.C.0.0-4.

ملاحظة مهمة. سيكون عليك تعطيل خادم DNS العادي في النظام ، وسوف نستخدم dnsmasq بدلاً من ذلك. ستفقد القدرة على تعيين خدمات DNS (Yandex.DNS / SkyDNS / AdGuard DNS) بشكل فردي للعملاء ، ولكن يمكنك استخدامها عالميًا من خلال إعدادات dnsmasq إذا لزم الأمر.

1. تثبيت البرامج اللازمة على جهاز التوجيه


 opkg update opkg install mc tor tor-geoip bind-dig cron dnsmasq-full ipset iptables 

مولودية - مدير ملفات قائد منتصف الليل. هو مطلوب فقط بسبب محرر mcedit المناسب. إذا كنت معتادًا على استخدام محرر نصوص آخر ، فلا يمكن تثبيت mc.
خدمة Tor - Tor.
tor-geoip - قاعدة بيانات geo-IP لـ Tor.
ربط حفر - عميل DNS (تناظري NSLOOKUP والمضيف).
كرون - جدولة المهام.
dnsmasq-full - خادم DNS.
تعد ipset و iptables أدوات مساعدة لوحدة التحكم ipset و iptables (قد تكون موجودة بالفعل على النظام وليست هناك حاجة إليها ، لقد أضفتها للأمان).

2. تهيئة ipset ، وإنشاء عدة عناوين IP غير مقفلة (100-ipset.sh)


تحقق من أن نظام الموجه الخاص بك يدعم الكثير من التجزئة: net (كما اتضح ، ليس كل أجهزة التوجيه Keenetic تمتلكه):

 ipset create test hash:net 

إذا لم يعط الفريق أي أخطاء أو رسائل ، فهناك دعم ، واتبع التعليمات أيضًا. خلاف ذلك (هناك خطأ) في البرنامج النصي التالي ، تحتاج إلى استبدال التجزئة: net مع التجزئة: ip . في هذه الحالة ، ستفقد القدرة على فتح النطاق و CIDR.

قم بإنشاء مجموعة فارغة من العناوين تسمى إلغاء الحظر عند تشغيل جهاز التوجيه. للقيام بذلك ، قم بإنشاء الملف /opt/etc/ndm/fs.d/100-ipset.sh :

 mcedit /opt/etc/ndm/fs.d/100-ipset.sh 

الصق (Shift + Insert) المحتويات:

 #!/bin/sh [ "$1" != "start" ] && exit 0 ipset create unblock hash:net -exist exit 0 

للصق من المخزن المؤقت ، استخدم Shift + Insert ، واحفظ - F2 ، واخرج - F10.

منح حقوق التنفيذ:

 chmod +x /opt/etc/ndm/fs.d/100-ipset.sh 

3. إعداد تور


احذف محتويات ملف تكوين Tor:

 cat /dev/null > /opt/etc/tor/torrc 

افتح ملف تكوين Tor:

 mcedit /opt/etc/tor/torrc 

الصق (Shift + Insert) المحتويات:

 User root PidFile /opt/var/run/tor.pid ExcludeExitNodes {RU},{UA},{AM},{KG},{BY} StrictNodes 1 TransPort 192.168.0.1:9141 ExitRelay 0 ExitPolicy reject *:* ExitPolicy reject6 *:* GeoIPFile /opt/share/tor/geoip GeoIPv6File /opt/share/tor/geoip6 DataDirectory /opt/var/lib/tor 

إذا لزم الأمر ، استبدل 192.168.0.1 بالعنوان الداخلي لجهاز التوجيه (LAN). وصف موجز التكوين:

  • استبعاد عقد الإخراج: روسيا ، أوكرانيا ، أرمينيا قيرغيزستان ، روسيا البيضاء.
  • قم بتعليق وكيل شفاف إلى العنوان 192.168.0.1 ، المنفذ 9141.
  • رفض أن تكون نقطة خروج.

4. قائمة المجالات (وليس فقط) لتجاوز القفل (unlock.txt)


يعد ملف unlock.txt قائمة بسيطة لفتحها. يمكنك فتح نطاق أو عنوان IP أو نطاق أو CIDR. سطر واحد - عنصر واحد. يتم تجاهل الأسطر الفارغة (بما في ذلك المسافات وعلامات التبويب). يمكنك استخدام الحرف # في بداية السطر لتجاهله.

قم بإنشاء الملف /opt/etc/unblock.txt :

 mcedit /opt/etc/unblock.txt 

يمكن أن يحتوي كل صف على اسم مجال أو عنوان IP أو نطاق أو CIDR. يمكنك استخدام الحرف # للتعليق على الأسطر.

هنا مثال على ملفي الشخصي
 ###- rutracker.org rutor.info rutor.is mega-tor.org kinozal.tv nnm-club.me nnm-club.ws tfile.me tfile-home.org tfile1.cc megatfile.cc megapeer.org megapeer.ru tapochek.net tparser.org tparser.me rustorka.com uniongang.tv fast-torrent.ru ###    rezka.ag hdrezka.ag hdrezka.me filmix.co filmix.cc seasonvar.ru ### lib.rus.ec flibusta.is flibs.me flisland.net flibusta.site ### telegram.org tdesktop.com tdesktop.org tdesktop.info tdesktop.net telesco.pe telegram.dog telegram.me t.me telegra.ph web.telegram.org desktop.telegram.org updates.tdesktop.com venus.web.telegram.org flora.web.telegram.org vesta.web.telegram.org pluto.web.telegram.org aurora.web.telegram.org 149.154.160.0/20 91.108.4.0/22 91.108.8.0/22 91.108.12.0/22 91.108.16.0/22 91.108.56.0/22 109.239.140.0/24 67.198.55.0/24 ### 7-zip.org edem.tv 4pna.com 2019.vote ### Tor check.torproject.org ###   IP ( #   ) #195.82.146.214 ###   CIDR ( #   ) #103.21.244.0/22 ###    ( #   ) #100.100.100.200-100.100.100.210 


5. نص برمجي لملء مجموعة من عناوين IP غير المحظورة لقائمة معينة من المجالات (unlock_ipset.sh)


قم بإنشاء البرنامج النصي /opt/bin/unblock_ipset.sh :

 mcedit /opt/bin/unblock_ipset.sh 

الصق (Shift + Insert) المحتويات:

 #!/bin/sh until ADDRS=$(dig +short google.com @localhost) && [ -n "$ADDRS" ] > /dev/null 2>&1; do sleep 5; done while read line || [ -n "$line" ]; do [ -z "$line" ] && continue [ "${line:0:1}" = "#" ] && continue cidr=$(echo $line | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/[0-9]{1,2}') if [ ! -z "$cidr" ]; then ipset -exist add unblock $cidr continue fi range=$(echo $line | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}-[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}') if [ ! -z "$range" ]; then ipset -exist add unblock $range continue fi addr=$(echo $line | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}') if [ ! -z "$addr" ]; then ipset -exist add unblock $addr continue fi dig +short $line @localhost | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | awk '{system("ipset -exist add unblock "$1)}' done < /opt/etc/unblock.txt 

منح حقوق التنفيذ:

 chmod +x /opt/bin/unblock_ipset.sh 

النص البرمجي بسيط للغاية ، وهذا هو جوهر عمله ... نحن في انتظار أن يعمل حل نطاق google.com (إذا لم يتم ذلك ، فلن يتم ملء الكثير من عمليات إلغاء الحظر عند تشغيل جهاز التوجيه ، لأن جهاز التوجيه سيظل قيد التهيئة). نقرأ الأسطر في ملف unlock.txt. تقوم أسطر القراءة بحذف المسافات وعلامات التبويب تلقائيًا في البداية والنهاية. تخطي الأسطر الفارغة. تخط الأسطر التي تبدأ بحرف #. نحن نبحث في سطر CIDR. إذا تم العثور على CIDR ، فأضفه إلى إلغاء الحظر. نحن نبحث عن نطاق في السلسلة. إذا تم العثور عليها ، فأضفها إلى إلغاء الحظر. نحن نبحث عن عنوان IP في السلسلة. إذا تم العثور على IP ، فأضفه لإلغاء الحظر. دعونا حل خط من خلال حفر. تتم إضافة جميع عناوين IP للنتيجة إلى إلغاء الحظر.

6. برنامج نصي لإنشاء ملف تكوين dnsmasq إضافي من قائمة مجالات معينة (unlock_dnsmasq.sh)


قم بإنشاء البرنامج النصي /opt/bin/unblock_dnsmasq.sh :

 mcedit /opt/bin/unblock_dnsmasq.sh 

الصق (Shift + Insert) المحتويات:

 #!/bin/sh cat /dev/null > /opt/etc/unblock.dnsmasq while read line || [ -n "$line" ]; do [ -z "$line" ] && continue [ "${line:0:1}" = "#" ] && continue echo $line | grep -Eq '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' && continue echo "ipset=/$line/unblock" >> /opt/etc/unblock.dnsmasq done < /opt/etc/unblock.txt 

منح حقوق التنفيذ:

 chmod +x /opt/bin/unblock_dnsmasq.sh 

البرنامج النصي بسيط للغاية. نقرأ الأسطر بالتتابع من /opt/etc/unblock.txt. تقوم أسطر القراءة بحذف المسافات وعلامات التبويب تلقائيًا في البداية والنهاية. تخطي الأسطر الفارغة. تخطي الخطوط التي تبدأ بـ #. تخطي الخطوط التي تحتوي على عنوان IP (IP أو CIDR) ، أي نحن مهتمون فقط بالسلاسل مع أسماء النطاقات. في الملف /opt/etc/unblock.dnsmasq نضيف أسطرًا من النموذج "ipset = / domain_name / unlock". هذا يعني أنه بعد تحديد عناوين IP الخاصة بمجال معين ، ستتم إضافتها تلقائيًا إلى مجموعة إلغاء الحظر.

تأكد من تشغيل البرنامج النصي لإنشاء ملف unlock.dnsmasq:

 unblock_dnsmasq.sh 

تحقق من إنشاء ملف unlock.dnsmasq:

 cat /opt/etc/unblock.dnsmasq 

7. البرنامج النصي للتحديث الإجباري للنظام بعد تحرير قائمة المجالات (unlock_update.sh)


قم بإنشاء البرنامج النصي /opt/bin/unblock_update.sh :

 mcedit /opt/bin/unblock_update.sh 

الصق (Shift + Insert) المحتويات:

 #!/bin/sh ipset flush unblock /opt/bin/unblock_dnsmasq.sh /opt/etc/init.d/S56dnsmasq restart /opt/bin/unblock_ipset.sh & 

منح حقوق التنفيذ:

 chmod +x /opt/bin/unblock_update.sh 

8. برنامج نصي لتعبئة مجموعة من عمليات إلغاء الحظر تلقائيًا عند تشغيل جهاز توجيه (S99unblock)


قم بإنشاء البرنامج النصي /opt/etc/init.d/S99unblock :

 mcedit /opt/etc/init.d/S99unblock 

الصق (Shift + Insert) المحتويات:

 #!/bin/sh [ "$1" != "start" ] && exit 0 /opt/bin/unblock_ipset.sh & 

منح حقوق التنفيذ:

 chmod +x /opt/etc/init.d/S99unblock 

9. إعادة توجيه الحزم ذات الوجهات من إلغاء الحظر إلى Tor (100-redirect.sh)


للقيام بذلك ، قم بإنشاء الملف /opt/etc/ndm/netfilter.d/100-redirect.sh :

 mcedit /opt/etc/ndm/netfilter.d/100-redirect.sh 

الصق (Shift + Insert) المحتويات:

 #!/bin/sh [ "$type" == "ip6tables" ] && exit 0 if [ -z "$(iptables-save 2>/dev/null | grep unblock)" ]; then ipset create unblock hash:net -exist iptables -w -t nat -A PREROUTING -i br0 -p tcp -m set --match-set unblock dst -j REDIRECT --to-port 9141 fi exit 0 

إذا استخدمت التجزئة: ip في الخطوة 2 وليس التجزئة: net ، فاستبدل التجزئة: net بالتجزئة: ip. في الواقع ، نقوم أيضًا بتكرار وظيفة إنشاء مجموعة من إلغاء الحظر من خطوتين. يعد ذلك ضروريًا للأمان ، إذا لم تبدأ البرامج النصية من fs.d في التشغيل ، وكانت البرامج النصية netfilter.d قيد التشغيل بالفعل. لا بأس إذا تم إلغاء حظر بالفعل في وقت سابق ، سيتم ببساطة تجاهل الأمر.

يمكنك إضافة (هذا اختياري) إلى نفس الملف لإعادة توجيه جميع الطلبات إلى المنفذ الخارجي 53 لنفسك. يعد ذلك ضروريًا حتى لا يستخدم العملاء على الشبكة المحلية خدمات DNS الخاصة بجهة خارجية. ستمر الطلبات عبر خادم DNS العادي. قبل المخرج الأخير ، أضف:

 if [ -z "$(iptables-save 2>/dev/null | grep "udp \-\-dport 53 \-j DNAT")" ]; then iptables -w -t nat -I PREROUTING -i br0 -p udp --dport 53 -j DNAT --to 192.168.0.1 fi if [ -z "$(iptables-save 2>/dev/null | grep "tcp \-\-dport 53 \-j DNAT")" ]; then iptables -w -t nat -I PREROUTING -i br0 -p tcp --dport 53 -j DNAT --to 192.168.0.1 fi 

إذا لزم الأمر ، استبدل 192.168.0.1 بالعنوان الداخلي لجهاز التوجيه (LAN).

منح حقوق التنفيذ:

 chmod +x /opt/etc/ndm/netfilter.d/100-redirect.sh 

10. تكوين dnsmasq وإرفاق ملف تكوين إضافي إلى dnsmasq


حذف محتويات ملف تكوين dnsmasq:

 cat /dev/null > /opt/etc/dnsmasq.conf 

افتح ملف تكوين dnsmasq:

 mcedit /opt/etc/dnsmasq.conf 

الصق (Shift + Insert) المحتويات:

 user=nobody bogus-priv no-negcache clear-on-reload bind-dynamic listen-address=192.168.0.1 listen-address=127.0.0.1 min-port=4096 cache-size=1536 expand-hosts log-async conf-file=/opt/etc/unblock.dnsmasq server=8.8.8.8 

إذا لزم الأمر ، استبدل 192.168.0.1 بالعنوان الداخلي لجهاز التوجيه (LAN).

11. إضافة مهمة إلى cron لتحديث محتويات مجموعة إلغاء الحظر بشكل دوري


يعد هذا تأمينًا إضافيًا في حالة استخدام البرامج / الأجهزة لطريقة حل خاصة بها وتغيير عنوان IP الخاص بالمجال. كل ما عليك فعله هو تشغيل البرنامج النصي unlock_ipset.sh على التردد المطلوب. على سبيل المثال ، سنطلق كل يوم الساعة 6 صباحًا.

افتح الملف / opt / etc / crontab في المحرر :

 mcedit /opt/etc/crontab 

أضف في النهاية:

 00 06 * * * root /opt/bin/unblock_ipset.sh 

إذا كنت ترغب في ذلك ، يمكنك التعليق على جميع مهام القالب الأخرى. إليك ما سيبدو عليه ملف crontab:



12. تعطيل خادم DNS العادي وإعادة تشغيل جهاز التوجيه


اتصل بـ Keenetic Router CLI (منفذ 23 لـ Telnet و 22 لـ SSH إذا تمت إضافة مكون "خادم SSH" إلى النظام).

قم بتشغيل الأمر:

 opkg dns-override system configuration save system reboot 

سيتم إيقاف تشغيل خادم DNS المضمن في البرنامج الثابت ، وسيتم استخدام dnsmasq من Entware بدلاً من ذلك. يتحقق الموجه ، عند التمهيد ، مما إذا كان المجلد الاختياري مثبتًا (هل يوجد محرك أقراص USB محمول / محرك أقراص مع Entware). إذا كان هناك ، فلن يتم استخدام خادم DNS عادي. إذا لم يكن كذلك ، استخدم. على سبيل المثالإزالة محرك الأقراص المحمول وإعادة تشغيل جهاز التوجيه ، سيعمل كل شيء بالنسبة لك ، كما كان من قبل (قبل الإعداد).

بعد إعادة التشغيل ، افتح موقع check.torproject.org في متصفحك (يجب إضافته إلى unlock.txt). إذا فعلت كل شيء بشكل صحيح ، فسترى النقش "تهانينا. تم تكوين هذا المتصفح لاستخدام Tor. ":




الطرق الأساسية لتشخيص الأخطاء بعد التكوين


في حالة نجاح التحقق باستخدام الموقع check.torproject.org (يجب إضافته إلى unlock.txt) ، ولكن يستمر كعب الروتين من الموفر في فتح الموارد الأخرى (أو لا يفتح) ، فمن المرجح أن يتدخل الموفر في حركة مرور DNS ، ليحل محل الإجابات - أنت تحتاج إلى إجراء تجاوز إضافي لتصفية استعلامات DNS.

إذا لم يعمل شيء ما بعد التكوين كما ينبغي ، فاستخدم أوامر بسيطة لتحديد خطوة المشكلة.

عرض محتويات مجموعة المنع:

 ipset list unblock 

إذا أبلغ النظام عن عدم وجود مثل هذه المجموعات ، فسيكون الخطأ في الخطوة 2 أو أنك لم تقم بتمكين وحدة Netfilter في النظام (في حالة Keenetic).

إذا تبين أن المجموعة فارغة ، فلن يعمل البرنامج النصي unlock_ipset.sh ، والذي بدوره يجب أن يبدأ بواسطة البرنامج النصي لبدء تشغيل S99unblock. قم بتشغيل هذا البرنامج النصي unlock_ipset.sh يدويًا. إذا كانت المجموعة ممتلئة ، يكون الخطأ في الخطوة 8. إذا لم يكن من الممكن تنفيذ البرنامج النصي (على الأرجح ، فإنه ينتظر دقة google.com) ، فإن الخطأ في مكان ما على جانب خادم DNS ، ربما في الخطوة 10 أو 6.

تحقق من إعادة التوجيه في iptables :

 iptables-save 2>/dev/null | grep unblock 

إذا لم يكن موجودًا ، فإن الخطأ يكون في الخطوة 9.

إذا لم تعمل جميع المواقع على الإطلاق ، أي DNS لا يعمل ، الخطأ في مكان ما في المرحلة 6 أو 10. ربما ، في المرحلة 9.

إذا لم تعمل جميع المواقع من unlock.txt (تم تجاوز المهلة) ، لكن جميع المواقع الأخرى تعمل ، فإن المشكلة تكمن في مكان ما على جانب Tor ، الخطأ في المرحلة 3.


تجاوز إضافي لتصفية استعلامات DNS من قبل الموفر


إذا تداخل موفر مع حركة مرور DNS عن طريق استبدال الاستجابات للموارد المحظورة ، فمن السهل جدًا التنقل. لهذا سوف نستخدم dnscrypt-proxy. إذا كنت ترغب وتجربة ، يمكنك بسهولة استبدال dnscrypt بـ قصير (DNS عبر TLS).

لن يتم استخدام dnscrypt إلا في المجالات المدرجة في ملف unlock.txt. ستمر جميع الاستعلامات الأخرى عبر خوادم DNS العادية.

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

يجب أن تكون قد قمت بالفعل بتهيئة تجاوز الأقفال الموضحة أعلاه. الإعدادات التالية مماثلة لنظامي Padavan و Keenetic OS.

تثبيت برنامج إضافي على جهاز التوجيه:

 opkg update opkg install dnscrypt-proxy2 

افتح ملف تكوين dnscrypt-proxy:

 mcedit /opt/etc/dnscrypt-proxy.toml 

ابحث عن عناوين Listen_addresses و fallback_resolver و cache وقم بتغييرها:

 listen_addresses = ['127.0.0.1:9153'] fallback_resolver = '77.88.8.8:1253' cache = false 

77.88.8.8:1253 هو عنوان خادم Yandex DNS بمنفذ غير قياسي. وهي نسخة احتياطية في حالة وجود أي مشاكل في dnscrypt-proxy.

تشغيل dnscrypt-proxy:

 /opt/etc/init.d/S09dnscrypt-proxy2 start 

تأكد من عمل dnscrypt-proxy (يجب أن تشاهد قائمة بعناوين IP في الرد):

 dig +short google.com @localhost -p 9153 

افتح البرنامج النصي /opt/bin/unblock_ipset.sh في المحرر :

 mcedit /opt/bin/unblock_ipset.sh 

استبدال المحتويات بـ:

 #!/bin/sh until ADDRS=$(dig +short google.com @localhost -p 9153) && [ -n "$ADDRS" ] > /dev/null 2>&1; do sleep 5; done while read line || [ -n "$line" ]; do [ -z "$line" ] && continue [ "${line:0:1}" = "#" ] && continue cidr=$(echo $line | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}/[0-9]{1,2}') if [ ! -z "$cidr" ]; then ipset -exist add unblock $cidr continue fi range=$(echo $line | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}-[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}') if [ ! -z "$range" ]; then ipset -exist add unblock $range continue fi addr=$(echo $line | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}') if [ ! -z "$addr" ]; then ipset -exist add unblock $addr continue fi dig +short $line @localhost -p 9153 | grep -Eo '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' | awk '{system("ipset -exist add unblock "$1)}' done < /opt/etc/unblock.txt 

لقد أجرينا تغييرًا بسيطًا - الآن حفر لحلها لا يستخدم خادم DNS عادي ، ولكن dnscrypt-proxy مع المنفذ 9153.

افتح /opt/bin/unblock_dnsmasq.sh البرنامج النصي في المحرر :

 mcedit /opt/bin/unblock_dnsmasq.sh 

استبدال المحتويات بـ:

 #!/bin/sh cat /dev/null > /opt/etc/unblock.dnsmasq while read line || [ -n "$line" ]; do [ -z "$line" ] && continue [ "${line:0:1}" = "#" ] && continue echo $line | grep -Eq '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}' && continue echo "ipset=/$line/unblock" >> /opt/etc/unblock.dnsmasq echo "server=/$line/127.0.0.1#9153" >> /opt/etc/unblock.dnsmasq done < /opt/etc/unblock.txt 

لقد قمنا بتغيير بسيط - الآن عند إنشاء ملف unlock.dnsmasq ، تتم إضافة خطوط إضافية مثل "server = / domain_name / 127.0.0.1 # 9153". هذا يعني أن حل النطاقات من القائمة سيحدث من خلال dnscrypt-proxy.

قم بتشغيل unlock_update.sh:

 unblock_update.sh 

تم.جميع الإعدادات المعقدة متأخرة. الآن ستقوم فقط بتحرير قائمة unlock.txt إذا لزم الأمر ، وإضافة أو إزالة المجالات أو عناوين IP لإلغاء القفل منها ، وتنشيط التغييرات التي تم إجراؤها باستخدام الأمر unlock_update.sh.

تحديث 04/01/2019 . غالبًا ما تأتي الرسائل الشخصية على المقالة بأسئلة نموذجية. سأجيب هنا الأكثر شيوعًا.

كيفية توفير .onion مواقع منطقة المجال؟

في ملف torrc ، أضف:
 VirtualAddrNetwork 10.254.0.0/16 DNSPort 127.0.0.1:9053 AutomapHostsOnResolve 1 

للوصول إلى جميع مجالات منطقة البصل أضف إلى dnsmasq.conf:
 server=/onion/127.0.0.1#9053 ipset=/onion/unblock 

إذا كنت لا ترغب في فتح الوصول إلى جميع مجالات منطقة البصل ، ولكن فقط إلى مجالات معينة ، فقم بإضافة الإدخالات التالية في dnsmasq.conf:
 server=/rutorc6mqdinc4cz.onion/127.0.0.1#9053 ipset=/rutorc6mqdinc4cz.onion/unblock server=/nnmclub5toro7u65.onion/127.0.0.1#9053 ipset=/nnmclub5toro7u65.onion/unblock server=/flibustahezeous3.onion/127.0.0.1#9053 ipset=/flibustahezeous3.onion/unblock 


كيفية تجاوز الأقفال لعملاء خادم VPN يعمل على جهاز توجيه؟

في torrc ، استبدل الخط بـ TransPort بما يلي:
 TransPort 0.0.0.0:9141 

قم بإضافة إعادة توجيه إضافية باستخدام الواجهة الضرورية (INTERFACE - واجهة شبكة VPN):
 iptables -t nat -A PREROUTING -i  -p tcp -m set --match-set unblock dst -j REDIRECT --to-port 9141 

Source: https://habr.com/ru/post/ar428992/


All Articles