تم رفض الوصول إلى ذاكرة التخزين المؤقت بواسطة Squid. Squid - إعداد تصفية عناوين URL حسب القوائم. تحسين موارد الشبكة من خلال التخزين المؤقت

09.07.2020

يعد Squid حلاً شائعًا بين المبرمجين ومسؤولي النظام وعشاق شبكات الكمبيوتر لإنشاء وإدارة خادم وكيل فعال. البرنامج جذاب بشكل خاص لأنه متعدد المنصات. أي أنه يمكنك تثبيته وتشغيله على Linux وأنظمة التشغيل الأخرى المتوافقة مع بنية Unix وعلى Windows. قدرات هذه الأداة هي الأكثر تميزا. كيف يمكن استخدامها؟ هل هناك أي ميزات في إعداد البرنامج حسب نظام التشغيل المحدد؟

معلومات عامة عن الحبار

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

تم تكييف Squid للاستخدام على منصات Unix. ومع ذلك، هناك إصدارات Squid لنظام التشغيل Windows والعديد من أنظمة التشغيل الشائعة الأخرى. هذا البرنامج، مثل العديد من أنظمة التشغيل المستندة إلى مفهوم Unix، مجاني. وهو يدعم FTP وSSL، ويسمح لك بتكوين تحكم مرن في الوصول إلى الملفات. يقوم Squid أيضًا بتخزين استعلامات DNS مؤقتًا. في الوقت نفسه، يمكنك أيضًا تكوين وكيل Squid الشفاف، أي أن الخادم يعمل بتنسيق لا يعرف المستخدم أنه يصل إلى الشبكة من خلاله، وليس بشكل مباشر. هكذا هو الحبار أداة قويةفي أيدي مسؤول النظام أو مزود خدمة الاتصالات.

الفائدة العملية من الحبار

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

تكوين الحبار

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

تثبيت البرنامج

تثبيت Squid عادة لا يسبب أي صعوبات. من السهل جدًا تثبيت البرنامج على Linux: ما عليك سوى إدخال الأمر $ Sudo apt-get install squid.

أما بالنسبة لـ Squid لنظام التشغيل Windows، فالأمور أكثر تعقيدًا بعض الشيء. النقطة هي أن هذا البرنامجلا يملك الملفات القابلة للتنفيذ— العناصر الرئيسية لتطبيقات نظام التشغيل من Microsoft.

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

يحتوي توزيع الخادم الوكيل دائمًا على ملف تكوين مثل .conf. إنها الأداة الرئيسية لإعداد الوصول إلى الإنترنت من كمبيوتر المستخدم والأجهزة الأخرى المدمجة فيه الشبكة المحليةعند استخدام الحبار.

تحديد الفروق الدقيقة

ما هي الفروق الدقيقة التي قد يتضمنها إعداد Squid؟ Windows هو نظام تشغيل سيتم فيه العمل مع خادم وكيل عن طريق تحرير ملفات التكوين.

وفي حالة Linux، يمكن استخدامه في بعض الإجراءات. ولكن عموما في هذا نظام التشغيل، وكذلك إذا كان نظام التشغيل الذي تم تكوين Squid عليه هو Windows، فغالبًا ما يتم استخدام ملف squid.conf. وهو يحدد تعبيرات معينة ("الأوامر") يقوم الخادم بموجبها بإدارة الاتصالات بالشبكة.

دعونا نلقي نظرة فاحصة على كيفية تكوين Squid. الخطوة الأولى هي السماح لمستخدمي الشبكة بالوصول إلى الخادم. للقيام بذلك، يجب عليك تعيين القيم المناسبة في ملف squid.conf في http_port، وكذلك في http_access. من المفيد أيضًا إنشاء قائمة التحكم بالوصول أو ACL. تعد إعدادات http_port مهمة بالنسبة لنا، نظرًا لأن مهمتنا هي إعداد Squid لخدمة مجموعة معينة من أجهزة الكمبيوتر فقط. في المقابل، تعد المعلمة مثل http_access مهمة، حيث يمكننا بمساعدتها تنظيم الوصول إلى موارد الشبكة المحددة المطلوبة من عناوين معينة (من الممكن أيضًا استخدام معايير أخرى - البروتوكولات والمنافذ والخصائص الأخرى الموجودة في قائمة التحكم بالوصول (ACL).

كيفية ضبط الإعدادات اللازمة؟ من السهل جدًا القيام بذلك.

لنفترض أننا أنشأنا شبكة كمبيوتر بنطاق عناوين يبدأ بـ 192.168.0.1 وينتهي بـ 192.168.0.254. في هذه الحالة، يجب تعيين المعلمة التالية في إعدادات ACL: src 192.168.0.0/24. إذا كنا بحاجة إلى تكوين منفذ، فسنحتاج في ملف التكوين إلى إدخال http_port 192.168.0.1 (تحتاج فقط إلى تحديد عنوان IP الصحيح) وإدخال رقم المنفذ.

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

العمل مع قوائم ACL: منع الوصول إلى المواقع

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

عنصر src يحظى بشعبية كبيرة. بمساعدتها، يمكنك تسجيل عنوان IP الخاص بالكمبيوتر الذي قدم الطلب إلى الخادم الوكيل. من خلال الجمع بين عنصر src و http_access، يمكنك، على سبيل المثال، السماح بالوصول إلى الشبكة لمستخدم معين، ولكن منع إجراءات مماثلة لأي شخص آخر. ويتم ذلك بكل بساطة.

نكتب ACL (اسم مجموعة المستخدمين) src (الفاصل الزمني لعناوين IP الخاضعة للتنظيم). السطر أدناه هو ACL (name كمبيوتر معين) src (عنوان IP للكمبيوتر المقابل). بعد ذلك نعمل مع http_access. قمنا بتعيين إذن لدخول الشبكة لمجموعة من المستخدمين وجهاز كمبيوتر فردي باستخدام أوامر السماح http_access. نلاحظ في السطر أدناه أنه تم رفض الوصول إلى الشبكة لأجهزة الكمبيوتر الأخرى باستخدام أمر Deny All.

يتضمن إعداد وكيل Squid أيضًا استخدام عنصر مفيد آخر يوفره نظام التحكم في الوصول - dst. يسمح لك بإصلاح عنوان IP الخاص بالخادم الذي يريد المستخدم الوكيل الاتصال به.

باستخدام العنصر المعني، يمكننا، على سبيل المثال، تقييد الوصول إلى شبكة فرعية معينة. للقيام بذلك، يمكنك استخدام الأمر ACL (تعيين الشبكة) DST (عنوان IP للشبكة الفرعية)، السطر أدناه - http_access Den (اسم كمبيوتر معين على الشبكة).

آخر عنصر مفيد- المجال دست. سيسمح لنا بالتقاط المجال الذي يريد المستخدم الاتصال به. باستخدام العنصر المعني، يمكننا تقييد وصول مستخدم معين، على سبيل المثال، إلى موارد الإنترنت الخارجية. للقيام بذلك، يمكنك استخدام الأمر: ACL (مجموعة المواقع) dstdomain (عناوين المواقع)، السطر أدناه - http_access Den (اسم الكمبيوتر على الشبكة).

هناك عناصر بارزة أخرى في هيكل نظام التحكم في الوصول. من بينها SitesRegex. باستخدام هذا التعبير، يمكنك تقييد وصول المستخدم إلى مجالات الإنترنت التي تحتوي على كلمة معينة، على سبيل المثال البريد (إذا كانت المهمة هي منع موظفي الشركة من الوصول إلى خوادم بريد الطرف الثالث). للقيام بذلك، يمكنك استخدام أمر البريد ACL SitesRegexMail dstdom_regex، ثم ACL SitesRegexComNet dstdom_regex \.com$ (وهذا يعني أنه سيتم رفض الوصول لنوع المجال المقابل). السطر أدناه هو رفض http_accesss للإشارة إلى أجهزة الكمبيوتر التي يمكن الوصول منها إلى الملفات الخارجية خوادم البريدغير مرغوب فيه.

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

على سبيل المثال، باستخدام أمر ACL NoSwfFromMail url_regex -i mail.*\.swf$ نقوم بتنظيم القدرة على الوصول إلى مواقع البريد الإلكتروني التي تحتوي على مقاطع فيديو Flash. إذا لم تكن هناك حاجة لتضمينها في خوارزميات الوصول اسم المجال site، فيمكنك استخدام تعبير urlpath_regex. على سبيل المثال، في شكل أمر urlpath_regex -i \.wma$ \.mp3$ لوسائط ACL.

رفض الوصول إلى البرامج

يتيح لك تكوين Squid رفض وصول المستخدم إلى برامج معينة عند استخدام موارد الخادم الوكيل. لهذا الغرض، يمكن استخدام منفذ أمر ACL (اسم البرنامج) (الفاصل الزمني للمنفذ)، السطر أدناه هو http_access Deny All (اسم البرنامج).

الاستفادة من المعايير والبروتوكولات

يتيح إعداد Squid أيضًا لمسؤول النظام ضبط البروتوكول المفضل لاستخدام قناة الإنترنت. على سبيل المثال، إذا كانت هناك حاجة لشخص من جهاز كمبيوتر معين للوصول إلى الشبكة عبر بروتوكول FTP، فيمكنك استخدام الأمر التالي: ACL ftpproto proto ftp، السطر أدناه - http_access Den (اسم الكمبيوتر) ftpproto.

باستخدام عنصر الطريقة، يمكننا تحديد كيفية تقديم طلب HTTP. هناك 2 منهم - GET و POST، ولكن في بعض الحالات يكون الأول هو الأفضل وليس الثاني، والعكس صحيح. على سبيل المثال، من الممكن أن يكون هناك موقف لا ينبغي فيه لموظف معين عرض البريد من خلال mail.ru، لكن صاحب العمل لن يعترض إذا كان الشخص يريد قراءة الأخبار على الموقع المحدد. للقيام بذلك، يمكن لمسؤول النظام استخدام الأمر التالي: ACL sitemailru dstdomain .mail.ru، السطر أدناه - أسلوب ACL ميثودبوس POST، ثم رفض http_access (اسم الكمبيوتر) ميثودبوست sitemailru.

هذه هي الفروق الدقيقة التي يتضمنها تكوين Squid. يتم استخدام Ubuntu أو نظام التشغيل Windows أو أي نظام تشغيل آخر متوافق مع الخادم الوكيل - تعد الميزات التي ناقشناها لتعيين المعلمات الضرورية مميزة بشكل عام لأي بيئة برامج لـ Squid. يعد العمل مع هذا البرنامج عملية مثيرة بشكل لا يصدق وفي نفس الوقت غير معقد بسبب منطق وشفافية الخوارزميات الرئيسية لإعداد البرنامج.

دعونا نلاحظ بعض النقاط الأساسية الخاصة بإعداد Squid.

ما الذي يجب الانتباه إليه عند الإعداد؟

إذا كنت تواجه صعوبة في العثور على ملف squid.conf، وهو أداة تكوين الخادم الرئيسية، فيمكنك محاولة التحقق من دليل etc/squid.

من الأفضل أن تستخدم أبسط الملفات عند العمل مع الملف المعني محرر النصوص: ليست هناك حاجة لتضمين أي عناصر تنسيق في الأسطر المسؤولة عن تكوين الخادم الوكيل.

في بعض الحالات، قد يكون من الضروري تحديد الخادم الوكيل للموفر عند العمل. يوجد أمر Cache_peer لهذا الغرض. تحتاج إلى إدخاله على النحو التالي: Cache_peer (عنوان الخادم الوكيل للموفر).

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

قد تحتاج إلى تحديد أجهزة الكمبيوتر التي يمكنها الوصول إلى الخادم الوكيل. يمكن القيام بذلك باستخدام أوامر ACL المسموح بها للمضيفين src (الفاصل الزمني لعناوين IP للكمبيوتر)، بالإضافة إلى ACL localhost src (العنوان المحلي).

إذا كانت الاتصالات تستخدم منافذ SSL، فيمكن أيضًا إصلاحها باستخدام أمر ssl_ports port ACL. وفي الوقت نفسه، يمكنك حظر استخدام طريقة CONNECT للمنافذ الأخرى، باستثناء تلك المحددة في اتصال SSL الآمن. سيساعدك التعبير http_access Den CONNECT على القيام بذلك! منافذ SSL_Ports.

الحبار وpfSense

في بعض الحالات، يتم استخدام واجهة pfSense، جنبًا إلى جنب مع الخادم الوكيل المعني، والتي تُستخدم كوسيلة فعالة لتنظيمها العمل معا؟ خوارزمية حل هذه المشكلة ليست معقدة للغاية.

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

بعد ذلك تحتاج إلى تنزيل PuTTY - تطبيق مناسبللعمل مع SSH. بعد ذلك، باستخدام وحدة التحكم، تحتاج إلى تثبيت Squid. من السهل القيام بذلك باستخدام الأمر -pkg install squid. بعد ذلك، يجب عليك أيضًا تثبيت وكيل من خلال واجهة الويب pfSense. يمكن تثبيت Squid (لم يتم تكوين معلماته في هذه المرحلة) عن طريق تحديد عنصر قائمة النظام، ثم الحزم، ثم الحزم المتوفرة. يجب أن تكون حزمة Squid Stable متاحة في النافذة المناسبة. دعونا نختار ذلك. من الضروري ضبط الإعدادات التالية: واجهة الوكيل: LAN. يمكنك تحديد المربع المجاور لخط الوكيل الشفاف. حدد عنوان السجل وحدد اللغة الروسية باعتبارها اللغة المفضلة. انقر فوق حفظ.

أداة تحسين الموارد

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

تحسين موارد الشبكة من خلال التخزين المؤقت

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

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

تحسين الموارد من خلال قيود الوصول المستندة إلى الوقت

هناك خيار آخر يمكن استخدامه بفضل إمكانيات Squid-Proxy وهو تقييد وصول المستخدم إلى موارد الشبكة بمرور الوقت. يتم تثبيته باستخدام أمر بسيط للغاية: ACL (اسم الكمبيوتر) الوقت (اليوم، الساعة، الدقيقة). يمكن تقييد الوصول لأي يوم من أيام الأسبوع عن طريق استبدال كلمة "day" بالحرف الأول من الكلمة المقابلة لاسمها في الأبجدية الإنجليزية. على سبيل المثال، إذا كان يوم الاثنين، فعندئذ M، وإذا كان يوم الثلاثاء، فعندئذ T. إذا كان الأمر لا يحتوي على كلمة "يوم"، فسيتم تعيين الحظر المقابل للأسبوع بأكمله. ومن المثير للاهتمام أنه من الممكن أيضًا تنظيم جدول الوصول إلى الشبكة الذي يقوم به المستخدمون باستخدام برامج معينة.

تحسين الموارد من خلال تحديد المعدل

أحد الخيارات الشائعة إلى حد ما هو تحسين الموارد من خلال تنظيم معدل تبادل البيانات المسموح به داخلها شبكة الكمبيوتر. الخادم الوكيل الذي ندرسه هو - الأداة الأكثر ملاءمةلحل هذه المشكلة. يتم تنظيم سرعة تبادل البيانات في الشبكة باستخدام معلمات مثل Delay_class، و Delay_parameters، و Delay_access، وكذلك من خلال عنصر Delay_pools. ولجميع المكونات الأربعة أهمية كبيرة في حل التحديات التي تواجهها مسؤولي النظاممن حيث تحسين موارد الشبكة المحلية.

المشكلة هي ما يلي. في مؤسسة AD، الوصول إلى الإنترنت من خلال وكيل، هناك منطقة المجردة من السلاح. يتم تسجيل الوكيل ومنفذه في إعدادات المتصفح، في قسم _الاتصالات_. للوصول إلى المنطقة المجردة من السلاح، يتم استخدام ISA 2006 (لدي عيسى العميل 2004). نحن نصل إلى الإنترنت من خلال الحبار.

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

خطأ

تم رفض الوصول إلى ذاكرة التخزين المؤقت

حدث الخطأ التالي:

  • تم رفض الوصول إلى ذاكرة التخزين المؤقت

عذرًا، لا يمكنك طلب:

http://go.microsoft.com/fwlink/? من ذاكرة التخزين المؤقت هذه حتى تمر المصادقة.

للقيام بذلك تحتاج إلى Netscape الإصدار 2.0 أو أعلى، أو Microsoft إنترنت إكسبلورر 3.0 أو متصفح متوافق مع HTTP/1.1. يرجى الاتصال بمسؤول ذاكرة التخزين المؤقت إذا كانت لديك مشاكل في المصادقة، أو قم بتغيير كلمة المرور الافتراضية الخاصة بك.


تم الإنشاء الخميس، 18 يونيو 2009 04:11:33 بتوقيت جرينتش بواسطة apk-proxy2.apk.gov (squid/2.6.STABLE18) =============== =======

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

لقد قمت بتثبيت التجميعات التالية 7100(rus)، 7201، والآن هو 7231(rus) - الوضع لا يتغير.

والسؤال هو ماذا وأين تشديد؟

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

الفكرة الرئيسية تكمن في العبارة المأخوذة من دليل Squid لـ http_access:

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

حرفيا ما يلي:

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

لقد ناقشت بالفعل بعض النصائح والقواعد في المقالة. الآن سأحاول أن أنقل رؤيتي ترتيب ACL وhttp_access. في الحقيقة، ترتيب توجيهات ACLلا فرق على الاطلاق. الشيء الرئيسي هو ذلك تم تعريف ACL قبل قواعد http_access(لم أجد أي تأكيد لهذا في الأدلة، ولكن واجهت بعض المشاكل في الوصول عند وضع قائمة التحكم بالوصول بعد http_access). أحاول تجميع ACLs في أنواع مماثلة.

إعداد http_access في Squid

بالضبط ترتيب وضع توجيهات http_accessيحدد ما إذا كان العميل سيصل إلى ذاكرة التخزين المؤقت أم لا. خوارزمية معالجة طلب ذاكرة التخزين المؤقت هي كما يلي:

  1. تتم مقارنة كل طلب بالتسلسل مع كل سطر من قواعد http_access.
  2. وإلى أن يتطابق الطلب مع إحدى قواعد الوصول أو الرفض، فإنه سيتبع من قاعدة إلى أخرى ويتحقق من بيانات الاعتماد الخاصة به.
    كل شيء بسيط هنا. دعونا نلقي نظرة على القواعد التالية:
  3. إذا تم تحديد أكثر من قائمة تحكم بالوصول (Acl) في http_access، فسيتم تطبيق AND المنطقية على سبيل المثال: http_accessallow|deny acl AND acl AND... أو http_accessallow|deny acl وacl AND... أو.
  4. إذا لم يندرج الطلب تحت أي قاعدة، فافتراضيا، يستخدم الحبار القاعدة المعاكسة للقاعدة الأخيرة.

# لدينا قاعدة السماح واحدة لقائمة التحكم في الوصول لمستخدم معين: http_access تسمح للمستخدم # إذا لم يقع الطلب في قائمة التحكم في الوصول هذه عند الوصول إلى Squid، فسيتم تطبيق إجراء الرفض عليه. # وإذا كانت لدينا قاعدتان http_access تسمحان للمستخدم http_access Deny user2 # ولم يتم تضمين الطلب في مستخدم ACL أو ACL USER2، فسيتم تطبيق السماح عليه. # أي أن الإجراء المعاكس للإجراء الأخير http_access Deny user2

هذه هي الأساسيات. ولكن هناك بعض الفروق الدقيقة التي تم الكشف عنها أثناء العملية.

نحن نعلم أن هناك ACLs تستخدم ملفات . أو وحدات أخرى (على سبيل المثال، com.srcdomainو srcdom_regexتتطلب القرار). يمكن استخلاص استنتاج نظري منطقي مفاده أن بيانات ACL قد تعمل بشكل أبطأ إلى حد ما من ACL src أو dst أو ما شابه ذلك. وفقًا للويكي، يقوم المطورون بتقسيم قائمة التحكم في الوصول (ACL) السريعة/البطيئة إلى المجموعات التالية (منذ إصدار Squid 3.1.0.7):

وعليه فإذا ذكرنا قواعد النهي أولاً، خاصة إذا كانت "سريعة" (مثلاً مثلاً).

Http_access رفض مدير http_access Den !Safe_ports http_access Den CONNECT !SSL_ports

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

استكشاف أخطاء ACL وhttp_access

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

Debug_options ALL,1 33,2

بعد إعادة تكوين Squid، ستبدأ الرسائل المتعلقة بالسماح/رفض الوصول لكل جلسة واسم قائمة التحكم في الوصول (ACL) الذي يتم بموجبه منح الوصول أو عدمه في الظهور في Cache.log. إذا لم تكن هذه المعلومات كافية، فيمكنك تضمين المزيد من التفاصيل:

Debug_options ALL,1 33.2 28.9

سيرة ذاتية

هذا كل شيء لهذا اليوم، نظرنا اليوم في مسألة إعداد قائمة التحكم بالوصول (ACL) وhttp_access. منطق معالجة توجيهات http_access والتعرف على بعض التوصيات. ولعل أحد القراء يصحح لي، وسأكون ممتنا للغاية لذلك. بالإضافة إلى هذه المقالة، أوصي بقراءة http://wiki.squid-cache.org/SquidFaq/SquidAcl.

مع أطيب التحيات، مكسيم!

يواجه العديد من مسؤولي النظام مشكلة تقييد وصول المستخدم إلى بعض موارد الإنترنت. في معظم الحالات، لا تكون تصفية المحتوى المعقدة والمستهلكة للموارد ضرورية؛ فقوائم عناوين URL تكون كافية. من الممكن تمامًا تنفيذ هذه الطريقة باستخدام خادم وكيل Squid دون الحاجة إلى استخدام برامج الطرف الثالث.

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

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

فيما يلي، سنفترض أن القارئ لديه المهارات الأساسية لإدارة Linux. نذكرك أيضًا أنه يجب تنفيذ جميع الأوامر أدناه كمستخدم متميز.

أولاً، لنقم بإنشاء ملف قائمة. يمكن أن يكون موجودًا في أي مكان، لكن سيكون من المنطقي وضعه في دليل تكوين Squid - /الخ/الحبار(أو /الخ/الحبار3إذا كنت تستخدم الحبار3)

المس /etc/squid/blacklist

ودعنا نبدأ في ملئه. عند تحديد عنوان URL، يجب عليك استخدام صيغة RegExp؛ ولن نتناول هذه المشكلة بالتفصيل، نظرًا لأنها خارج نطاق المقالة؛ يمكنك قراءة المزيد حول قواعد RegExp. على سبيل المثال، لنحظر الشبكات الاجتماعية الشهيرة:

فك\.كوم
odnoklassniki\.ru

يرجى ملاحظة أن النقطة الموجودة في RegExp هي حرف خدمة وبالتالي يجب الهروب منها \ (خط مائل عكسي).

في ملف تكوين الحبار ( /etc/squid/squid.conf) لنقم بإنشاء قائمة ACL، والتي ستتضمن المضيفين أو المستخدمين الذين سيتم إجراء التصفية لهم.

Acl url_filtred src 10.0.0.100-10.0.0.199

في حالتنا، يتم تمكين التصفية لجميع المضيفين في نطاق العناوين 10.0.0.100-199، أي. سنقوم بتصفية الإنترنت لمجموعة معينة من المستخدمين فقط.

ثم نربط قائمتنا:

قائمة ACL السوداء url_regex -i "/etc/squid/blacklist"

يشير رمز التبديل -i إلى أن القائمة غير حساسة لحالة الأحرف.

الآن دعنا ننتقل إلى قسم القواعد وقبل القاعدة

Http_access يسمح بالشبكة المحلية

Http_access يرفض القائمة السوداء url_filtred

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

احفظ التغييرات وأعد تشغيل Squid:

إعادة تشغيل الحبار الخدمة

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