إعداد BGP لتجاوز الحظر ، أو "كيف توقفت عن الخوف ووقعت في حب RKN"

حسنًا ، حسنًا ، حول "الوقوع في الحب" هو مبالغة. بدلا من ذلك "يمكن أن تتعايش مع".

كما تعلمون جميعًا ، منذ 16 أبريل 2018 ، كان Roskomnadzor يحظر الوصول إلى الموارد على الشبكة بضربات واسعة للغاية ، مضيفًا إلى السجل الموحد لأسماء النطاقات ، والمؤشرات إلى صفحات المواقع على الإنترنت وعناوين الشبكة التي تسمح لك تحديد المواقع على الإنترنت ، التي تحتوي على معلومات ، يُحظر نشرها في الاتحاد الروسي "(في النص - مجرد سجل) / 10 أحيانًا. نتيجة لذلك ، يعاني مواطنو الاتحاد الروسي والشركات التجارية ، حيث فقدوا الوصول إلى الموارد القانونية التي يحتاجون إليها تمامًا.

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

إخلاء المسئولية

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

أيضًا ، نظرًا لأنني مهندس شبكات بشكل أساسي من حيث المهنة والمهن ومسار الحياة ، فإن البرمجة و Linux ليست نقاط قوتي. لذلك ، بالطبع ، يمكن كتابة البرامج النصية بشكل أفضل ، ويمكن حل مشكلات الأمان في VPS بشكل أعمق ، وما إلى ذلك. سيتم قبول اقتراحاتك بامتنان ، إذا كانت مفصلة بدرجة كافية - سأكون سعيدًا بإضافتها إلى نص المقالة.

TL؛ DR

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

ماذا تحتاج لهذا

لسوء الحظ ، هذا المنشور ليس للجميع. لاستخدام هذه التقنية ، ستحتاج إلى تجميع بعض العناصر معًا:

  1. يجب أن يكون لديك خادم Linux في مكان ما خارج مجال الحظر. أو على الأقل الرغبة في بدء تشغيل مثل هذا الخادم - حيث تكلفته الآن من 9 دولارات في السنة ، وربما أقل. هذه الطريقة مناسبة أيضًا إذا كان لديك نفق VPN منفصل ، فيمكن وضع الخادم داخل حقل الحظر.
  2. يجب أن يكون جهاز التوجيه الخاص بك ذكيًا بما يكفي ليكون قادرًا على ذلك
    • أي عميل VPN تحبه (أفضل OpenVPN ، ولكن يمكن أن يكون PPTP و L2TP و GRE + IPSec وأي خيار آخر ينشئ واجهة نفق) ؛
    • بروتوكول BGPv4. مما يعني أنه بالنسبة إلى SOHO يمكن أن يكون Mikrotik أو أي جهاز توجيه مزود ببرنامج OpenWRT / LEDE / البرامج الثابتة المخصصة المشابهة التي تسمح لك بتثبيت Quagga أو Bird. لا يُحظر أيضًا استخدام جهاز توجيه الكمبيوتر. بالنسبة للمؤسسة ، راجع الوثائق الخاصة بجهاز توجيه الحدود الخاص بك لدعم BGP.
  3. يجب أن تكون على دراية باستخدام Linux وتقنيات الشبكة ، بما في ذلك BGP. أو على الأقل ترغب في الحصول على هذه الفكرة. نظرًا لأنني لست مستعدًا لاحتضان ضخامة هذه المرة ، فسيتعين عليك دراسة بعض النقاط التي لا تفهمها بنفسك. ومع ذلك ، سأجيب بالطبع على أسئلة محددة في التعليقات ومن غير المرجح أن أكون الشخص الوحيد الذي أجاب ، لذلك لا تتردد في طرحها.

ما هو مستخدم في المثال

  • نسخة من السجل https://github.com/zapret-info/z-i 
  • VPS - أوبونتو 16.04
  • خدمة التوجيه - الطيور 1.6.3   
  • جهاز التوجيه - جهاز Mikrotik hAP ac
  • مجلدات العمل - نظرًا لأننا نعمل كجذر ، فسيتم وضع معظم كل شيء في المجلد الرئيسي الجذر. على التوالى:
    • / الجذر / القائمة السوداء - مجلد العمل مع برنامج نصي التجميع
    • / root / zi - نسخة من التسجيل من جيثب
    • / etc / bird - مجلد إعدادات خدمة الطيور القياسي
  • نحن نقبل 194.165.22.146 ، ASN 64998 كعنوان IP خارجي لخادم VPS مع خادم التوجيه ونقطة إنهاء النفق ؛ عنوان IP الخارجي لجهاز التوجيه - 81.177.103.94 ، ASN 64999
  • عناوين IP داخل النفق هي 172.30.1.1 و 172.30.1.2 ، على التوالي.

إعداد BGP لتجاوز الحظر ، أو "كيف توقفت عن الخوف ووقعت في حب RKN"

بالطبع ، يمكنك استخدام أي أجهزة توجيه وأنظمة تشغيل ومنتجات برمجية أخرى ، وتعديل الحل ليناسب منطقهم.

باختصار - منطق القرار

  1. الإجراءات التحضيرية
    1. الحصول على VPS
    2. نرفع النفق من جهاز التوجيه إلى VPS
  2. الحصول على نسخة من السجل وتحديثها بانتظام
  3. تركيب وتكوين خدمة التوجيه
  4. قم بإنشاء قائمة بالمسارات الثابتة لخدمة التوجيه بناءً على السجل
  5. نقوم بتوصيل جهاز التوجيه بالخدمة وإعداد إرسال كل حركة المرور عبر النفق.

القرار الفعلي

الإجراءات التحضيرية

في اتساع الشبكة هناك العديد من الخدمات التي توفر VPS مقابل أموال معقولة للغاية. لقد عثرت حتى الآن على خيار 9 دولارات في السنة واستخدمه ، ولكن حتى إذا كنت لا تهتم حقًا ، فهناك الكثير من الخيارات لـ 1E / month في كل زاوية. تقع مسألة اختيار VPS خارج نطاق هذه المقالة ، لذلك إذا كان هناك شيء غير واضح لشخص ما حول هذا الموضوع ، فاسأل في التعليقات.

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

احصل على نسخة من التسجيل

كما قال جبرائيل: "من يعيقنا يعيننا". نظرًا لأن RKN تقوم بإنشاء سجل للموارد المحظورة ، فسيكون من الخطيئة عدم استخدام هذا السجل لحل مشكلتنا. سوف نتلقى نسخة من التسجيل من جيثب.

نذهب إلى خادم Linux الخاص بك ، وندخل في سياق root'a (سودو سو —) وقم بتثبيت git إذا لم يكن مثبتًا بالفعل.

apt install git

انتقل إلى الدليل الرئيسي الخاص بك واسحب نسخة من السجل.

cd ~ && git clone --depth=1 https://github.com/zapret-info/z-i 

قم بإعداد تحديث cron (لدي كل 20 دقيقة ، ولكن يمكنك اختيار أي فترة زمنية تهمك). للقيام بذلك ، نركض -e كرونتاب وأضف السطر التالي إليه:

*/20 * * * * cd ~/z-i && git pull && git gc

نقوم بتوصيل خطاف يقوم بإنشاء ملفات لخدمة التوجيه بعد تحديث السجل. للقيام بذلك ، نقوم بإنشاء ملف /root/zi/.git/hooks/post-merge بالمحتوى التالي:

#!/usr/bin/env bash
changed_files="$(git diff-tree -r --name-only --no-commit-id ORIG_HEAD HEAD)"
check_run() {
    echo "$changed_files" | grep --quiet "$1" && eval "$2"
}
check_run dump.csv "/root/blacklist/makebgp"

ولا تنس أن تجعله قابلاً للتنفيذ

chmod +x /root/z-i/.git/hooks/post-merge

سيتم إنشاء البرنامج النصي makebgp المشار إليه بواسطة الخطاف لاحقًا.

تركيب وتكوين خدمة التوجيه

تثبيت الطيور. لسوء الحظ ، فإن إصدار الطيور الذي تم إصداره حاليًا في مستودعات Ubuntu يمكن مقارنته من حيث النضارة براز الأركيوبتركس ، لذلك نحتاج أولاً إلى إضافة PPA الرسمي لمطوري البرامج إلى النظام.

add-apt-repository ppa:cz.nic-labs/bird
apt update
apt install bird

بعد ذلك ، نقوم على الفور بتعطيل Bird لـ IPv6 - في هذا التثبيت لن نحتاج إليه.

systemctl stop bird6
systemctl disable bird6

يوجد أدناه ملف تكوين أضيق الحدود لخدمة الطيور (/etc/bird/bird.conf) ، وهو ما يكفي تمامًا بالنسبة لنا (وأذكرك مرة أخرى أنه لا أحد يمنع تطوير الفكرة وضبطها لتناسب احتياجاتك الخاصة)

log syslog all;
router id 172.30.1.1;

protocol kernel {
        scan time 60;
        import none;
#       export all;   # Actually insert routes into the kernel routing table
}

protocol device {
        scan time 60;
}

protocol direct {
        interface "venet*", "tun*"; # Restrict network interfaces it works with
}

protocol static static_bgp {
        import all;
        include "pfxlist.txt";
        #include "iplist.txt";
}

protocol bgp OurRouter {
        description "Our Router";
        neighbor 81.177.103.94 as 64999;
        import none;
        export where proto = "static_bgp";
        local as 64998;
        passive off;
        multihop;
}

معرف جهاز التوجيه - معرف جهاز التوجيه ، يبدو مرئيًا كعنوان IPv4 ، لكنه ليس كذلك. في حالتنا ، يمكن أن يكون أي رقم 32 بت بتنسيق عنوان IPv4 ، ولكن من الممارسات الجيدة تحديد عنوان IPv4 لجهازك (في هذه الحالة ، VPS) هناك.

يحدد البروتوكول المباشر الواجهات التي ستعمل مع عملية التوجيه. يقدم المثال بعض الأمثلة للأسماء ، يمكنك إضافة المزيد. يمكنك أيضًا حذف الخط ببساطة ، وفي هذه الحالة سيستمع الخادم على جميع الواجهات المتاحة بعنوان IPv4.

البروتوكول الثابت هو سحرنا الذي يقوم بتحميل قوائم البادئات وعناوين IP (والتي هي بالطبع / 32 بادئة) من الملفات للإعلان لاحقًا. من أين تأتي هذه القوائم ستتم مناقشتها أدناه. يرجى ملاحظة أنه يتم التعليق بشكل افتراضي على تحميل عناوين IP ، والسبب في ذلك هو الحجم الكبير للتحميل. للمقارنة ، في وقت كتابة المقال ، كان هناك 78 سطرًا في قائمة البادئات ، و 85898 في قائمة عناوين IP. أوصي بشدة أن تبدأ وتصحيح الأخطاء فقط في قائمة البادئات ، وأن تقرر ما إذا كان لتمكين تحميل IP في المستقبل بعد تجربة جهاز التوجيه الخاص بك. لا يمكن لكل واحد منهم استيعاب 85 ​​ألف إدخال في جدول التوجيه بسهولة.

يقوم البروتوكول bgp بالفعل بإعداد bgp للتناظر مع جهاز التوجيه الخاص بك. عنوان IP هو عنوان الواجهة الخارجية لجهاز التوجيه (أو عنوان واجهة النفق من جانب جهاز التوجيه) ، 64998 و 64999 هي أرقام الأنظمة المستقلة. في هذه الحالة ، يمكن تعيينها في شكل أي أرقام 16 بت ، ولكن من الممارسات الجيدة استخدام أرقام AS من النطاق الخاص المحدد بواسطة RFC6996 - 64512-65534 ضمناً (يوجد تنسيق ASN 32 بت ، ولكن في حالتنا هذا بالتأكيد مبالغة). يستخدم التكوين الموصوف نظير eBGP ، حيث يجب أن تكون أرقام النظام المستقل لخدمة التوجيه والموجه مختلفة.

كما ترى ، تحتاج الخدمة إلى معرفة عنوان IP الخاص بالموجه ، لذلك إذا كان لديك عنوان خاص ديناميكي أو غير قابل للتوجيه (RFC1918) أو عنوان مشترك (RFC6598) ، فلن يكون لديك خيار لرفع النظرة على الواجهة الخارجية ، لكن الخدمة ستظل تعمل داخل النفق.

من الواضح أيضًا أنه يمكنك توفير العديد من أجهزة التوجيه المختلفة بمسارات من خدمة واحدة - فقط قم بتكرار الإعدادات لها عن طريق نسخ قسم البروتوكول bgp مع تغيير عنوان IP الخاص بالجيران. هذا هو السبب في أن المثال يوضح إعدادات النظرة خارج النفق ، باعتبارها الأكثر عالمية. ليس من الصعب إزالتها في النفق عن طريق تغيير عناوين IP في الإعدادات وفقًا لذلك.

معالجة التسجيل لخدمة التوجيه

نحتاج الآن ، في الواقع ، إلى إنشاء قوائم البادئات وعناوين IP ، والتي تم ذكرها في الخطوة السابقة في البروتوكول الثابت. للقيام بذلك ، نأخذ ملف التسجيل ونصنع الملفات التي نحتاجها منه باستخدام البرنامج النصي التالي ، الموجود في / root / blacklist / makebgp

#!/bin/bash
cut -d";" -f1 /root/z-i/dump.csv| tr '|' 'n' |  tr -d ' ' > /root/blacklist/tmpaddr.txt
cat /root/blacklist/tmpaddr.txt | grep / | sed 's_.*_route & reject;_' > /etc/bird/pfxlist.txt
cat /root/blacklist/tmpaddr.txt | sort | uniq | grep -Eo "([0-9]{1,3}[.]){3}[0-9]{1,3}" | sed 's_.*_route &/32 reject;_' > /etc/bird/iplist.txt
/etc/init.d/bird reload
logger 'bgp list compiled'

لا تنس أن تجعله قابلاً للتنفيذ

chmod +x /root/blacklist/makebgp

يمكنك الآن تشغيله يدويًا ومراقبة ظهور الملفات الموجودة في / etc / bird.

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

systemctl start bird
birdc show route

يجب أن يُظهر إخراج الأمر الثاني حوالي 80 إدخالًا (هذا في الوقت الحالي ، وعندما تقوم بإعداده ، سيعتمد كل شيء على حماسة ILV في حظر الشبكات) مثل هذا:

54.160.0.0/12      unreachable [static_bgp 2018-04-19] * (200)

فريق

birdc show protocol

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

BIRD 1.6.3 ready.
name     proto    table    state  since       info
kernel1  Kernel   master   up     2018-04-19
device1  Device   master   up     2018-04-19
static_bgp Static   master   up     2018-04-19
direct1  Direct   master   up     2018-04-19
RXXXXXx1 BGP      master   up     13:10:22    Established
RXXXXXx2 BGP      master   up     2018-04-24  Established
RXXXXXx3 BGP      master   start  2018-04-22  Connect       Socket: Connection timed out
RXXXXXx4 BGP      master   up     2018-04-24  Established
RXXXXXx5 BGP      master   start  2018-04-24  Passive

توصيل جهاز التوجيه

ربما سئم الجميع بالفعل من قراءة فوطة القدم هذه ، لكن تشجّع - فالنهاية قريبة. علاوة على ذلك ، في هذا القسم لن أتمكن من إعطاء إرشادات خطوة بخطوة - سيكون الأمر مختلفًا لكل مصنع.

ومع ذلك ، يمكنني أن أريكم بعض الأمثلة. المنطق الرئيسي هو رفع نظير BGP وإرفاق nexthop بجميع البادئات المستلمة ، مشيرًا إلى النفق الخاص بنا (إذا كنت بحاجة إلى إخراج حركة المرور من خلال واجهة p2p) أو عنوان IP nexthop إذا انتقلت حركة المرور إلى ethernet).

على سبيل المثال ، في Mikrotik في RouterOS ، يتم حل هذا على النحو التالي

/routing bgp instance set default as=64999 ignore-as-path-len=yes router-id=172.30.1.2
/routing bgp peer add in-filter=dynamic-in multihop=yes name=VPS remote-address=194.165.22.146 remote-as=64998 ttl=default
/routing filter add action=accept chain=dynamic-in protocol=bgp comment="Set nexthop" set-in-nexthop=172.30.1.1

وفي Cisco IOS - مثل هذا

router bgp 64999
  neighbor 194.165.22.146 remote-as 64998
  neighbor 194.165.22.146 route-map BGP_NEXT_HOP in
  neighbor 194.165.22.146 ebgp-multihop 250
!
route-map BGP_NEXT_HOP permit 10
  set ip next-hop 172.30.1.1

في حالة استخدام نفس النفق لكل من مناظرة BGP ولإرسال حركة مرور مفيدة ، فليس من الضروري تعيين nexthop ، فسيتم تعيينه بشكل صحيح عن طريق البروتوكول. ولكن إذا قمت بتعيينه يدويًا ، فلن يزداد الأمر سوءًا أيضًا.

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

بعد ارتفاع جلسة BGP الخاصة بك ، وصلت الطرق المؤدية إلى الشبكات الكبيرة وتم تثبيتها في الجدول ، وانقضت حركة المرور إلى العناوين منها واقتربت السعادة ، يمكنك العودة إلى خدمة الطيور ومحاولة إلغاء التعليق على الإدخال هناك الذي يربط قائمة عناوين IP ، قم بتنفيذها بعد ذلك

systemctl reload bird

وانظر كيف نقل جهاز التوجيه الخاص بك هذه المسارات البالغ عددها 85 ألفًا. استعد لإيقاف تشغيله وفكر في ما يجب فعله به 🙂

في المجموع

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

يمكن بالطبع تحسينه. على سبيل المثال ، من السهل تلخيص قائمة عناوين IP من خلال حلول perl أو python. يقوم نص بيرل البسيط الذي يقوم بذلك باستخدام Net :: CIDR :: Lite بتحويل 85 ألف بادئة إلى 60 (وليس ألف) ، لكنه يغطي بشكل طبيعي نطاقًا أكبر بكثير من العناوين مما هو محظور.

نظرًا لأن الخدمة تعمل على المستوى الثالث من نموذج ISO / OSI ، فلن تحميك من حظر الموقع / الصفحة إذا لم يتم حلها إلى العنوان المسجل في السجل. ولكن جنبًا إلى جنب مع التسجيل من github ، يصل ملف nxdomain.txt ، والذي يتحول بسهولة إلى مصدر عناوين ، على سبيل المثال ، المكون الإضافي SwitchyOmega في Chrome ، بضربات قليلة من النص البرمجي.

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

إذا كان لديك أي أسئلة - اسأل ، جاهز للإجابة.

محدث. شكرًا لك ملاحة и تيرانيو للحصول على خيارات git لتقليل أحجام التنزيل.

تحديث 2. زملائي ، يبدو أنني ارتكبت خطأ بعدم إضافة تعليمات لإعداد نفق بين VPS وجهاز التوجيه إلى المقالة. الكثير من الأسئلة سببها هذا.
فقط في حالة ، لاحظت مرة أخرى - من المفترض أنه قبل البدء في الخطوات الواردة في هذا الدليل ، قمت بالفعل بتكوين نفق VPN في الاتجاه الذي تريده وفحصت أدائه (على سبيل المثال ، التفاف حركة المرور هناك بشكل افتراضي أو ثابت). إذا لم تكن قد أكملت هذه المرحلة بعد ، فليس من المنطقي اتباع الخطوات الواردة في المقالة. ليس لدي نصي الخاص بهذا الأمر حتى الآن ، ولكن إذا بحثت في google "إعداد خادم OpenVPN" جنبًا إلى جنب مع اسم نظام التشغيل المثبت على VPS ، و "إعداد عميل OpenVPN" باسم جهاز التوجيه الخاص بك ، فأنت على الأرجح سوف تجد عددًا من المقالات حول هذا الموضوع ، بما في ذلك عن حبري.

تحديث 3. غير مذبح كتب رمزًا يجعل الملف الناتج للطائر من dump.csv مع تجميع اختياري لعناوين IP. لذلك ، يمكن استبدال قسم "معالجة التسجيل لخدمة التوجيه" باستدعاء لبرنامجها. https://habr.com/post/354282/#comment_10782712

UPD4. القليل من العمل على الأخطاء (لم يساهم في النص):
1) بدلا من ذلك إعادة تحميل الطيور systemctl من المنطقي استخدام الأمر تكوين Birdc.
2) في جهاز التوجيه Mikrotik ، بدلاً من تغيير القفزة التالية إلى IP للجانب الثاني من النفق / إجراء إضافة عامل تصفية التوجيه = سلسلة القبول = بروتوكول ديناميكي = تعليق bgp = "تعيين nexthop" مجموعة في nexthop = 172.30.1.1 من المنطقي تحديد المسار مباشرة إلى واجهة النفق ، بدون العنوان / عامل تصفية التوجيه إضافة إجراء = سلسلة قبول = بروتوكول ديناميكي = تعليق bgp = "تعيين nexthop" set-in-nexthop-direct = <اسم الواجهة>

UPD5. وصلت خدمة جديدة https://antifilter.download، حيث يمكنك أخذ قوائم جاهزة لعناوين IP. يتم تحديثها كل نصف ساعة. من جانب العميل ، كل ما تبقى هو تأطير الإدخالات مع "المسار ... الرفض" المقابل.
وربما يكون هذا كافيًا لإزعاج جدتي وتحديث المقال.

UPD6. نسخة منقحة من المقال لأولئك الذين لا يريدون أن يفهموا ، لكنهم يريدون البدء - هنا.

المصدر: www.habr.com

إضافة تعليق