Squid کی SO_ORIGINAL_DST خرابی پڑھنا
Squid میں اصل منزل کی تلاش کی ناکامی کی چھان بین سے پہلے جانچیں کہ واضح طور پر تشکیل شدہ کلائنٹ انٹرسیپشن سننے والے تک پہنچا ہے یا نہیں۔
NF getsockopt(SO_ORIGINAL_DST) اصل منزل کی تلاش کی طرف اشارہ کرتا ہے۔ انٹرسیپشن ترتیب میں، Squid کو دوبارہ معلوم کرنا ہوتا ہے کہ ری ڈائریکٹ شدہ کنکشن اصل میں کہاں جا رہا تھا۔
واضح طور پر تشکیل شدہ براؤزر اپنی درخواستیں جان بوجھ کر پراکسی کو بھیجتا ہے۔ اس کنکشن کو صرف اس لیے NAT انٹرسیپشن کی تاریخ نہیں ملتی کہ Squid کے سننے والے کی پورٹ کے پاس intercept لکھا ہے۔
اس لیے یہ عدم مطابقت منزل کے سرٹیفکیٹ کے متعلقہ ہونے سے پہلے ہی ناکام ہو سکتی ہے۔
اس سے شروع کریں کہ کنکشن کیسے آیا
- اگر ایپلیکیشن میں پراکسی پتہ تشکیل شدہ ہے، تو وہ معمول کا فارورڈ پراکسی سننے والا متعین کریں جو اسے استعمال کرنا چاہیے۔
- اگر گیٹ وے ورنہ سیدھی ٹریفک کو ری ڈائریکٹ کرتا ہے، تو جانچیں کہ وہ مطلوبہ انٹرسیپشن سننے والے تک پہنچتا ہے اور معاون NAT ڈیزائن ضروری منزل کی معلومات محفوظ رکھتا ہے۔
- اگر دونوں موڈ موجود ہوں، تو جانچیں کہ ناکام ہونے والا کلائنٹ واقعی کس پتے اور پورٹ سے رابطہ کر رہا تھا۔
Squid کی http_port دستاویز فرق واضح کرتی ہے: موڈ جھنڈا چھوڑنے سے فارورڈ پراکسی موڈ منتخب ہوتا ہے؛ intercept IP سطح پر NAT انٹرسیپشن کی توقع کرتا ہے۔
پھر نقل و حمل کی حفاظت الگ سے دیکھیں۔ ایک HTTP پراکسی HTTPS کو CONNECT کے ذریعے لے جا سکتی ہے۔ پراکسی کی طرف TLS کنکشن کے لیے موزوں سننے والا اور کلائنٹ ترتیب درکار ہے۔ منزل کی ٹریفک ڈکرپٹ کرنا ایک اور اختیاری صلاحیت ہے۔
صرف اس لیے کہ منزل کا URL HTTPS سے شروع ہوتا ہے، سرٹیفکیٹ بنانا شروع کرنے والا پرانا “HTTPS حل” نقل نہ کریں۔ پہلے کلائنٹ اور سننے والے کے درمیان مطابقت درست کریں۔ اس کے بعد اگر حقیقی TLS خرابی باقی رہے، تو وہ جانچ کے لیے زیادہ مفید خرابی ہوگی۔