سرور پروکسی رایگان برای شرکت با مجوز دامنه

سرور پروکسی رایگان برای شرکت با مجوز دامنه

pfSense+Squid با فیلتر https + Single sign-on (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" نصب خواهند شد.

پس از نصب موفقیت آمیز، به "سرویس ها / Squid Proxy Server /" بروید و اول از همه در تب Local Cache، caching را پیکربندی کنید، همه چیز را روی 0 تنظیم کردم، زیرا من اهمیت زیادی در کش کردن سایت ها نمی بینم، مرورگرها با این کار بسیار خوبی انجام می دهند. پس از تنظیم، دکمه "ذخیره" را در پایین صفحه فشار دهید و این فرصت را به ما می دهد تا تنظیمات اولیه پروکسی را انجام دهیم.

تنظیمات اصلی به شرح زیر است:

سرور پروکسی رایگان برای شرکت با مجوز دامنه

پورت پیش فرض 3128 است، اما من ترجیح می دهم از 8080 استفاده کنم.

پارامترهای انتخاب شده در تب Interface Proxy تعیین می کند که سرور پروکسی ما به کدام رابط ها گوش دهد. از آنجایی که این فایروال به گونه ای ساخته شده است که در اینترنت به عنوان یک رابط WAN به نظر می رسد، حتی اگر LAN و WAN می توانند در یک زیر شبکه محلی باشند، توصیه می کنم از LAN برای پروکسی استفاده کنید.

Loopback برای کارکرد sqstat مورد نیاز است.

در زیر تنظیمات پروکسی Transparent (شفاف) و همچنین فیلتر 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 فایل کلیدی است که ما ایجاد کردیم.

حتما با استفاده از کینیت عملکرد کربرو را بررسی کنید، اگر جواب نداد، ادامه مطلب فایده ای ندارد.

پیکربندی Squid Authentication و Access List بدون احراز هویت

پس از پیکربندی موفقیت آمیز kerberos، آن را به Squid خود متصل می کنیم.

برای انجام این کار، به 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 /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 در - اجازه نمی دهد که اتصال در طول رای گیری زنجیره مجوز قطع شود
acl auth proxy_auth مورد نیاز است - ایجاد و نیاز به یک لیست کنترل دسترسی که شامل کاربرانی است که مجوز را گذرانده اند
acl nonauth dstdomain "/etc/squid/nonauth.txt" - ما لیست دسترسی nonauth را که شامل دامنه های مقصد است، که همه همیشه مجاز به دسترسی به آن هستند، به Squid اطلاع می دهیم. ما خود فایل را ایجاد می کنیم و داخل آن دامنه هایی با فرمت وارد می کنیم

.whatsapp.com
.whatsapp.net

Whatsapp بیهوده به عنوان مثال استفاده نمی شود - در مورد پروکسی با احراز هویت بسیار حساس است و اگر قبل از احراز هویت مجاز نباشد کار نخواهد کرد.
http_access اجازه nonauth را می دهد - اجازه دسترسی به این لیست را برای همه فراهم کنید
http_access deny !auth - ما دسترسی کاربران غیرمجاز به سایت های دیگر را ممنوع می کنیم
http_access اجازه auth را می دهد - اجازه دسترسی به کاربران مجاز
تمام است، خود ماهی مرکب پیکربندی شده است، اکنون زمان شروع فیلتر کردن بر اساس گروه ها است.

پیکربندی SquidGuard

به ServicesSquidGuard Proxy Filter بروید.

در LDAP Options داده‌های حساب خود را که برای احراز هویت 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"

بعد، حتما این کادرها را علامت بزنید:

سرور پروکسی رایگان برای شرکت با مجوز دامنه

برای قطع کردن DOMAINpfsense غیر ضروری دامنه.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))

گروه خود را ذخیره کنید، به Times بروید، در آنجا من یک شکاف ایجاد کردم به معنای همیشه کار کردن، اکنون به Target Categories بروید و لیست ها را بنا به صلاحدید خود ایجاد کنید، پس از ایجاد لیست ها به گروه های خود باز می گردیم و در داخل گروه با دکمه ها انتخاب می کنیم که چه کسی می تواند برود. کجا، و چه کسی نمی تواند کجا.

LightSquid و sqstat

اگر در طی فرآیند پیکربندی یک حلقه بک در تنظیمات squid انتخاب کردیم و توانایی دسترسی به 7445 را در فایروال هم در شبکه خود و هم در خود pfSense باز کردیم، پس هنگام رفتن به Squid Proxy Reports Diagnostics، می توانیم به راحتی هم sqstat و هم Lighsquid را باز کنیم. برای دومی به ما نیاز داریم در همان مکان، یک نام کاربری و رمز عبور بیاوریم، و همچنین امکان انتخاب طرح وجود دارد.

اتمام

pfSense یک ابزار بسیار قدرتمند است که می تواند کارهای زیادی انجام دهد - هم پروکسی ترافیک و هم کنترل دسترسی کاربر به اینترنت فقط کسری از کل عملکرد است، با این حال، در یک شرکت با 500 ماشین، این مشکل را حل کرد و در آن صرفه جویی کرد. خرید پروکسی

امیدوارم این مقاله به کسی کمک کند تا مشکلی را که برای شرکت های متوسط ​​و بزرگ کاملاً مرتبط است حل کند.

منبع: www.habr.com

اضافه کردن نظر