Squid - تكوين تصفية URL من خلال القوائم. IE8 و Proxies - نظرة عامة على قضايا المصادقة Squid

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

معلومات عامة عن Squid

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

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

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

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

قائمة الحبار

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

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

عادة ما يكون تثبيت Squid بسيطًا. من السهل جدًا تثبيت البرنامج على Linux: فقط أدخل الأمر sudo apt-get install squid.

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

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

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

ضبط الفروق الدقيقة

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

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

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

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

لنفترض أننا أنشأنا شبكة كمبيوتر بنطاق عناوين يبدأ بـ 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 (اسم جهاز كمبيوتر معين) src (عنوان IP لجهاز الكمبيوتر المقابل). بعد ذلك ، نعمل مع http_access. قمنا بتعيين إذن للدخول إلى الشبكة لمجموعة من المستخدمين وجهاز كمبيوتر شخصي باستخدام أوامر السماح http_access. في السطر أدناه ، نصلح أن الوصول إلى بقية أجهزة الكمبيوتر في الشبكة مغلق بواسطة الأمر deny all.

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

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

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

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

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

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

منع الوصول إلى البرامج

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

إشراك المعايير والبروتوكولات

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

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

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

فيما يلي بعض النقاط الرئيسية في إعداد Squid.

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

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

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

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

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

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

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

الحبار و pfSense

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

المس / etc / squid / blacklist

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

Vk \ .com
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 ، أي سنقوم فقط بتصفية الإنترنت لمجموعة محددة من المستخدمين.

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

القائمة السوداء للوحة التحكم في الوصول URL_regex -i "/ etc / squid / blacklist"

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

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

Http_access تسمح لـ localnet

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

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

لنحفظ التغييرات ونعيد تشغيل الحبار:

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

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

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

الفكرة الرئيسية هي العبارة المأخوذة من http_access squid manual:

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

حرفيا ما يلي:

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

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

إعداد http_access في Squid

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

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

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

ضبط http_access)

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

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

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

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

استكشاف أخطاء 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.

مع تحياتي ، مكسيم!

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

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

خطأ

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

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

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

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

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

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


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

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

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

السؤال هو ، ماذا وأين القرص؟