ابتدائیہ کا iptables کے لئے رہنما ، لینکس فائر وال
Iptables لینکس آپریٹنگ سسٹم کے لئے بنایا گیا ایک انتہائی لچکدار فائر وال افادیت ہے۔ چاہے آپ نوسکھئیے لینکس کے گیک ہوں یا سسٹم ایڈمنسٹریٹر ، ممکن ہے کہ کچھ ایسا طریقہ ہو جس سے آپ iptables آپ کے لئے بے حد فائدہ مند ہوسکیں۔ پڑھیں جیسے ہی ہم آپ کو دکھاتے ہیں کہ کس طرح انتہائی ورسٹائل لینکس فائر وال کو ترتیب دیں۔
بذریعہ فوٹو ezioman.
iptables کے بارے میں
آئی پی ٹیبلس ایک کمانڈ لائن فائر وال کی افادیت ہے جو ٹریفک کی اجازت یا روکنے کے لئے پالیسی زنجیروں کا استعمال کرتی ہے۔ جب کوئی کنیکشن آپ کے سسٹم پر خود کو قائم کرنے کی کوشش کرتا ہے تو ، iptables اس سے ملنے کے ل its اس فہرست میں قاعدہ ڈھونڈتا ہے۔ اگر اسے کوئی نہیں ملتا ہے تو ، یہ پہلے سے طے شدہ کارروائی کا سہارا لیتے ہیں۔
آئی پی ٹیبلس ہمیشہ کسی بھی لینکس کی تقسیم پر پہلے سے انسٹال ہوتا ہے۔ اسے اپ ڈیٹ / انسٹال کرنے کے لئے ، صرف iptables پیکیج کو بازیافت کریں:
sudo - get iptables انسٹال کریں
فائر اسٹارٹر جیسے iptables کے GUI متبادلات موجود ہیں ، لیکن ایک بار جب آپ کے پاس کچھ کمانڈز ختم ہوجاتے ہیں تو iptables واقعی اتنا مشکل نہیں ہوتا ہے۔ آپ iptables کے قواعد کو ترتیب دیتے وقت انتہائی محتاط رہنا چاہتے ہیں ، خصوصا you اگر آپ کسی سرور میں SSH ہوجاتے ہیں ، کیونکہ ایک غلط کمانڈ آپ کو مستقل طور پر لاک آؤٹ کرسکتا ہے جب تک کہ یہ جسمانی مشین پر دستی طور پر طے نہ ہوجائے۔
زنجیروں کی اقسام
iptables تین مختلف زنجیروں کا استعمال کرتا ہے: ان پٹ ، فارورڈ ، اور آؤٹ پٹ۔
ان پٹ - یہ سلسلہ آنے والے رابطوں کے رویے کو کنٹرول کرنے کے لئے استعمال کیا جاتا ہے۔ مثال کے طور پر ، اگر کوئی صارف آپ کے پی سی / سرور میں ایس ایس ایچ کرنے کی کوشش کرتا ہے تو iptables آئی پی ایڈریس اور پورٹ کو ان پٹ چین میں کسی اصول سے ملانے کی کوشش کرے گا۔
آگے - یہ سلسلہ ان آنے والے رابطوں کے لئے استعمال کیا جاتا ہے جو اصل میں مقامی طور پر نہیں پہنچائے جاتے ہیں۔ روٹر کے بارے میں سوچو - ڈیٹا ہمیشہ اس کو بھیجا جاتا ہے لیکن شاذ و نادر ہی اس کا خود ہی راؤٹر ہی مقصود ہوتا ہے۔ اعداد و شمار کو ابھی اپنے ہدف پر بھیج دیا گیا ہے۔ جب تک آپ اپنے سسٹم پر کسی قسم کی روٹنگ ، نیٹنگ ، یا کوئی اور کام نہیں کرتے ہیں جس کے لئے آگے بڑھنے کی ضرورت ہوتی ہے ، آپ اس زنجیر کو استعمال نہیں کریں گے۔
آگ لگانے کا ایک یقینی راستہ ہے کہ آیا آپ کے سسٹم کو فارورڈ چین کی ضرورت / ضرورت ہے یا نہیں۔
iptables -L -v
مذکورہ اسکرین شاٹ ایک سرور کا ہے جو چند ہفتوں سے چل رہا ہے اور آنے اور جانے والے رابطوں پر کوئی پابندی نہیں ہے۔ جیسا کہ آپ دیکھ سکتے ہیں ، ان پٹ چین نے 11 جیبی پیکٹوں پر کارروائی کی ہے اور آؤٹ پٹ چین نے 17 جی بی پر کارروائی کی ہے۔ دوسری طرف ، فارورڈ چین کو کسی ایک پیکٹ پر کارروائی کرنے کی ضرورت نہیں ہے۔ اس کی وجہ یہ ہے کہ سرور کسی بھی قسم کی فارورڈنگ نہیں کر رہا ہے یا پاس-ٹرو آلہ کے بطور استعمال نہیں ہورہا ہے۔
آؤٹ پٹ - یہ سلسلہ سبکدوش ہونے والے رابطوں کے لئے استعمال ہوتا ہے۔ مثال کے طور پر ، اگر آپ howtogeek.com پر پنگ لگانے کی کوشش کرتے ہیں تو ، آئی پی ٹیبلس اس کی آؤٹ پٹ چین کی جانچ پڑتال کرے گی تاکہ یہ معلوم ہو سکے کہ کنکشن کی کوشش کو اجازت دینے یا انکار کرنے کا فیصلہ کرنے سے قبل پنگ اور ہوٹوجیک ڈاٹ کام کے بارے میں کیا قواعد ہیں۔
انتباہ
اگرچہ بیرونی میزبان کو پنگ دینا کچھ ایسا ہی لگتا ہے جس کے لئے صرف آؤٹ پٹ چین کو عبور کرنے کی ضرورت ہوگی ، اس بات کو ذہن میں رکھیں کہ اعداد و شمار کو واپس کرنے کے لئے ، ان پٹ چین بھی استعمال ہوگا۔ جب آپ اپنے سسٹم کو لاک اپ کرنے کے لip ایپل ٹیبلس کا استعمال کرتے ہو تو ، یاد رکھیں کہ بہت سارے پروٹوکول کو دو طرفہ مواصلات کی ضرورت ہوگی ، لہذا ان پٹ اور آؤٹ پٹ دونوں چینوں کو مناسب طریقے سے تشکیل دینے کی ضرورت ہوگی۔ ایس ایس ایچ ایک عام پروٹوکول ہے جسے لوگ دونوں زنجیروں پر جانے کی اجازت دیتے ہیں۔
پالیسی سلسلہ ڈیفالٹ سلوک
مخصوص قوانین میں جانے اور تشکیل کرنے سے پہلے ، آپ یہ فیصلہ کرنا چاہتے ہیں کہ آپ تینوں زنجیروں کا پہلے سے طے شدہ رویہ کیا ہونا چاہتے ہیں۔ دوسرے لفظوں میں ، اگر کنکشن موجودہ اصولوں سے میل نہیں کھاتا ہے تو آپ iptables کیا کرنا چاہتے ہیں؟
یہ دیکھنے کے لئے کہ آپ کی پالیسی چینوں کو فی الحال بے مثال ٹریفک کے ل do کیا ترتیب دیا گیا ہے ، چلائیں iptables -L
کمانڈ.
جیسا کہ آپ دیکھ سکتے ہیں ، ہم نے ہمیں کلینر آؤٹ پٹ دینے کے لئے گریپ کمانڈ کا بھی استعمال کیا۔ اس اسکرین شاٹ میں ، ہماری زنجیریں فی الحال ٹریفک کو قبول کرنے کے لئے بنی ہیں۔
اس سے کہیں زیادہ بار ، آپ چاہتے ہیں کہ آپ کا نظام پہلے سے طے شدہ طور پر کنیکشن قبول کرے۔ جب تک آپ نے پالیسی چین کے قواعد کو پہلے تبدیل نہیں کیا ہے ، اس ترتیب کو پہلے ہی تشکیل دے دیا جانا چاہئے۔ کسی بھی طرح سے ، بطور ڈیفالٹ روابط قبول کرنے کا حکم یہاں موجود ہے:
iptables - پولیس ان پٹ ACCEPT
iptables - پولیس آؤٹ پٹ ACCEPT
iptables - پولیس فارورڈ ACCEPT
قبول قاعدہ کو ڈیفالٹ کرکے ، آپ پھر دوسرے تمام کنکشن کو قبول کرتے ہوئے ، مخصوص IP پتے یا بندرگاہ نمبروں سے انکار کرنے کے لئے iptables کا استعمال کرسکتے ہیں۔ ہم ایک منٹ میں ان کمانڈوں پر پہنچ جائیں گے۔
اگر آپ اس کے بجائے تمام رابطوں سے انکار کرتے ہیں اور دستی طور پر یہ بتاتے ہیں کہ آپ کن کن لوگوں کو رابطہ قائم کرنے کی اجازت دینا چاہتے ہیں تو آپ کو اپنی زنجیروں کی ڈیفالٹ پالیسی کو تبدیل کرنے کی ضرورت ہے۔ ایسا کرنا شاید صرف ان سرورز کے لئے کارآمد ہوگا جن میں حساس معلومات ہوں اور صرف ایک ہی IP پتے ان سے جڑے ہوں۔
iptables - پولیس ان پٹ ڈراپ
iptables - پولیس آؤٹ پٹ ڈراپ
iptables - پولیس فارورڈ ڈراپ
رابطے سے متعلق جوابات
آپ کی ڈیفالٹ چین پالیسیوں کی تشکیل کے ساتھ ، آپ iptables میں قواعد شامل کرنا شروع کرسکتے ہیں لہذا جب آپ کو کسی خاص IP پتے یا بندرگاہ سے یا اس سے رابطہ ملتا ہے تو اسے کیا کرنا پتا ہے۔ اس ہدایت نامہ میں ، ہم تین سب سے بنیادی اور عام طور پر استعمال شدہ "ردعمل" کو دیکھیں گے۔
قبول کریں - کنکشن کی اجازت دیں۔
ڈراپ - کنکشن ڈراپ کریں ، ایسا عمل کریں جیسے کبھی نہیں ہوا تھا یہ سب سے بہتر ہے اگر آپ نہیں چاہتے کہ ذریعہ اپنے سسٹم کے وجود کو محسوس کرے۔
مسترد کریں - کنکشن کی اجازت نہ دیں ، لیکن خرابی واپس بھیجیں۔ یہ بہتر ہے اگر آپ کسی خاص ذریعہ کو اپنے سسٹم سے مربوط نہیں کرنا چاہتے ہیں ، لیکن آپ چاہتے ہیں کہ ان کو معلوم ہو کہ آپ کے فائر وال نے انہیں مسدود کردیا ہے۔
ان تینوں قواعد کے مابین فرق ظاہر کرنے کا سب سے بہتر طریقہ یہ ہے کہ یہ ظاہر ہوتا ہے کہ جب پی سی ان ترتیبوں میں سے ہر ایک کے لئے تشکیل شدہ iptables کے ساتھ لینکس مشین کو پنگ کرنے کی کوشش کرتا ہے۔
کنکشن کی اجازت:
کنکشن چھوڑنا:
کنکشن کو مسترد کرنا:
مخصوص رابطوں کو اجازت دینا یا مسدود کرنا
اپنی پالیسی زنجیروں کی تشکیل کے ساتھ ، اب آپ مخصوص پتے ، پتے کی حدود ، اور بندرگاہوں کو اجازت دینے یا مسدود کرنے کے لip آئی پی ٹیبلس کو تشکیل دے سکتے ہیں۔ ان مثالوں میں ، ہم کنکشن متعین کریں گے ڈراپ
، لیکن آپ انہیں تبدیل کر سکتے ہیں ACCEPT
یا مسترد کریں
، آپ کی ضروریات اور کس طرح آپ نے اپنی پالیسی زنجیروں کو تشکیل دیا اس پر منحصر ہے۔
نوٹ: ان مثالوں میں ، ہم استعمال کرنے جارہے ہیں iptables -A
موجودہ سلسلہ میں قواعد شامل کرنے کے لئے۔ آئی پی ٹیبلز اپنی فہرست کے اوپری حصے سے شروع ہوتا ہے اور ہر قاعدے سے گزرتا ہے جب تک کہ اسے ملنے والا کوئی پتہ نہ لگے۔ اگر آپ کو کسی دوسرے کے اوپر قاعدہ داخل کرنے کی ضرورت ہو تو ، آپ استعمال کرسکتے ہیں iptables -I [سلسلہ] [نمبر]
اس فہرست میں ہونا چاہئے نمبر کی وضاحت کرنے کے لئے.
ایک ہی IP پتے سے رابطے
اس مثال سے پتہ چلتا ہے کہ کس طرح IP پتے 10.10.10.10 سے تمام کنکشن کو مسدود کرنا ہے۔
iptables -A INPUT -s 10.10.10.10 -j DROP
IP پتے کی ایک حد سے رابطے
یہ مثال دکھاتی ہے کہ 10.10.10.0/24 نیٹ ورک کی حد میں IP کے تمام IP پتوں کو کیسے مسدود کیا جائے۔ آپ IP پتے کی حد متعین کرنے کیلئے نیٹ ماسک یا معیاری سلیش اشارے استعمال کرسکتے ہیں۔
iptables -A INPUT -s 10.10.10.0/24 -j DROP
یا
iptables -A INPUT -s 10.10.10.0/255.255.255.0 -j DROP
ایک مخصوص بندرگاہ سے رابطے
اس مثال سے پتہ چلتا ہے کہ کس طرح 10.10.10.10 سے ایس ایس ایچ کنیکشن کو روکنا ہے۔
iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -j DROP
آپ کسی بھی پروٹوکول یا پورٹ نمبر کے ساتھ "ssh" کو تبدیل کرسکتے ہیں۔ -p ٹی سی پی
کوڈ کا ایک حصہ iptables کو بتاتا ہے کہ پروٹوکول کس طرح کا کنکشن استعمال کرتا ہے۔ اگر آپ کوئی پروٹوکول مسدود کررہے ہیں جو TCP کے بجائے UDP استعمال کرتا ہے -p udp
بجائے اس کی ضرورت ہوگی۔
اس مثال سے پتہ چلتا ہے کہ کس طرح کسی بھی IP پتے سے ایس ایس ایچ کنیکشن کو روکنا ہے۔
iptables -A INPUT -p tcp --dport ssh -j DROP
کنکشن اسٹیٹس
جیسا کہ ہم نے پہلے بتایا ہے ، بہت سارے پروٹوکول کو دو طرفہ مواصلات کی ضرورت ہوگی۔ مثال کے طور پر ، اگر آپ اپنے سسٹم میں ایس ایس ایچ کنیکشن کی اجازت دینا چاہتے ہیں تو ، ان پٹ اور آؤٹ پٹ چینز کو ان میں شامل کیے جانے والے قاعدے کی ضرورت ہوگی۔ لیکن ، اگر آپ صرف یہ چاہتے ہیں کہ آپ کے سسٹم میں ایس ایس ایچ آنے کی اجازت دی جائے؟ کیا آؤٹ پٹ چین میں کوئی قاعدہ شامل نہیں کرنا ایس ایس ایچ کی سبکدوش ہونے کی کوششوں کی اجازت دیتا ہے؟
یہی وہ جگہ ہے جہاں کنیکشن کی ریاستیں آتی ہیں ، جو آپ کو یہ صلاحیت دیتی ہیں کہ آپ کو دو طرفہ مواصلات کی اجازت دینے کی ضرورت ہوگی لیکن صرف ایک راستہ کنکشن قائم کرنے کی اجازت ہوگی۔ اس مثال پر ایک نظر ڈالیں ، جہاں 10.10.10.10 سے ایس ایس ایچ کنیکشن کی اجازت ہے ، لیکن ایس ایس ایچ کنیکشن سے 10.10.10.10 نہیں ہیں۔ تاہم ، اس نظام کو اجازت ہے کہ جب تک سیشن پہلے ہی قائم ہوچکا ہو ، اس وقت تک SSH کے بارے میں معلومات بھیجیں ، جو ان دونوں میزبانوں کے مابین ایس ایس ایچ مواصلات کو ممکن بناتا ہے۔
iptables -A INPUT -p tcp --dport ssh -s 10.10.10.10 -m state --state New، ESTABLISHED -j ACCEPT
آئی پی ٹیبلز -ا آؤٹ پٹ-پی ٹی سی پی - اسپورٹ 22 -d 10.10.10.10 -m ریاست - اسٹیٹ اسٹیبلٹ -ج ACCEPT
تبدیلیاں بچت
آپ نے اپنے iptables کے قواعد میں جو تبدیلیاں لائیں وہ اگلی بار جب آپ iptables سروس دوبارہ شروع ہوجائیں گی تب تک اس کو ختم کردیا جائے گا جب تک کہ آپ تبدیلیوں کو بچانے کے لئے کوئی حکم جاری نہ کریں۔ آپ کی تقسیم کے لحاظ سے یہ حکم مختلف ہوسکتا ہے:
اوبنٹو:
sudo / sbin / iptables-save
ریڈ ہیٹ / سینٹوس:
/ sbin / سروس iptables کو بچانے کے
یا
/etc/init.d/iptables محفوظ کریں
دیگر احکامات
اس وقت تشکیل شدہ iptables کے قواعد کی فہرست بنائیں:
iptables -L
شامل کرنا -v
آپشن آپ کو پیکٹ اور بائٹ کی معلومات ، اور شامل کرنے میں مدد دے گا -n
عددی طور پر ہر چیز کی فہرست بنائے گا۔ دوسرے الفاظ میں - میزبان نام ، پروٹوکول ، اور نیٹ ورک نمبر کے طور پر درج ہیں۔
اس وقت وضع کردہ تمام قواعد کو صاف کرنے کے لئے ، آپ فلش کمانڈ جاری کرسکتے ہیں۔
iptables -F