ڈومین کی اجازت کے ساتھ انٹرپرائز کے لیے مفت پراکسی سرور

ڈومین کی اجازت کے ساتھ انٹرپرائز کے لیے مفت پراکسی سرور

pfSense+Squid with https فلٹرنگ + سنگل سائن آن ٹیکنالوجی (SSO) ایکٹو ڈائریکٹری گروپس کے ذریعے فلٹرنگ کے ساتھ

مختصر پس منظر

انٹرپرائز کو ایک پراکسی سرور کو لاگو کرنے کی ضرورت تھی جس میں AD سے گروپس کے ذریعہ سائٹس تک رسائی (بشمول https) کو فلٹر کرنے کی صلاحیت ہو، تاکہ صارفین کوئی اضافی پاس ورڈ درج نہ کریں، اور انتظامیہ ویب انٹرفیس سے کی جا سکے۔ برا ایپلی کیشن نہیں ہے، ہے نا؟

درست جواب یہ ہوگا کہ کیریو کنٹرول یا یوزر گیٹ جیسے حل خریدیں، لیکن ہمیشہ کی طرح پیسے نہیں ہیں، لیکن ضرورت ہے۔

یہ وہ جگہ ہے جہاں اچھا پرانا اسکویڈ ہمارے بچاؤ کے لئے آتا ہے، لیکن پھر، میں ویب انٹرفیس کہاں سے حاصل کرسکتا ہوں؟ SAMS2؟ اخلاقی طور پر فرسودہ۔ یہ وہ جگہ ہے جہاں pfSense بچاؤ کے لئے آتا ہے۔

تفصیل

یہ مضمون اسکویڈ پراکسی سرور کو ترتیب دینے کا طریقہ بتائے گا۔
صارفین کو اجازت دینے کے لیے Kerberos کا استعمال کیا جائے گا۔
SquidGuard کو ڈومین گروپس کے ذریعے فلٹر کرنے کے لیے استعمال کیا جائے گا۔

Lightsquid، sqstat اور اندرونی pfSense نگرانی کے نظام کو نگرانی کے لیے استعمال کیا جائے گا۔
سنگل سائن آن (SSO) ٹیکنالوجی کے نفاذ سے منسلک ایک عام مسئلہ بھی حل ہو جائے گا، یعنی وہ ایپلیکیشنز جو اپنے سسٹم اکاؤنٹ کے کمپاس اکاؤنٹ کے تحت انٹرنیٹ تک رسائی حاصل کرنے کی کوشش کر رہی ہیں۔

سکویڈ انسٹال کرنے کی تیاری

pfSense کو بنیاد کے طور پر استعمال کیا جائے گا، انسٹالیشن کی ہدایات.

جس کے اندر ہم ڈومین اکاؤنٹس کا استعمال کرتے ہوئے خود فائر وال کی توثیق کا اہتمام کرتے ہیں۔ ہدایات.

بہت اہم!

اسکویڈ کو انسٹال کرنا شروع کرنے سے پہلے، آپ کو DNS سرور کو pfsense میں ترتیب دینا ہوگا، ہمارے DNS سرور پر اس کے لیے A ریکارڈ اور PTR ریکارڈ بنانا ہوگا اور NTP کو ترتیب دینا ہوگا تاکہ وقت ڈومین کنٹرولر کے وقت سے مختلف نہ ہو۔

اور اپنے نیٹ ورک میں، pfSense WAN انٹرفیس کے لیے انٹرنیٹ تک رسائی کی اہلیت فراہم کریں، اور مقامی نیٹ ورک کے صارفین کو LAN انٹرفیس سے مربوط ہونے کی صلاحیت فراہم کریں، بشمول پورٹ 7445 اور 3128 (میرے معاملے میں، 8080) کے ذریعے۔

سب تیار ہے؟ کیا ڈومین pfSense پر اجازت کے لیے LDAP کے ذریعے منسلک ہے اور کیا وقت مطابقت پذیر ہے؟ زبردست. یہ اہم عمل شروع کرنے کا وقت ہے.

انسٹالیشن اور پری کنفیگریشن

ہم "سسٹم/پیکیج مینیجر" سیکشن میں pfSense پیکیج مینیجر سے Squid، SquidGuard اور LightSquid انسٹال کریں گے۔

کامیاب تنصیب کے بعد، "سروسز/سکویڈ پراکسی سرور/" پر جائیں اور سب سے پہلے، لوکل کیش ٹیب میں، کیشنگ کو ترتیب دیں، میں نے ہر چیز کو 0 پر سیٹ کیا، کیونکہ مجھے سائٹس کیشنگ میں زیادہ نقطہ نظر نہیں آتا ہے؛ براؤزر اسے ٹھیک ہینڈل کرتے ہیں۔ سیٹ کرنے کے بعد، اسکرین کے نیچے "محفوظ کریں" کے بٹن کو دبائیں اور اس سے ہمیں بنیادی پراکسی سیٹنگز کرنے کا موقع ملے گا۔

اہم ترتیبات مندرجہ ذیل ہیں:

ڈومین کی اجازت کے ساتھ انٹرپرائز کے لیے مفت پراکسی سرور

ڈیفالٹ پورٹ 3128 ہے، لیکن میں 8080 استعمال کرنے کو ترجیح دیتا ہوں۔

پراکسی انٹرفیس ٹیب میں منتخب پیرامیٹرز اس بات کا تعین کرتے ہیں کہ ہمارا پراکسی سرور کن انٹرفیس کو سنے گا۔ چونکہ یہ فائر وال اس طرح بنایا گیا ہے کہ یہ 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 کی نشاندہی کرتے ہیں، اس معاملے کا احترام کرنا یقینی بنائیں، میپوزر پیرامیٹر میں ہم اپنا ڈومین اکاؤنٹ اور اس کا پاس ورڈ درج کرتے ہیں، اور کرپٹو میں ہم انکرپشن کا طریقہ منتخب کرتے ہیں، میں نے کام کے لیے rc4 استعمال کیا اور آؤٹ فیلڈ میں جہاں ہم منتخب کرتے ہیں۔ ہم اپنی تیار کلید فائل بھیجیں گے۔
کلیدی فائل کو کامیابی کے ساتھ بنانے کے بعد، ہم اسے اپنے pfSense پر بھیجیں گے، میں نے اس کے لیے Far استعمال کیا، لیکن آپ اسے کمانڈز، پٹی یا "DiagnosticsCommand Line" سیکشن میں pfSense ویب انٹرفیس کے ذریعے بھی کر سکتے ہیں۔

اب ہم create /etc/krb5.conf میں ترمیم کر سکتے ہیں۔

ڈومین کی اجازت کے ساتھ انٹرپرائز کے لیے مفت پراکسی سرور

جہاں /etc/krb5.keytab وہ کلیدی فائل ہے جو ہم نے بنائی ہے۔

Kinit کا استعمال کرتے ہوئے Kerberos کے آپریشن کو ضرور چیک کریں؛ اگر یہ کام نہیں کرتا ہے، تو مزید پڑھنے کا کوئی فائدہ نہیں ہے۔

سکویڈ کی توثیق اور بغیر تصدیق رسائی کی فہرست کو ترتیب دینا

Kerberos کو کامیابی سے کنفیگر کرنے کے بعد، ہم اسے اپنے Squid کے ساتھ منسلک کریں گے۔

ایسا کرنے کے لیے ServicesSquid Proxy Server پر جائیں اور مین سیٹنگز میں، بالکل نیچے جائیں، وہاں ہمیں "Advanced settings" کا بٹن ملے گا۔

اپنی مرضی کے اختیارات (تصویر سے پہلے) فیلڈ میں درج کریں:

#Хелперы
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 - کربروس تصدیقی مددگار کو منتخب کرتا ہے جس کی ہمیں ضرورت ہے۔

کلیدی -s معنی کے ساتھ GSS_C_NO_NAME - کلیدی فائل سے کسی بھی اکاؤنٹ کے استعمال کا تعین کرتا ہے۔

کلیدی -k معنی کے ساتھ /usr/local/etc/squid/squid.keytab - اس مخصوص کی ٹیب فائل کو استعمال کرنے کا تعین کرتا ہے۔ میرے معاملے میں، یہ وہی کی ٹیب فائل ہے جو ہم نے تیار کی تھی، جسے میں نے /usr/local/etc/squid/ ڈائریکٹری میں کاپی کیا اور اس کا نام تبدیل کر دیا کیونکہ سکویڈ اس ڈائریکٹری کے ساتھ دوستی نہیں کرنا چاہتا تھا، بظاہر میرے پاس نہیں تھا۔ کافی حقوق.

کلیدی -t معنی کے ساتھ -کوئی نہیں - ڈومین کنٹرولر کو سائکلیکل درخواستوں کو غیر فعال کر دیتا ہے، جو اس پر بوجھ کو بہت کم کر دیتا ہے اگر آپ کے 50 سے زیادہ صارفین ہیں۔
ٹیسٹ کے دوران، آپ -d سوئچ بھی شامل کر سکتے ہیں - یعنی تشخیص، مزید لاگز دکھائے جائیں گے۔
auth_param بچوں کی بات چیت 1000 - اس بات کا تعین کرتا ہے کہ اجازت دینے کے کتنے عمل بیک وقت شروع کیے جا سکتے ہیں۔
auth_param مذاکرات جاری رکھیں - اجازت کے سلسلے کو پولنگ کے دوران کنکشن کو منقطع ہونے سے روکتا ہے۔
acl auth proxy_auth کی ضرورت ہے۔ - ایک رسائی کنٹرول لسٹ بناتا ہے اور اس کی ضرورت ہوتی ہے جس میں مجاز صارفین شامل ہوں۔
acl nonauth dstdomain "/etc/squid/nonauth.txt" - ہم اسکویڈ کو nonauth رسائی کی فہرست کے بارے میں مطلع کرتے ہیں، جس میں منزل کے ڈومینز ہیں جن تک ہر کسی کو ہمیشہ رسائی کی اجازت ہوگی۔ ہم فائل خود بناتے ہیں، اور اس کے اندر ڈومینز کو فارمیٹ میں داخل کرتے ہیں۔

.whatsapp.com
.whatsapp.net

واٹس ایپ کو ایک وجہ کے لیے مثال کے طور پر استعمال کیا جاتا ہے - یہ توثیق کرنے والے پراکسیز کے بارے میں بہت چنچل ہے اور اگر تصدیق سے پہلے اسے اجازت نہ دی جائے تو یہ کام نہیں کرے گا۔
http_access اجازت دیں nonauth - ہر ایک کے لیے اس فہرست تک رسائی کی اجازت دیں۔
http_access انکار !auth - ہم غیر مجاز صارفین کے لیے دوسری سائٹوں تک رسائی پر پابندی لگاتے ہیں۔
http_access اجازت دیں۔ - مجاز صارفین تک رسائی کی اجازت دیں۔
بس، سکویڈ خود کنفیگر ہو گیا ہے، اب وقت آگیا ہے کہ گروپس کے ذریعے فلٹرنگ شروع کی جائے۔

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 کو ختم کرنے کے لیے DOMAINLOCAL جس کے لیے پورا نظام بہت حساس ہے۔

اب گروپ Acl میں جائیں اور اپنے ڈومین تک رسائی والے گروپس کو پابند کریں، میں 0 تک گروپ_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 کی ترتیبات میں لوپ بیک کا انتخاب کیا اور اپنے نیٹ ورک اور خود pfSense دونوں پر فائر وال میں 7445 تک رسائی کی صلاحیت کو کھول دیا، تو جب ہم DiagnosticsSquid Proxy Reports پر جائیں تو ہم آسانی سے sqstat اور Lighsquid دونوں کو کھول سکتے ہیں۔ بعد میں ہمیں ضرورت ہو گی وہاں آپ لاگ ان اور پاس ورڈ لے کر آ سکتے ہیں، اور آپ ایک ڈیزائن بھی منتخب کر سکتے ہیں۔

تکمیل

pfSense ایک بہت ہی طاقتور ٹول ہے جو بہت کچھ کر سکتا ہے - ٹریفک پراکسی کرنا اور انٹرنیٹ تک صارف کی رسائی کو کنٹرول کرنا پوری فعالیت کا صرف ایک حصہ ہے، تاہم، 500 مشینوں کے ساتھ ایک انٹرپرائز میں، اس نے مسئلہ حل کر دیا اور ہمیں بچت کرنے کی اجازت دی۔ پراکسی کی خریداری پر۔

مجھے امید ہے کہ یہ مضمون کسی ایسے مسئلے کو حل کرنے میں مدد کرے گا جو درمیانے اور بڑے کاروباری اداروں کے لیے کافی متعلقہ ہے۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں