آپ کا VPN حکم بغیر مراعات کے چلتا ہے؛ سروس نہیں
پاس ورڈ کی درخواست نہ آنا اس بارے میں کچھ نہیں بتاتا کہ راستے کون بدلتا ہے۔ سروس، اس کا فراہم کردہ انٹرفیس اور وہ پالیسی تلاش کریں جو طے کرتی ہے کہ کون درخواست کر سکتا ہے۔
VPN حکم آپ کے صارف کے طور پر چلتا ہے، کوئی پاس ورڈ ظاہر نہیں ہوتا، اور ٹنل اوپر آ جاتی ہے۔ یہ ترتیب بغیر مراعات کے عمل جیسی محسوس ہوتی ہے، اور عام طور پر ایسی نہیں ہوتی۔ نیٹ ورک کی تبدیلیاں ایک الگ سروس کرتی ہے، اور دلچسپ سوال یہ ہے کہ وہ سروس ایسے کالر کے لیے کیا کرے گی جس کی اس نے تصدیق نہیں کی۔ پاس ورڈ کی درخواستیں گننے سے اس حد کے بارے میں کچھ پتہ نہیں چلتا۔
انٹرفیس، طریقہ کار اور جانچ
انٹرفیس درخواستیں قبول کرتا ہے: جڑیں، قطع کریں، پروفائل منتخب کریں۔ طریقہ کار نیٹ ورک کے عمل کا مالک ہے: انٹرفیس بنانا، راستے بدلنا، فلٹر لگانا۔ اجازت کی جانچ طے کرتی ہے کہ یہ کالر یہ عمل مانگ سکتا ہے یا نہیں۔ یہ تینوں ایک بائنری، ایک معاون اور ایک سسٹم سروس میں پھیلے ہو سکتے ہیں، اور صارف صرف پہلا دیکھتا ہے۔
کردار ایک بائنری میں، دو عملوں میں، یا ایک کلائنٹ اور سسٹم سروس میں رہ سکتے ہیں، اور صارف جو حکم دیکھتا ہے وہ شاذ و نادر ہی بتاتا ہے کہ کون سا۔ ٹرے آئیکن اور سسٹم ڈیمون ایک ہی ایپلیکیشن لگ سکتے ہیں جبکہ وہ بہت مختلف اختیار کے ساتھ چلتے ہیں۔ نصب کے وقت کی مراعات اور درخواست کے وقت کی مراعات بھی الگ الگ چیزیں ہیں۔ root کے طور پر چلنے والا انسٹالر بعد کی درخواستیں سننے والی سروس چھوڑ سکتا ہے، پیکیج منیجر کے ختم ہونے کے بہت بعد تک۔ اختیار اسی سروس کے پاس ہے، آپ کے ٹائپ کیے حکم کے پاس نہیں۔
سونپنا عام ڈیزائن ہے
مراعات یافتہ نیٹ ورک کام کسی سروس کو سونپنا معقول فن تعمیر ہے۔ یہ عام ایپلیکیشنز کو بغیر مراعات رکھتی ہے اور توجہ طلب عملوں کو مرکوز کرتی ہے۔ یہ ڈیزائن تبھی فائدہ دیتا ہے جب سروس یہ بھی جانچے کہ کون مانگ رہا ہے اور کس لیے۔ اس جانچ کے بغیر یہ صرف ایک چوڑا دروازہ ہے۔
NetworkManager لینکس پر ٹھوس مثال ہے۔ اس کی کنفیگریشن گائیڈ بتاتی ہے کہ PolicyKit ڈیفالٹ ترتیب میں غیر root درخواستوں کو کیسے اجازت دیتا ہے۔ یہ کسی حقیقی پروڈکٹ میں سونپی گئی اجازت دکھاتا ہے۔ یہ ثابت نہیں کرتا کہ ہر تجارتی کلائنٹ NetworkManager استعمال کرتا ہے، اور کسی مخصوص فروش کے ساکٹ راستے یا پالیسی کو بیان نہیں کرتا۔
نمونہ وہ سونپنا ہے جس کے پیچھے پالیسی ہو۔ مثال اس نمونے کا ایک نفاذ ہے، عالمگیر نہیں۔
حد پڑھیں، درخواست نہیں
سروس، اس کی کنفیگریشن کا مالک اور وہ مقامی انٹرفیس تلاش کریں جو سامنے کا حصہ استعمال کرتا ہے۔ پھر پوچھیں کہ کون سے صارف کون سے عمل مانگ سکتے ہیں۔ ایک محفوظ پروفائل کو اوپر نیچے کرنا اسی اجازت کے برابر نہیں جو آپریٹر نے کبھی نہ دیکھی کنفیگریشن لوڈ کرنے کی ہے۔ فرق ہی پورا سکیورٹی سوال ہے۔
سروس منیجر اور کلائنٹ کے اپنی اجازات کے بارے میں اپنے نظریے سے شروع کریں۔ نیچے دیے گئے حکم بتاتے ہیں کہ ڈیمون چل رہا ہے یا نہیں، کالر اس سے کیا مانگ سکتا ہے، اور ڈیمون اپنی رن ٹائم ڈائریکٹری کے تحت کیا پیش کرتا ہے۔
systemctl status NetworkManager
nmcli general permissions
ls -l /run/NetworkManager
یہ بھی پوچھیں کہ عمل کس چیز پر اثر ڈالتا ہے۔ ذاتی لگنے والا مینو آئٹم پوری مشین کے راستے اور DNS بدل سکتا ہے، جس کا مطلب ہے کہ یہ دوسرے صارفین کے سیشن متاثر کر سکتا ہے۔ اثر کا دائرہ اسی جائزے میں آتا ہے جس میں اجازت، اور عام طور پر یہی طے کرتا ہے کہ سروس کو زیادہ محدود کردار کی ضرورت ہے یا نہیں۔
اجازات کو معاون طریقے سے درست کریں
کسی محفوظ کنٹرول ساکٹ کو سب کے لیے لکھنے کے قابل بنانا، یا اکاؤنٹ کو وسیع انتظامی گروپ میں شامل کرنا، ایک اجازت کی خرابی ہٹاتا ہے اور بڑی پیدا کرتا ہے۔ وہ خرابی ہی واحد چیز تھی جو آپ کو بتاتی تھی کہ یہ حد موجود ہے۔ دستاویزی رکنیت یا اجازت کا عمل استعمال کریں، اس کے مطلوبہ سیشن کی تازگی سمیت۔ گروپ رکنیت اکثر صرف نئے لاگ ان سیشن پر لاگو ہوتی ہے، اسی لیے تبدیلی اگلی سائن اِن تک کچھ نہ کرتی دکھ سکتی ہے۔
اگر پروڈکٹ اس عمل کے لیے زیادہ محدود کردار فراہم کرتا ہے، تو عام اجازت کے بجائے وہی چنیں۔ منتخب کردار اور اس کا مالک سروس کے نام کے ساتھ لکھیں۔
اچھی تقسیم کیسی لگتی ہے
عام ایپلیکیشنز بغیر مراعات رہتی ہیں، سروس صرف وہ ترتیب کرتی ہے جس کے لیے بنی ہے، اور ہر کالر کا موازنہ ایسی پالیسی سے ہوتا ہے جس کا کوئی مالک ہو۔ یہ قابل دفاع ڈیزائن ہے۔ یہ قابلِ آڈٹ بھی ہے، کیونکہ پالیسی کے ساتھ ایک نام منسلک ہے۔ اس سے بڑی کوئی چیز خاموش اجازت کی تبدیلی کے بجائے تحریری استثنیٰ کی حقدار ہے۔
ناکامی کا طریقہ وہ سروس ہے جو انٹرفیس سہل ہونے کی وجہ سے کسی بھی مقامی صارف کی کوئی بھی درخواست پوری کر دیتی ہے۔ صارف کی جانب سے یہ یکساں دکھائی دیتا ہے، اور یہ بہت بڑا اختیار رکھتا ہے۔ صرف کامیاب درخواست نہیں، ایک مسترد درخواست بھی جانچیں۔ پالیسی سے آنے والا انکار ہی اس بات کا ثبوت ہے کہ پالیسی موجود ہے۔