آموزش تنظيمات Tcp\ip در لينوكس (قسمت دوم)
براي تنظيم اترنت (مثلا” كارت شبكه) هم مي توانيد همان مراحل قبلي را مجدد تكرار كنيد. فقط توجه داشته باشيد كه نام رابط شما چيزي مانند eth0 يا eht 1 است و نشاني ip را نيز بايد به نشاني ip انتخابي خود تغيير دهيد. در اين جا زماني كه قصد اجراي دستور ifconfig را براي رابط شبكه داريد،نيازي به مشخص كردن ماسك شبكه نخواهيد داشت. زيرا سيستم عامل مي تواند مقدار پارامتر ماسك را به طور خودكار از نشاني ip داده شده به دست آورد. به عنوان مثال مي توانيد براي ثبت نشاني 147.123.20.1 از يكي از خطوط زير استفاده كنيد:
Ifconfig 147.123.20.1 ifconfig 147.123.20.1 nemask 255.25.255.0 براي بررسي صحت انجام عمليات مي توانيد بار ديگر از دستور ifconfig eht 0 استفاده كنيد. نشاني Broadcast بر اساس نشاني ip سيستم محلي تنظيم شده است. اين عمل از آن جهت توسط TCP\IP انجام مي گيرد كه تمام سيستم هاي موجود در شبكه به يك باره در دسترس قرار گيرند. مقدار و اندازه Maximum Transfer Unit هم به طور معمول بر اساس استانداردهاي شبكه هاي اترنت به مقدار حداكثر مجاز يعني 1500 تنظيم مي شود. همان طور كه مي دانيد گام بعدي اضافه كردن نشاني اترنت به جدول مسيريابي كرنل است . نشاني ip مورد نياز براي همراهي در دستور route همان نشاني شبكه بدون ذكر پارامتر محلي است . براي آنكه تمام شبكه محلي را در يك نوبت پوشش دهيم،از گزينه net در دستور route كمك مي گيريم. در نتيجه شكل استفاده از دستور route براي مثال ما به صورت زير خواهد بود:Route add –net 147.123.20.0 اين دستور تمامي سيستم هاي موجود در شبكه محلي را كه توسط نشاني 147.123.20.0 شناسايي مي شوند، را به جدول مسيريابي اضافه مي كند. در سيستم هاي موجود در شبكه را به صورت دستي به جدول مسيريابي اضافه كنيد. روش ديگر آن است كه از فايل \etc\networks فقط براي مشخص كردن بخش فهرست هايي از نام ها و نشاني هاي ip باشد،به عنوان مثال در صورتي كه در اين فايل ،ورودي مربوط به شبكه اي به نام foobamet داشته باشيم،مي توانيم تمام شبكه كمك دستور زير به جدول مسيريابي اضافه كنيم: Route add foobar-net استفاده از فايل etc\networks اين اشكال امنيتي را به همراه دارد كه به تمام سيستم هاي موجود در شبكه اجازه دسترسي و مجوزهاي يكساني داده مي شود. پس از آنكه مسيرها به جدول مسيريابي كرنل اضافه شدند،مي توانيد براي بررسي صحت تنظيمات،از دستور ping براي هر يك از سيستم هاي شبكه استفاده كنيد. براي اين كار يا بايد نام سيستم مقصد را داشته باشيد و يا آنكه نشاني ip آن را بدانيد. اين اطلاعات مي توانند از طريق فايل \etc\hosts و يا سرويسي مانند DNS به دست آيند. پس از آنكه مراحل فوق به درستي انجام گرديدند،سيستم لينوكس شما قادر خواهد بود كه به هر يك از سيستم هاي موجود در شبكه محلي توسط پروتكل TCP\IP متصل شود. در صورتي كه شبكه مورد نظر كوچك باشد،اين عمل كفايت مي كند و كار در همين جا خاتمه يافته مي شود . اما در شبكه هاي بزرگتر و يا شبكه هايي كه از پروتكل هاي ويژه اي استفاده مي كنند و يا در آن ها Gateway به كار رفته باشد،نياز به طي مراحل ديگري وجود خواهد داشت. در صورتي كه قصد اضافه كردن سيستم هاي ديگري را به شبكه داشته باشيد كه از TCP\IP استفاده مي كنند،مي توانيد همانند مراحل قبلي ،نام و نشاني IP هاي آن ها را به فايل \etc\hosts اضافه كنيد. سيستم هايي به نام godzilla و godzilla.tpci ،مجهز به سيستم عاملي (كه از TCP\IP پشتيباني مي كند)هستند. و قادرند به كمك teinet يا ftp به سيستم لينوكسي ما متصل شوند (توجه داشته باشيد كه كاربر چنين سيستم هايي فقط زماني قادر خواهد بود به سيستم شما login كند كه مجوزهاي مربوط را براي آنها تنظيم كرده باشيد.) در صورتي كه نام يا نشاني يك سيستم راه دور در فايل \etc\hosts ثبت شده باشد،شما قادر خواهيد بود كه توسط ابزارهايي مانند telnet يا ftp با آن سيستم ارتباط داشته باشيد.
Name service و Name resolver
پروتكل TCP\IP از ورودي هاي فايل \etc\hosts براي ترجمه اسامي به نشاني هاي IP استفاده مي كند. به عنوان مثال،زماني از نامي مانند darkstar را در آن بيابد. در صورتيكه چنين ورودي در اين فايل موجود نباشد، شما قادر به اتصال چنين سيستمي نخواهيد بود. اما تصور كنيد كه تعداد سيستم هاي موجود در شبكه زياد باشند و شما قصد اتصال به تعداد بيشتري از سيستم ها را داشته باشيد و در اين صورت تنظيم و اضافه كردن يكايك نام ها و نشاني هاي ip به جدول مسيريابي كاري خسته كننده و زمان برخواهد بود. سرويس BIND كه مخفف عبارت Beekeley internet Name Domain Service است براي حل اين مشكل ايجاد شده است. بعدها BIND در DNS يا Domain Name System نيز پياده سازي شد. در حال حاضر اكثر توزيع هاي لينوكس به BIND مجهز هستند و در بعضي از نسخه ها هم DNS از قبل پياده سازي شده است. BIND و DNS هر دو مقوله هاي پيچيده اي هستند كه بسياري از كاربران لينوكس را فراري مي دهند. در صورتي كه شبكه شما به يك DNS سرور متصل باشد و يا آنكه قصد استفاده ا زسرور DNS ISP را داشته باشيد،نيازي به اجراي BIND بر روي سيستم خود نخواهيد داشت. اما در عوض بايد سيستم خود را به گونه اي تنظيم كنيد كه قادر به استفاده از سرور DNS باشد. در چنين مواقعي،به جاي آن كه نام ها و نشاني هاي يكايك سيستم هاي متصل به شبكه را به فايل \etc\hosts اضافه كنيد،كلانيت DNS و يا مجموعه اي از روتين هاي كتابخانه اي در لينوكس،فراخواني مي شوند و با استفاده از سرور DNS نام هاي مورد نظر را به نشاني هاي مربوطه آن ها ترجمه يا Resolver مي كنند. Name Resolver توسط فايل \etc\resolv.conf تنظيم مي شود. به طور معمول اين فايل شامل راهنماي (directive ) جستجو و راهنماي Name server است. راهنماي جستجو به شكل زير به كار برده مي شود: Searchdomain 1 domain2 domainN در عبارت فوق هر يك از domain ها توسط فهرستي از پسوندهاي دامنه اي جايگزين مي شوندكه Name Resolver به اسامي ميزباني اضافه مي كند كه به صورت كامل مشخص نشده باشد.به عنوان مثال،راهنماي جستجوي زير توجه كنيد: Search xyz.com us.xyx.com europe.xyz.com در صورتي كه نامي مانند http://www.abc.com به كار گرفته شده باشد،مي گوييم كه اين نام به صورت كامل بيان شده است. در چنين وضعيتي ،از راهنماي جستجو استفاده نخواهد شد. اما اگر يك سرويس TCP\IP از نامي مانند WWW استفاده كند كه به شكل كامل نيست،در اين صورت راهنماي جستجو سعي خواهد كرد تا اين نام را به ترتيب به صورت اسامي مشابه با http://www.xyz.com و http://www.us.xyz.com و ... تعبير كند. سرورهاي DNS مورد استفاده Name Resolver توسط راهنماي nameserver مشخص مي شود: Nameserver ipaddress كه در آن پارامتر ipaddress نشاني ip سرور DNS است. به عنوان مثال در صورتي كه نخستين سرور DNS داراي نشاني IP برابر با 199.231.13.10 باشد، در اين صورت راهنماي DNS به شكل زير خواهد شد: Nameserver 100.231.13.10 در هر مورد مي توان حداكثر مي توان سه نشاني سرور DNS مشخص كرد كه هر يك داراي راهنماي nameserver خود هستند و در يك خط ثبت مي شوند. مطلب ديگري كه مي تواند توسط كاربر تنظيم شود،ترتيب مراجعه به DNS يا فايل \etc\hosts در زمان ترجمه نام است. بدين ترتيب معني كه كاربر مي تواند با كمك فايل \etc\nsswitch.conf انتخاب كند كه براي ترجمه نام،نخست به DNS مراجعه شود و سپس به فايل \etc\hosts و يا بر عكس . در هنگام استفاده از سيستم هاي بزرگ و يا در زماني كه قصد استفاده از تمام سرويس هاي اينترنتي در سيستم لينوكس خود داشته باشيد،لازم خواهد بود كه مشخصه هاي BIND به درستي تنظيم شده باشند،خوشبختانه چنين تنظيمي فقط كافي است كه يك بار انجام شود. براي اين كار به نرم افزار BIND نياز خواهد بود كه در اكثر توزيع هاي جديد لينوكس پيش بيني شده است.
دروازه يا
Gateway
زماني كه دو يا چند شبكه به يكديگر متصل مي شوند،از
Gateway استفاده مي شود.
Gateway ماشيني است كه به عنوان رابط بين چند شبكه عمل مي كند و
اطلاعات را بر اساس
نشاني هاي ip آن ها به
شبكه هاي مربوطه هدايت و مسيردهي مي كند. زماني كه
قرار باشد يك سيستم لينوكسي به عنوان
Gateway كار كند،بايد چند تغيير در تنظيمات
فايل هاي configuration شبكه
اعمال شود. براي آنكه بتوان از سرويس هاي يك سيستم
ديگر به عنوان Gateway استفاده
كرد،بايد به جدول مسيريابي،اطلاعاتي از Gateway قرار باشد
شبكه اي را به اينترنت متصل سازد. اين عمل توسط دستور زير قابل تنظيم است:
Route add default gw netgate در دستور بالا، natgate نام
سيستمي در شبكه است كه قرار است
به عنوان يك gateway به كار
گرفته شود. اين نام در دستور بالا بعد از كليد
واژه gw ذكر مي
شود. معني عبارت default در دستور
بالا به اين معني است كه تمام سيستم
هاي موجود در شبكه قادر به اتصال به اينترنت از طريق Gateway هستند.
در صورتي كه قصد ارتباط
دادن دو شبكه توسط يك Gateway در بين
باشد،بايد نام شبكه دوم در فايل etc\networks\ قيد شده
باشد و در اين صورت شكل نوشتاري دستور route به صورت
زير است:
Route add big-corp gw gate-serv در دستو رفوق از سيستمي به نام
gateserv براي دسترسي
به شبكه اي به نام bigcorp مي توان
استفاده كرد. نكته ديگر آنكه اگر به همين
جا اكتفا شود،كاربران فقط قادر خواهند بود كه اطلاعات را
به سيستم ها ي مقصد در شبكه دوم
ارسال كنند و قابليت دريافت اطلاعات از آن سيستم ها وجود نخواهد داشت.
براي حل اين مسئله لازم است كه در جداول مسيريابي سيستم
هاي شبكه دوم تنظيماتي انجام
شود. اگر قصد استفاده از سيستم محلي خود را به عنوان ارتباط دهنده دو شبكه داشته
باشيد،بايد سيستم خود را به دو كارت شبكه ( يا دو اتصال PPP و يا
SLIP ) مجهز كنيد.
فرض كنيد كه قصد استفاده از سيستم خود را براي اتصال دو شبكه به نام هاي
Small-net و big-net داشته
باشيم و شرايط سخت افزاري اين كار فراهم شده باشد. نخستين
گام آن است كه رابط هاي اترنت كارت هاي شبكه هر يك با نشاني هاي خودشان تنظيم
شوند. به عنوان مثال ممكن است سيستم شما در شبكه بزرگ تر داراي نشاني
ip برابر با 163.12.34.36 باشد و در شبكه كوچك تر نشاني
سيستم 147.123.12.1 باشد. در اين صورت
لازم خواهد بود كه دو ورودي در فايل \etc\hosts براي
ساده تر عمل ترجمه نام
(Name resolution ) ايجاد كنيم. مثلا” به اين ترتيب
163.12.34.36 merlin.big-net.com merlin-iface1
147.123.12.1 merlin.small-net.com merlin-iface2
در اين مثال فرض شده است كه سيستم شما در هر دو شبكه
داراي نام merlin است كه
كاملا” قانوني است در مورد فوق اسامي رابط ها نيز به جهت سهولت قيد شده اند.
پس از اين مرحله بايد از فرمان ifconfig براي
برقراري ارتباط بين رابط ها و اسامي
هاي به كار رفته در فايل \etc\hosts استفاده
كنيم: ifconfig eth 0 merlin-iface1 ifconfig
eth1merlin-iface2
و نهايتا” لازم است كه جدول مسيريابي را تغيير
دهيم. براي اين كار از دستورات زير به صورت مشخص شده بايد استفاده كنيم:
Route add big-net Route add small-net
زماني كه اين مراحل به درستي انجام
شوند، مي توانيد از سيستم خود به عنوان يك
Gateway براي برقراري ارتباط بين دو شبكه
استفاده كنيد.
استفاده از ابزارهاي گرافيكي براي تنظيمات رابط هاي شبكه
تا اينجا از دستوراتي استفاده كرديم كه تمام مراحل لازم
براي ايجاد و تنظيمات شبكه را
از ابتداي كار توصيف مي كردند. زماني كه لينوكسي راه اندازي مي شود، به طور معمول
نيازي به اجراي اسكريپت هايي نظير اسكريپت هاي فوق را نخواهيد داشت،علت اين موضوع آن
است كه چنين اسكريپت هايي به طور خودكار در زمان راه اندازي اجرا مي شوند.
اما اشكال كار در اينجا است كه اين اسكريپت ها ممكن است
از يك توزيع لينوكس به توزيع
ديگري كمي تفاوت داشته باشند،به عنوان مثال لينوكس هايي مانند
slackware كه از
اسكريپت هايي به سبك يونيكس BSD استفاده
مي كنند. با لينوكس هايي مانند RedHat يا
Fedora كه از اسكريپت هاي به سبك يونيكس VR4 پيروي مي
كنند،از نظر اسكريپت هاي Shell ، تفاوت
دارند. اما خوشبختانه،توزيع عاي لينوكس امروزي به همراه ابزارهاي گرافيكي
عرضه مي شوند كه كار تنظيمات شبكه را تا حد بسيار زياد تسهيل مي كنند. اين ابزارها
به طور خودكار تغييرات و ويرايش هاي شما را در اسكريپت هاي راه اندازي اعمال مي
كنند. يكي از نخستين ابزارهاي گرافيكي تنظيمات لينوكس ، netcfg نام دارد
. براي راه اندازي اين ابزار كافي است كه نام آن را از خط
فرمان اجرا كنيد.
Linuxconf
ابزار بسيار قوي ديگر،linuxconf
نام دارد كه مي توان از آن
براي تنظيمات شبكه و بسياري از اعمال مديريتي ديگر
استفاده كرد. از آنجايي كه از اين
ابزار براي مسير دهي و اعمال پيچيده ديگر استفاده مي شود. فراگيري آن و كسب مهارت در
آن كاملا” منطقي است. براي راه اندازي اين ابزار هم مي توانيد به سادگي نام آن
را از خط فرمان اجرا كنيد. البته برنامه هاي گرافيكي ميزكارهايي مانند
KDE يا GNOME هم بسته
به نسخه لينوكسي كه از آن استفاده مي كنيد،ممكن است پيش بيني
آيكوني براي فراخواني linuxconf را كرده
باشند.
شبکه های کامپیوتری امنیت برنامه نویسی سخت افزار نرم افزار طراحی وب