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

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

pfSense + Squid مع تصفية https + تسجيل الدخول الأحادي (SSO) مع تصفية مجموعة Active Directory

خلفية موجزة

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

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

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

وصف

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

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

تستعد لتثبيت Squid

سيتم أخذ pfSense كأساس ، تعليمات التحميل.

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

مهم جدا!

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

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

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

التثبيت والتكوين المسبق

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

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

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

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

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

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

الاسترجاع مطلوب لكي يعمل sqstat.

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

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

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

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

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

# ktpass -princ HTTP/[email protected] -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:keytabsPROXY.keytab

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

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

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

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

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

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

بعد تكوين kerberos بنجاح ، سنقوم بربطه بالحبار الخاص بنا.

للقيام بذلك ، انتقل إلى ServicesSquid 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 Negotiate program / 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 مع معنى لا شيء - يقوم بتعطيل الطلبات الدورية لوحدة التحكم بالمجال ، مما يقلل بشكل كبير من الحمل عليها إذا كان لديك أكثر من 50 مستخدمًا.
طوال مدة الاختبار ، يمكنك أيضًا إضافة المفتاح -d - أي التشخيصات ، سيتم عرض المزيد من السجلات.
auth_param تفاوض الأطفال 1000 - يحدد عدد عمليات التفويض المتزامنة التي يمكن تشغيلها
auth_param يفاوض keep_alive على - لا يسمح بقطع الاتصال أثناء الاستقصاء عن سلسلة التفويض
proxy_auth مصادقة ACL مطلوب - ينشئ ويتطلب قائمة التحكم في الوصول التي تتضمن المستخدمين الذين اجتازوا التفويض
acl nonauth dstdomain "/etc/squid/nonauth.txt" - نقوم بإبلاغ Squid بقائمة وصول nonauth ، والتي تحتوي على نطاقات الوجهة ، والتي يُسمح دائمًا للجميع بالوصول إليها. نقوم بإنشاء الملف نفسه ، وداخله ندخل المجالات في التنسيق

.whatsapp.com
.whatsapp.net

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

تكوين SquidGuard

انتقل إلى ServicesSquidGuard 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"

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

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

لقطع المجال غير الضروري المجال.LOCAL الذي يعتبر النظام بأكمله حساسًا جدًا تجاهه.

ننتقل الآن إلى 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))

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

LightSquid و sqstat

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

إتمام

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

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

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

إضافة تعليق