PDA

مشاهده نسخه کامل : ساختار Dns



hr6829
02-20-2007, 05:34 PM
ساختار DNS


--------------------------------------------------------------------------------



يه سرور DNS دو قسمت داره :

** برنامه DNS :

كه تقاضاي ترجمه نام از كامپيوترهاي ديگه رو قبول ميكنه و پس از پردازش به متقاضي جواب مناسبي ميده .

** بانك اطلاعاتي :

كه داده هاي لازم براي ترجمه را در خودش ذخيره ميكنه .

ما اطلاعاتموونو از اين ركورد بدست مياريم . پس بايد ساختار اوونو بشناسيم .

ساختار اين بانكها در DNS سرورهاي مختلف فرق ميكنه ولي ساختار كلي و عمل اوونها مثل همه . به اين بانك , بانك ركوردهاي منبع ( فايل RR ) هم ميگن . براي افزايش سرعت ترجمه بهتره كه اين فايل بصورت دائم داخل حافظه نهان ( هموون كش ) سرور DNS قرار بگيره . از اوونجا كه تضميني وجود نداره تا IP آدرسِ يه جايي بصورت دائمي يه آدرسِ به خصوصي باشه پس هر ركورد فايل RR يه زمان انقضايي بايد داشته باشه .

ساختار كلي يه ركورد RR به اين صورته :

1- Domain Name

2- Time to live

3- Class

4- Type

5- Value



اينها اطلاعات كلي هستند كه هر ركورد داخل فايل RR داره . ترتيب قرار گرفتن اوونا در سرورهاي مختلف هم متفاوته .

و حالا ببينيم هر كدووم از فيلدهاي RR چي هستن ؟

1- Domain Name :

همينطور كه از اسمش پيداست نام حوزه در اين فيلد نگهداري ميشه . مقدار اين فيلد يكتا نيست چرا كه ممكنه يه كامپيوتر بيش از يه IP آدرس داشته باشه .

2- Time to live :

زمان انقضاي فيلده كه قبلا در موردش توضيح دادم . معمولا در اين فيلد مقدار 86400 ثانيه ( 24 ساعت ) رو قرار ميدن .

3- Class :

براي مشخص كردن ماهيت نام حوزه هست كه در شبكه هاي مختلف فرق ميكنه . در اين فيلد ميتوونه مقادير IN (براي شبكه اينترنت) يا CHAOS و يا HESIOD مربوط به بقيه شبكه ها قرار ميگيره .

از اوونجا كه بحث ما در مورد شبكه اينترنته , در RR هايي كه باهاشوون كار داريم هميشه در فيلد كلاسشوون مقدار IN قرار داره .

4- Type :

نوع ركورد رو مشخص ميكنه .



مهمترين مقاديري كه Type ميتوونه بگيره عبارتند از :

A) SoA ( Start of Authority) :

اطلاعاتي در مورد ناحيه آدرس نمادين , يك شماره سريال , مدير تعريف اسامي و مهلت اعتبار رو مشخص ميكنه . اين ركورد آغاز تمام ركوردهايست كه در يك ناحيه خاص تعريف شدن . براي درك بهتر مطلب مثال زير رو در نظر بگيريد :

Yahoo.com IN SOA Groups.yahoo.com

Root.Yahoo.Groups.com ( 5 ; Serial No.

7200 ; Refresh time ( sec )

3600 ; Retry time ( sec )

151200 ; Expire time ( sec )

86400 ) ; Minimum of time to live ( sec )

توضيح اينكه جملات پس از ; توضيحاتن و جز RR حساب نميشن .

در اين ركورد SOA آغاز تمام ركوردهايست كه در ناحيه Yahoo.com تعريف شده اند . يعني كامپيوترهاي سرور و گيرنده هاي E-mail كه با آدرس ميل ياهو ارسال شده اند و ( ديگر سايتهاي مربوط به ياهو ) در اين حوزه تعريف ميشن .



B ) A ( IP Address) :

معادلي كه در فيلد اول اوومده رو تعيين ميكنه . توضيح اينكه اگر مقدار فيلدي خالي بود , مقدار فيلد سطر قبلي براي اين فيلد هم در نظر گرفته ميشه .



C ) MX ( Mail Exchange ) :

براي ارسال ميلها با آدرسهاي متفاوت به يك آدرس مورد نظر . مثلا فرض كنيد شما دو آدرس پست الكترونيك از دو سرور جدا از هم داشته باشيد و بخواهيد تمام نامه هاي شما به آدرس يكي از آنها ارسال شود بنابراين با استفاده از اين فيلد ميتونيد اين كار رو انجام بديد . مثلا

Hotmail.com 86400 IN MX yahoo.com

باعث ميشه تا تمام نامه هاي ارسالي به آدرس هات ميل شما وارد پست الكترونيكي ياهوي شما شود .



D ) NS ( Name Server ) :

مشخص كننده نام ماشيني است كه قادر است آدرسهاي يك حوزه را تحليل كند . براي درك اين موضوع يه مثال ميزنم :

Microsoft.com 86400 IN NS ns.microsoft.com

Ns.Microsoft.com 86400 IN A x.y.z.w

اين دو ركورد به اين معني اند كه تمام حوزه ها با نامهايي كه به Microsoft.com ختم ميشوند براي مسيريابي و تشخيص IP آدرسشوون بايد در كامپيوتري با IP آدرس x.y.z.w مورد بررسي قرار بگيرند .



E ) CNAME ( Canonical Name ) :

نامهاي مستعار , راحتتر و مشابه براي يك سايت را تعيين ميكنه . مثلا شما بجاي نوشتن www.altavista.com براي سايت آلتاويستا ميتوونيد براحتي فقط www.av.com را تايپ كنيد تا همان سايت آلتاويستا باز شه . اين كار توسط تعريف زير در RR صورت ميگيره :

www.av.com 86400 IN CNAME www.altavista.com





F ) PTR ( Pointer ) :

اين نوع ركورد هم مثل ركورد قبليست فقط بجاي نام حوزه مرجع , IP آدرس اوون قرار ميگيره :

www.av.com IN PTR x.y.z.w





G ) HINFO ( Host Information ) :

اين نوع ركوردها نوع سيستم عامل و كامپيوتر متناظر با اوون نام حوزه را مشخص ميكنه :

www.name.com 86400 IN HINFO SUN UNIX

يعني هاست متناظر با اين سايت داراي سيستم عامل يونيكسه و سخت افزار اوون سازگار با ميني كامپيوترهاي سان هستن .



H ) MINFO ( Mail Information) :

همان نوع قبليه فقط براي مصخص كردن سيستم عامل و نوع كامپيوتر Mail Server مورد نظر بكار ميره .

I ) TXT ( Text ) :

اين نوع ركورد ارزش عملياتي نداره و فقط مشخصاتي از قبيل صاحب شبكه و ... رو تعيين ميكنه .



اينها انواع ركوردهايي بود كه ميتوونه در RR قرار بگيره . حالا ببينيم اين اطلاعات رو از كجا بياريم و چطور ازشوون استفاده كنيم .



براي بدست آوردن بانك اطلاعاتي RR دو راه داريم :

1- استفاده از دستورات سيستم عامل : سيستم عامل هاي Linux و Windows و كلا سيستم هاي مبتني بر Unix و محصولات Microsoft از دستور nslookup استفاده ميكنن ( بقيه سيستم عاملها رو نميدوونم از كدوم دستور استفاده ميكنن , اگه شما ميدونيد لطفا به منم بگين تا ياد بگيرم و اگه خواستين با اسم خودتون تو همين وبلاگ بنويسم ) . البته دستورات Host و Ding هم براي سيستمهاي Unix بكار برده ميشن ولي از نظر من nslookup بهتره . ( هر كسي يه نظري داره ! )

براي استفاده از دستور nslookup , به پنجره Dos در ويندوز يا shell در لينوكس بريد . ( براي اين كار ميتوونيد از كليدهاي Ctrl+Alt+F2 يا هر كليد تابعي ديگه غير از F7 استفاده كنيد تا ترمينال مجازي( Virtual Terminal)براتون باز بشه . در اين پنجره ميتوونيد دستورات Unix رو اجرا كنيد . براي Dos هم كه فكر نكنم كسي مشكل داشته باشه . ) و دستور nslookup رو تايپ كنيد .

حالا شما در محيط nslookup هستيد . اكنون با استفاده از دستور server نام سايت مورد نظر رو تايپ كنيد تا اطلاعات اوون سايت براي استفاده شما آماده بشه . با دستور set type=any شما ميتونيد تمام اطلاعات مربوط به اوون سايت رو درخواست كنيد و با دستور ls -d ( در لينوكس ) ميتوونيد اطلاعات ارسالي از سرور DNS رو ببينيد . كلا بصورت زير عمل كنيد :

$ nslookup

server [نام يا اي پي سرور مورد نظر]

set type = any

ls -d [نام حوزه ]

در Dos هم هموون دستورات بالا قابل اجرا هستند ولي بجاي Ls -d بايد از Dir استفاده كنيد .

2- استفاده ازنرم افزارهايي كه براي همين كار نوشته شده : همونطوري كه گفتم سيستم عامل يونيكس دستورات Host و Ding رو داره كه مشابه nslookup عمل ميكنن . براي ويندوز هم ميتونيد از نرم افزار Ading براي اينكار استفاده كنيد . Ading رو ميتونيد از اينجا دانلود كنيد .

علاوه بر اين نرم افزارهاي همه منظوره اي هم وجود دارند كه تمام كارهايي رو كه براي شناسايي در اين 4 قسمت گفتم انجام ميدن . نرم افزارهايي مثل :

Sam Spade

iNet Tools

Net Scan Tools

Cyber Kit

علاوه بر تمام نرم افزارها و روشهاي بالا سايتهايي هم هستند كه اين كار رو بصورت رايگان براي شما انجام ميدن . البته مشخص نيست كه اين سايتها تا كي به كارشوون ادامه ميدن چرا كه برخي از اين سايتها به خاطر انجام فعاليتهاي غير مجاز بلوكه ميشن . سايتهايي مثل :

Network tools

Sam spade

Security space

Net tools

Dos help

DSL reports



اما چگونه از نشت اين گونه اطلاعات كه هم مفيدند و هم مضر جلوگيري كنيم ؟

اگه يه يوزر عادي هستيد كه هيچي !!! بايد از يكي خط بگيريد ?كه در مقابل هكرها از شما محافظت كنه !!!

اما اگه مسئول يه شبكه اينترنتي هستيد يا ميتوونيد براي حفاظت شبكه كاري انجام بدين بهتره كارهاي زير رو انجام بدين :

1- اينو مطمئن باشيد كه كمتر كاربري به سيستم عامل و نوع سخت افزار شما توجه داره ( البته هر چه سيستم عامل و سخت افزار شما بهتر باشه , به خاطر سرعت و كيفيت بهتر خط , مشتري بيشتري داريد ولي اوونا به نوع وسائل شما كاري ندارند بلكه بيشتر به امكانات شما توجه ميكنن ) پس چه دليلي داره كه در فيلدهاي متني مثل HINFO يا MINFO يا TXT نوع سخت افزارتوون رو قرار بدين يا نوع سيستم عامل مورد استفادتوون رو ؟ اين اطلاعات بيشتر به درد هكرها ميخوره تا اينكه براي شما تبليغ باشه . اصلا به نظر من بهتره خالي باشن .



2- از انتقال كامل اطلاعات مربوط به يك حوزه ( Zone Transfer ) جلوگيري كنيد . اينم به ياد داشته باشيد كه انتقال كامل اطلاعات مربوط به يك حوزه ( Zone Transfer ) معمولا براي انتقال ركوردها از DNS اوليه به DNS ثانويه براي بروز رساني DNS ثانويه استفاده ميشه و كاربرد ديگه اي براي كسي ( غير هكرها ) نداره .



3- در تكميل نكته دوم , ديوار آتش شبكه رو طوري تنظيم كنيد كه پورت TCP-53 رو مسدود كنه . اين پورت كار انتقال كلي ركوردها رو انجام ميده . چون براي Query هاي DNS از پورت UDP-53 استفاده مشيه بنابراين بستن اين پورت فقط از انتقال كل ركوردها جلوگيري ميكنه و بس .



4- بهتره براي جلوگيري نشت اطلاعات داخلي شبكه از دو تا DNS يكي خارجي و ديگري داخلي استفاده كنيد . با اينكار شما ميتوونيد توسط DNS خارجي حداقل اطلاعات رو در اختيار كاربران خارجي قرار بدين و DNS داخلي هم كل ركوردها و اطلاعات لازم رو براي كاربران داخل شبكه فراهم ميكنه .

Keyvan
02-21-2007, 09:20 AM
به نظرم بهتر بود این مطلب رو تو بخش آموزش و مقالات قرار می دادین


http://forum.takdownload.com/forumdisplay.php?f=46

با تشکر