خادم وكيل مجاني للمؤسسات مع مصادقة المجال



pfSense + Squid مع https filtering + Single Sign-On (SSO) Technology with Active Directory group filtering

خلفية موجزة


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

الجواب الصحيح هو شراء حلول مثل Kerio Control أو UserGate ، ولكن كما هو الحال دائمًا لا توجد أموال ، ولكن هناك حاجة.

ثم يأتي الحبار القديم الجيد لإنقاذنا ، ولكن مرة أخرى - من أين تحصل على واجهة الويب؟ SAMS2؟ عفا عليها الزمن أخلاقيا. هنا يأتي pfSense للإنقاذ.

وصف


تصف هذه المقالة كيفية تكوين خادم وكيل Squid.
سيتم استخدام Kerberos لتفويض المستخدمين.
سيتم استخدام SquidGuard للتصفية حسب مجموعات المجال.

للمراقبة ، سيتم استخدام أنظمة المراقبة الداخلية Lightsquid و sqstat و pfSense.
كما سيحل مشكلة شائعة مرتبطة بإدخال تقنية الدخول الموحّد (SSO) ، وهي التطبيقات التي تحاول الوصول إلى الإنترنت من خلال حساب الكمبيوتر / حساب النظام.

التحضير لتثبيت الحبار


سيتم أخذ الأساس pfSense ، تعليمات التثبيت.

ننظم داخلها المصادقة على جدار الحماية نفسه باستخدام حسابات المجال. تعليمات

مهم جدا!

قبل البدء في تثبيت Squid ، تحتاج إلى تكوين خادم DNS في pfsense ، وإنشاء سجل A و PTR له على خادم DNS الخاص بنا وتكوين NTP بحيث لا يختلف الوقت عن الوقت على وحدة تحكم المجال.

وعلى شبكتك ، يمكنك تزويد واجهة pfSense WAN بالوصول إلى الإنترنت ، ويمكن للمستخدمين على الشبكة المحلية الاتصال بواجهة LAN ، بما في ذلك عبر المنفذ 7445 و 3128 (في حالتي 8080).

كل شيء جاهز؟ هل اتصال LDAP مع المجال للحصول على تفويض على pfSense مثبت ومزامنة الوقت؟ غرامة. حان الوقت لبدء العملية الرئيسية.

التثبيت والضبط المسبق


قم بتثبيت Squid و SquidGuard و LightSquid من مدير حزم pfSense في قسم "System / Package Manager".

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

الإعدادات الرئيسية هي كما يلي:

صورة

المنفذ الافتراضي هو 3128 ، لكنني أفضل استخدام 8080.

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

هناك حاجة إلى Lupbek لكي يعمل sqstat.

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

في هذه المرحلة ، نحتاج إلى الانتقال إلى وحدة تحكم المجال الخاصة بنا ، وإنشاء حساب فيها للمصادقة (يمكنك استخدام الحساب الذي تم تكوينه للمصادقة على pfSense نفسها). يعد هذا عاملاً مهمًا جدًا - إذا كنت تنوي استخدام تشفير AES128 أو AES256 - فحدد المربع المناسب في إعدادات الحساب.

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

صورة

بعد ذلك ، نقوم بإنشاء الملف الرئيسي لـ Kerberos ، على وحدة تحكم المجال ، وفتح سطر الأوامر مع حقوق المسؤول وأدخل:

# ktpass -princ HTTP/pfsense.domain.local@DOMAIN.LOCAL -mapuser pfsense -pass 3EYldza1sR -crypto {DES-CBC-CRC|DES-CBC-MD5|RC4-HMAC-NT|AES256-SHA1|AES128-SHA1|All} -ptype KRB5_NT_PRINCIPAL -out C:\keytabs\PROXY.keytab

عندما نحدد FFDN pfSense الخاصة بنا ، تأكد من اتباع التسجيل ، وإدخال حساب المجال وكلمة المرور الخاصة به في معلمة mapuser ، وتحديد طريقة التشفير في التشفير ، استخدمت RC4 للعمل وفي الحقل - خارج ، نختار المكان الذي سنرسل فيه ملفنا الرئيسي الجاهز.
بعد إنشاء الملف الرئيسي بنجاح ، سنرسله إلى pfSense لدينا ، لقد استخدمت Far لهذا ، ولكن يمكنك أيضًا القيام بذلك باستخدام كل من الأوامر والمعجون ، أو من خلال واجهة الويب pfSense في قسم التشخيص / سطر الأوامر.

يمكننا الآن تحرير \ إنشاء /etc/krb5.conf

صورة

حيث /etc/krb5.keytab هو الملف الرئيسي الذي أنشأناه.

تأكد من التحقق من تشغيل kerberos مع kinit ، إذا لم يعمل ، فلا فائدة من القراءة.

تكوين مصادقة Squid وقائمة الوصول بدون مصادقة


بعد تكوين kerberos بنجاح سنربطه بالحبار.

للقيام بذلك ، انتقل إلى Services \ Squid Proxy Server وفي الإعدادات الرئيسية ، ننزل إلى الأسفل ، ستجد زر "الإعدادات المتقدمة".

في حقل الخيارات المخصصة (قبل المصادقة) ، أدخل:

#
auth_param negotiate program /usr/local/libexec/squid/negotiate_kerberos_auth -s GSS_C_NO_NAME -k /usr/local/etc/squid/squid.keytab -t none
auth_param negotiate children 1000
auth_param negotiate keep_alive on
# 
acl auth proxy_auth REQUIRED
acl nonauth dstdomain "/etc/squid/nonauth.txt" 
# 
http_access allow nonauth 
http_access deny !auth
http_access allow auth

حيث يقوم auth_param للتفاوض على البرنامج / usr / local / libexec / squid / Negotiate_kerberos_auth - باختيار مساعد مصادقة Kerberos الذي نحتاجه.

و التبديل -s مع القيمة GSS_C_NO_NAME - يحدد استخدام أي حساب من ملف مفتاح. -k

التبديل مع /usr/local/etc/squid/squid.keytab - يحدد استخدام ملف keytab هذا. في حالتي ، هذا هو نفس ملف keytab الذي أنشأناه ، والذي قمت بنسخه إلى الدليل / usr / local / etc / squid / وأعدت تسميته لأنني لم أكن أريد أن أكون أصدقاء مع هذا الدليل ، على ما يبدو لم تكن هناك حقوق كافية. و -t التبديل مع أي -t قيمة

- يعطل الطلبات الدورية لوحدة تحكم المجال ، مما يقلل بشكل كبير من الحمل عليها إذا كان لديك أكثر من 50 مستخدمًا.
طوال فترة الاختبار ، يمكنك أيضًا إضافة رمز التبديل -d - أي التشخيص ، سيتم عرض المزيد من السجلات.
التفاوض على auth_param الأطفال 1000 - تحديد عدد عمليات المصادقة المتزامنة التي يمكن تشغيلها
auth_param التي يقوم Keep_alive عليها بالتفاوض - لا يقطع الاتصال أثناء إجراء سلسلة تفويض الاقتراع
ACL هو وكيل المصادقة المطلوب - ينشئ ويتطلب قائمة تحكم في الوصول تتضمن مستخدمين
مصدقين غير مصدقين dstdomain " /etc/squid/nonauth.txt "- نبلغ الحبار عن قائمة الوصول غير المصحوبة التي تحتوي على نطاقات الوجهة ، والتي سيتم السماح للجميع دائمًا بالوصول إليها. نقوم بإنشاء الملف نفسه ، وداخله ندخل المجالات في التنسيق

.whatsapp.com
.whatsapp.net

لا يتم استخدام Whatsapp عبثًا كمثال - فهو من الصعب إرضاءه حول وكلاء المصادقة ولن يعمل إذا لم يكن مسموحًا به قبل المصادقة.
http_access تسمح لـ nonauth - السماح بالوصول إلى هذه القائمة لجميع
http_access deny! auth - قم بتعطيل وصول المستخدمين غير المخولين إلى مواقع أخرى
http_access تسمح بالمصادقة - تسمح بالوصول من قبل المستخدمين المصرح لهم.
كل شيء ، الحبار نفسه تم تكوينه لك ، والآن حان الوقت لبدء التصفية حسب المجموعات.

تكوين SquidGuard


انتقل إلى Filter \ SquidGuard Proxy Filter.

في خيارات LDAP ، ندخل تفاصيل حسابنا المستخدم لمصادقة Kerberos ، ولكن بالتنسيق التالي:

CN=pfsense,OU=service-accounts,DC=domain,DC=local

إذا كانت هناك مسافات و / أو أحرف غير لاتينية ، فيجب وضع هذا الإدخال بالكامل بين علامات اقتباس مفردة أو مزدوجة:

'CN=sg,OU=service-accounts,DC=domain,DC=local'
"CN=sg,OU=service-accounts,DC=domain,DC=local"

بعد ذلك ، تأكد من وضع علامات الاختيار هذه:

صورة

لقطع DOMAIN \ pfsense غير الضرورية نطاق. المحلية التي النظام بأكمله حساس للغاية.

ننتقل الآن إلى Group Acl وربط مجموعات الوصول إلى المجال الخاصة بنا ، وأستخدم أسماء بسيطة بروح group_0 ، و group_1 ، وما إلى ذلك حتى 3 ، حيث يمكن لـ 3 الوصول إلى القائمة البيضاء فقط ، و 0 هو كل شيء.

يتم إرفاق المجموعات على النحو التالي:

ldapusersearch ldap://dc.domain.local:3268/DC=DOMAIN,DC=LOCAL?sAMAccountName?sub?(&(sAMAccountName=%s)(memberOf=CN=group_0%2cOU=squid%2cOU=service-groups%2cDC=DOMAIN%2cDC=LOCAL))

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

LightSquid و sqstat


إذا حددنا أثناء عملية الإعداد استرجاعًا في إعدادات الحبار وفتحنا إمكانية الوصول إلى 7445 في جدار الحماية على شبكتنا وعلى pfSense نفسها ، فعندما نذهب إلى تقارير تشخيصي \ Squid Proxy ، يمكننا فتح sqstat و Lighsquid دون مشاكل ، للأخير ستحتاج إلى إيجاد اسم مستخدم وكلمة مرور في نفس المكان ، وهناك أيضًا فرصة لاختيار التصميم.

إكمال


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

آمل أن تساعد هذه المقالة شخصًا ما في حل مشكلة وثيقة الصلة بالمؤسسات المتوسطة والكبيرة.

All Articles