إعـــــــلان

تقليص
لا يوجد إعلان حتى الآن.

اعداد خادم Dns

تقليص
X
 
  • تصفية - فلترة
  • الوقت
  • عرض
إلغاء تحديد الكل
مشاركات جديدة

  • اعداد خادم Dns

    في هذا الدرس سأقوم بمحاولة لشرح موضوع اعداد خادم الDNS ، وللأسف لقد رأينا العديد من الأسئلة و الطلبات لشرح هذا الموضوع و لم يقم أحد بعمله ، ربما لطول الموضوع و تشعبه والاعدادات المتقدمة التي ربما ستظهر اثناء الشرح، لذلك سأقوم بمحاولة لعمل موضوع كافي قدر الامكان للاعدادات الأساسية واذا أردت عزيزي القارئ المزيد من الاعدادات المتقدمة عليك بالبحث و القراءة من مقالات أخرى
    طبعا كالعادة سأقوم بالشرح نسبة الى توزيعة ريدهات انتربرايز، وأي توزيعة أخرى انا غير ملزم بالشرح عليها

    - مقدمة :

    كما هو الحال للتحدث مع شخص آخر عبر الهاتف فأنه يلزمك معرفة رقم الشخص الذي تريد الاتصال به، وبالنسبة لأجهزة الكمبيوتر فأنه يلزمك بروتوكول معين و رقم الآي بي للجهاز الذي تريد الاتصال به. ولكن الناس بطبيعتهم يفضلون التعامل مع الأسماء عوضا عن الأرقام وعناوين الآي بي.
    خدمة ال Domain Name Service أو DNS كاختصار هي المسئولة عن تحويل اي اسم لهوست مثل linuxac.org الى آي بي . الفكرة العامة أن كل DNS server متصل بخادم آخر اعلى منه في المستوى حيث يقوم بتمرير الطلب اليه والخادم الآخر قد يحتاج الى تمرير الطلب الى خادم اعلى منه وهكذا... طبعا هناك 13 خادم رئيسي لخدمة الDNS منتشرة حول العالم وهي في المستوى الأعلى لجميع الخوادم في العالم. وهي تحوي قاعدة بيانات لكل الخوادم التي تقل مرتبة عنها في المستوى وكل خادم يقوم بتمرير الطلب لخادم آخر ليتم العمل اللازم.

    - البدء بالاعدادات :
    خدمة الDNS تقدم عن طريقة ال BIND وهي اختصار ل Berkley Internet Name Daemon ، ويلزمك تنزيل ال bind package للبدء بالاعدادات و لكن اسم الخدمة سيكون named حسب ما سنرى اثناء الشرح.

    يلزمك تنزيل مجموعة من الباكيجات عادة تكون هي التالية:
    bind, caching-nameserver, bind-utils

    لتنزيل الrpm الخاص بالbind من السي دي الخاص بالتوزيعة:
    كود:
    [[email protected] ~]# rpm -ihv PATH_to_CD/RedHat/RPMS/bind-9.2.4-2.i386.rpm
    Preparing...                ########################################### [100%]
       1:bind                   ########################################### [100%]
    [[email protected] ~]# rpm -ihv PATH_to_CD/RedHat/RPMS/caching-nameserver-7.3-3.noarch.rpm
    Preparing...                ########################################### [100%]
       1:caching-nameserver     ########################################### [100%]
    warning: /etc/named.conf saved as /etc/named.conf.rpmorig
    - ملف الاعدادات الرئيسية named.conf :
    ان ملف الاعدادات الرئيسية لخادم الDNS هو /etc/named.conf وهذه مقتطفات من محتواه:
    كود:
         //
          // named.conf for Red Hat caching-nameserver 
          //
          
         options {
                  directory "/var/named";    
                  dump-file "/var/named/data/cache_dump.db";
                  statistics-file "/var/named/data/named_stats.txt";
      ... 
          };
      ... 
        
          zone "." IN {                      
                  type hint;
                  file "named.ca";
          };
        
      ...
    لعلكم لاحظتم ان ال comment في ملف الnamed.conf على شكل التعليقات في لغة C++ وبالاضافة لل # التي نستخدمها في ملفات اللينكسو اليونكس. التعليقات قد تكون على شكل : // أو /* .... */ وتقوم بوضع تعليقك بين العلامتين بدلا عن النقاط.

    ملاحظة مهمة: يجب الانتباه للمسافات و علامات ; في جميع ملفات الDNS ، حيث ان المسافة البيضاء و علامة; يجب ان تكون مضبوطة بشكل صحيح.

    المنطقة المسماة options تقوم بتحديد بعض الخيارات العامة للDNS ، مثلا الجزء directory يقوم بتحديد المجلد الذي سيحتوي ملفات الzones التي تعتبر بمثابة قاعدة بيانات لأسماء الأجهزة او المواقع و ارقام الآي بي الخاصة بها والتي سنقوم بشرحها لاحقا طبعا.

    الجزء zone "." IN يحدد ملف اسمه named.ca وهو الملف المسئول عن تحديد عناوين الخوادم الثلاثة عشر الرئيسية في العالم والتي تعتبر المرجع الرئيسي لأي موقع او عنوان على الانترنت. نظرة سريعة على بعض محتويات الملف named.ca :
    كود:
     ; formerly NS.INTERNIC.NET
          ;
          .                        3600000  IN  NS    A.ROOT-SERVERS.NET.
          A.ROOT-SERVERS.NET.      3600000      A     198.41.0.4
          ;
          ; formerly NS1.ISI.EDU
          ;
          .                        3600000      NS    B.ROOT-SERVERS.NET.
          B.ROOT-SERVERS.NET.      3600000      A     192.228.79.201
      ... 
         ;
          ; operated by ICANN
          ;
          .                        3600000      NS    L.ROOT-SERVERS.NET.
          L.ROOT-SERVERS.NET.      3600000      A     198.32.64.12
          ;
          ; operated by WIDE
          ;
          .                        3600000      NS    M.ROOT-SERVERS.NET.
          M.ROOT-SERVERS.NET.      3600000      A     202.12.27.33
    طبعا حتى يعمل اي خادم دي ان اس بفعالية يجب ان يعرف كيف يستطيع الوصول لاعلى مستوى لخادم DNS وهو ما يسمى root level name server ويرمز له بـ " . "

    طبعا جميع المواقع في العالم تبدأ من ال RLNS مثلا :
    كود:
    www.rhn.redhat.com.
    لاحظ ان كل موقع يجب ان يبدأ من ال . ، لذلك يتم حذفها للتسهيل فقط ليس إلا، اي ان الفكرة اصبحت كالتالي: الخادم " . " قام بتمرير الطلب للخادم "com" وهو بدوره مرر الطلب الى خادم "redhat" وهكذا .

    -اعداد الخدمة للعمل بعد التشغيل:

    بعد ان قمنا بتنزيل الrpm اللازمة علينا ان نقوم بتفعيل الخدمة كالتالي:
    كود:
    [[email protected] ~]# service named start
    Starting named:                                            [  OK  ]
    [[email protected] ~]# chkconfig named on
    - خادم الDNS ليس لديه وصول للانترنت ؟

    في حالة عدم اتصال خادمك المحلي بالانترنت مباشرة ، أو انه خلف جدار ناري مثلا يقوم بمنع الDNS queries يمكنك تمرير الطلب الى خادم DNS آخر محلي لديه امكانية الوصول للانترنت ، وذلك باضافة forwarders الى جزء الخيارات options في ملف الاعدادات الرئيسية named.conf على النحو التالي:
    كود:
    options {
            directory "/var/named";
            dump-file "/var/named/data/cache_dump.db";
            statistics-file "/var/named/data/named_stats.txt";
            forwarders { 192.168.99.100; };
    };
    خادم الDNS برقم 192.168.99.100 لديه امكانية الوصول للانترنت وهو سيقوم بتمرير الطلب للخارج.

    ملاحظة : يمكنك اضافة خادم بديل وذلك باضافة رقم الآي بي بجانبه ، مثال:
    كود:
    forwarders { 192.168.99.100; 192.168.101.100;};
    - التحقق من عمل الخادم :

    يمكنك بسرعة ان تتحقق من فعالية الاعداد لسيرفرك بأنه يقوم بتمرير الطلب للخادم الذي حددناه بالforwarders بالشكل التالي:
    كود:
    [[email protected] ~]# host www.redhat.com 127.0.0.1
    Using domain server:
    Name: 127.0.0.1
    Address: 127.0.0.1#53
    Aliases:
    
    www.redhat.com has address 209.132.177.50
    اذا عمل كل شيء على ما يرام بامكانك وضع رقم الآي بي الخاص بجهازك أو عنوان الloopback في ملف الresolv.conf .

    - كيف أقوم بعمل domain خاص بي داخل الشبكة المحلية؟

    هناك نوعين من الخوادم التي يمكن عملها، الأول يسمى رئيسي master وهو السيرفر الذي يحتوي ملفات الzones وقاعدة البيانات التي تحتوي جميع اسماء و عناوين الآي بي للشبكة الخاصة بك. النوع الثاني هو بديل slave ووظيفته فقط كبديل للسيرفر الرئيسي بحالة عدم توفر الخدمة، وهو فقط يسحب قاعدة البيانات من السيرفر الmaster فقط .

    - كيف اعمل خادم DNS رئيسي ؟

    الخطوة الأولى تكون بتعريف منطقة خاصة بنا داخل ملف الnamed.conf ، في مثالنا سنقوم بعمل دوماين اسمه example.com بحيث تكون كل الأجهزة على شبكتنا المحلية على شكل :station1.example.com ، station5.example.com ، mail.example.com ... وهكذا

    سنقوم باضافة التالي لملف الnamed.conf :
    كود:
    zone "example.com" { 
    	type master; 
    	file "example.com.zone"; 
    };
    حددنا اسم الدوماين او الزوون و نوع الخادم "master" و اسم الملف الذي سيحتوي عناوين باقس الاجهزة التي تنتمي لهذا المجال وهو طبعا الملف example.com.zone والذي سنضعه في المجلد /var/named .

    -كيف اعمل ملف الzone اللازم ؟

    قم بعمل ملف اسمه example.com.zone داخل المجلد /var/named ، سنكتب فيه الأسطر التالية و سأقوم بشرح بعض الأمور عنها :
    كود:
    $TTL 86400  
    
    @ IN  SOA ns.example.com. root.server1.example.com. ( 
    				2007040100	; serial number
    				1H 		; refresh slave
    				5M 		; retry query
    				1W 		; expire
    				1M 		; negative TTL 
    )
    هذه الأسطر تقوم بتعريف اسم الخادم الرئيسي وهو ns.example.com وعنوان الايميل لمدير الخادم.
    الاسطر التالية لتحديد بعض الخيارات العامة ولا اعتقد انه يلزمك تغيير اي منها إلا ال serial number ، حيث ان خادم البديل slave يستخدمه للتأكد من الرئيسي. يمكنك وضع تاريخ اليوم ورقم من منزلتين بعده مثلا :2007040720 كرقم جديد.

    الآن سنقوم باضافة سطر لتحديد اسم الزوون واسماء خوادم الDNS التي ستسخدمها باقي الأجهزة:
    كود:
    ; owner			TTL	CL  type	RDATA
    example.com.			IN  NS		ns.example.com.
    				IN  NS		ns2.example.com.
    لاحظ ان السطر الأول بدأ ب ; لذلك سيعتبر comment .

    هنا قمنا بتحديد اسم للخادم الرئيسي وهو ns.example.com. والخادم البديل ns2.example.com. ، طبعا يمكنك وضع فقط اسم للخادم الرئيسي. ولاحظ استخدامنا للحرفين NS للدلالة على نوع السجل الذي اضفناه record .

    سنقوم الآن بتحديد عناوين واسماء الأجهزة على الشبكة المحلية لدينا باضافة السطور التالية:

    كود:
    ; owner                 TTL     CL  type        RDATA
    station1.example.com.               A           192.168.0.1
    station2                            A           192.168.0.2
    station3                            A           192.168.0.3
    server1                             A           192.168.0.254
    ns                                  A           192.168.0.254
    ns2                                 A           192.168.0.253
    كما هو واضح من المثال في الأعلى حددنا اسماء لبعض الأجهزة و عناوين الآي بي الخاصة بها ، لاحظ اننا استخدمنا الحرف A في حقل الCL للدلالة على Address او عنوان للآي بي.

    يمكننا استخدام اسم واحد لعدة عناوين آي بي لنفس الجهاز بالشكل التالي:
    كود:
    ; owner                 TTL     CL  type        RDATA
    www.example.com.                    A           192.168.0.1
                                        A           192.168.0.2
                                        A           192.168.0.3
    وسنتطرق الآن لكيفية عمل الاسماء المستعارة aliases ، حتى يكون لنفس الجهاز أكثر من اسم بنفس آلية أكثر من آي بي ، سنضيف التالي للملف :
    كود:
    ; owner			TTL	CL  type	RDATA 
    mail.example.com.	3600   	IN  CNAME	server1.example.com. 
    kerberos.example.com.	3600	IN  CNAME	server1.example.com.
    ldap				    CNAME	ldap.isp.net.
    هنا اصبح لنفس الجهاز أكثر من اسم ايضا . لاحظ استخدامنا للحقل CNAME للدلالة على Canonical Names اي الاسماء المستعارة.

    اخيرا سنضيف حقل خاص للبريد الالكتروني الداخلي ، حيث ان التعامل مع الايميل له آلية خاصة به في الDNS ، الطريقة هي باضافة السطر التالي كمثال لعنوان خادم البريد المحلي :
    كود:
    ; owner			TTL	CL  type	RDATA
    example.com.	                IN  MX  	10  server1.example.com.
    				IN  MX  	20  station1.example.com.
    في المثال السابق أي ايميل مرسل مثلا للمستخدم [email protected] سيتم تحويله لخادم البريد server1.example.com ليقوم بعمل اللازم. واذا كان خادم البريد مشغولا مثلا سيتم تخزين الbackup في الجهاز station1 . طبعا لاحظ استخدام الMX للدلالة على Mail Exchange ، والارقام 10 ، 20 لتحديد الأولويات للخادم الذي سيستقبل البريد لمنعه من الدوران على الشبكة mail loop .

    هكذا نكون انهينا اعداد ملف الزوون example.com.zone ويلزمنا اعادة تشغيل الخدمة :
    كود:
    service named restart
    هذه لمحة لملف الزوون الذي قمنا باعداده :

    كود:
    $TTL 86400  
    
    @ IN  SOA ns.example.com. root.server1.example.com. ( 
    				2003040100	; serial number
    				1H 		; refresh slave
    				5M 		; retry query
    				1W 		; expire
    				1M 		; negative TTL 
    )
    
    example.com.			IN  NS		ns.example.com. 
    
    example.com		IN  NS		ns2.example.com.
    
    station1                            A		192.168.0.1
    station2			    A		192.168.0.2
    station3			    A		192.168.0.3
    server1				    A		192.168.0.254
    ns				    A		192.168.0.254
    ns2				    A		192.168.0.253
    
    example.com.			    A		192.168.0.254
    				IN  MX  	10  server1.example.com.
    				IN  MX  	20  station1.example.com.
    
    mail.example.com.	3600   	IN  CNAME	server1.example.com. 
    kerberos.example.com.	3600	IN  CNAME	server1.example.com.
    ldap				    CNAME	ldap.isp.net.
    لا تنسى وضع النقطة بنهاية اسم اي جهاز او هوست كما هو واضح في الأعلى.

    سأقوم قريبا بإضافة موضوع يتعلق بالزوون الثانية اللازمة وهي الخاصة بال Reverse DNS Lookups
    V.I.P

    (وَاصْبِرْ فَإِنَّ اللَّهَ لَا يُضِيعُ أَجْرَ الْمُحْسِنِينَ)
    هود 115

    Linux is user-friendly, but it happens to be selective about its friends

    "احذر أن تكون مثل البقية تأخذ وﻻتعطي ، فلن يكون هناك مصادر تعليمية على الشبكة، ﻻأكثر الله من أمثالهم"


    مجتمع لينوكس العربي: وقف لله تعالى وصدقة جارية، فلا بارك الله في كل من يحاول الإساءة إليه في الظاهر أو في الخفاء...



  • #2
    اتشرف ان اكون اول من يرد على على هذا الموضوع
    اولا انا والله عاجز عن الشكر لما تقدمه لنا
    على فكره انا حفظت الموضوع علشان انا عاوز اقراه بتمعن
    شكرا وجزاك الله كل خير
    http://img197.imageshack.us/img197/9...66319499rr.gif

    lion_heart_300 previously

    تعليق


    • #3
      تكرم عيونك ياسامر ... تسلم على الموضوع ياغالى .
      Programming-Fr34ks[dot]NET
      Ma Weblog
      ابدأ بتعلم Python | Ruby
      كتاب البايثون متوافر الآن
      لا اتواجد بهذا المنتدى ... للإتصال

      تعليق


      • #4
        الشرف لي انا اخي قلب الأسد...

        الله يسلم عيونك سترايكر...
        V.I.P

        (وَاصْبِرْ فَإِنَّ اللَّهَ لَا يُضِيعُ أَجْرَ الْمُحْسِنِينَ)
        هود 115

        Linux is user-friendly, but it happens to be selective about its friends

        "احذر أن تكون مثل البقية تأخذ وﻻتعطي ، فلن يكون هناك مصادر تعليمية على الشبكة، ﻻأكثر الله من أمثالهم"


        مجتمع لينوكس العربي: وقف لله تعالى وصدقة جارية، فلا بارك الله في كل من يحاول الإساءة إليه في الظاهر أو في الخفاء...


        تعليق


        • #5
          صراحه موضوع جاء بوقته

          تعليق


          • #6
            السلام عليكم
            الف شكر اخي سامر على الموضوع بل المرجع الرائع حقا
            جعله الله في ميزان حسناتك.

            تعليق


            • #7
              جزاك الله كل خير أخ سامر
              موضوع احتاجه فعلاً
              شكرا لك
              echo 'echo "Leastwise-Try-It-Your-Self!"' >> ~/.bashrc

              تعليق


              • #8
                شكرا لك اخي fakir على مرورك الكريم ولا تحرمنا من دعواتك...
                هلا فيك اخي عزوز... جاء بوقته لعاد ها؟؟؟ :gotcha:
                مشكور لمرورك اخي قواسمه xshape واتمنى يكون الموضوع فادك تمام...
                V.I.P

                (وَاصْبِرْ فَإِنَّ اللَّهَ لَا يُضِيعُ أَجْرَ الْمُحْسِنِينَ)
                هود 115

                Linux is user-friendly, but it happens to be selective about its friends

                "احذر أن تكون مثل البقية تأخذ وﻻتعطي ، فلن يكون هناك مصادر تعليمية على الشبكة، ﻻأكثر الله من أمثالهم"


                مجتمع لينوكس العربي: وقف لله تعالى وصدقة جارية، فلا بارك الله في كل من يحاول الإساءة إليه في الظاهر أو في الخفاء...


                تعليق


                • #9
                  مشكور سامر موضوع تمام وكان ناقص فعلا القسم نايس ورك
                  SЄČURiTY TЄΛM
                  MyBlog

                  تعليق


                  • #10
                    موضوع جامد ياريس و تسلم أيدك بجد

                    طبعاً هنا تم إستخدام الbind و هو الأسهل في التعامل لكن طبعا djbdns هو الأفضل من ناحية الآمان..


                    صحيح لسة مصمم إن الsockets ملهاش علاقة بال file descriptors :D :D ?
                    My-LiFe My Blog
                    أنتظروا ثلاثة مفاجئات قريباً..
                    I'm GONE !...WITHOUT h3h3!

                    تعليق


                    • #11
                      المشاركة الأصلية بواسطة ĐΓ.ĐΣΓMλNN مشاهدة المشاركة
                      مشكور سامر موضوع تمام وكان ناقص فعلا القسم نايس ورك
                      ثانكس ألوت ماي فريند :thumpsup_green:

                      كييب ان تووتش
                      V.I.P

                      (وَاصْبِرْ فَإِنَّ اللَّهَ لَا يُضِيعُ أَجْرَ الْمُحْسِنِينَ)
                      هود 115

                      Linux is user-friendly, but it happens to be selective about its friends

                      "احذر أن تكون مثل البقية تأخذ وﻻتعطي ، فلن يكون هناك مصادر تعليمية على الشبكة، ﻻأكثر الله من أمثالهم"


                      مجتمع لينوكس العربي: وقف لله تعالى وصدقة جارية، فلا بارك الله في كل من يحاول الإساءة إليه في الظاهر أو في الخفاء...


                      تعليق


                      • #12
                        المشاركة الأصلية بواسطة sAFA7_eLNeT مشاهدة المشاركة
                        موضوع جامد ياريس و تسلم أيدك بجد

                        طبعاً هنا تم إستخدام الbind و هو الأسهل في التعامل لكن طبعا djbdns هو الأفضل من ناحية الآمان..


                        صحيح لسة مصمم إن الsockets ملهاش علاقة بال file descriptors :D :D ?
                        لوووووووووووووووووول
                        حبيب ألبي صوفي تشكر يا ريس و مشكور عالملاحظة الروعه

                        ولسسه مصر انو السوكت مالهاش علاقة بال file descripter و قريبا راح
                        أنزل موضوع يشرح ايه هو ال file descripter واشوف ساعتها ايه علاقته بالسوكتس
                        من خلالك إلا قوللي... متى حتنزل الانتخابات الرئاسية عشان راح انتخبك
                        V.I.P

                        (وَاصْبِرْ فَإِنَّ اللَّهَ لَا يُضِيعُ أَجْرَ الْمُحْسِنِينَ)
                        هود 115

                        Linux is user-friendly, but it happens to be selective about its friends

                        "احذر أن تكون مثل البقية تأخذ وﻻتعطي ، فلن يكون هناك مصادر تعليمية على الشبكة، ﻻأكثر الله من أمثالهم"


                        مجتمع لينوكس العربي: وقف لله تعالى وصدقة جارية، فلا بارك الله في كل من يحاول الإساءة إليه في الظاهر أو في الخفاء...


                        تعليق


                        • #13
                          لا قوللي... متى حتنزل الانتخابات الرئاسية عشان راح انتخبك
                          هو سفاح نازل الانتخابات وله ايه ؟؟؟؟
                          هتنزل ادامى هههههههههه
                          SЄČURiTY TЄΛM
                          MyBlog

                          تعليق


                          • #14
                            انا مو عارف ليه ما تثبت الموضوع انا سويت كل شي واشتغل زي ما شرحت وسويت

                            يعني كذا خلاص ما في شي ثاني اضيفه او ماادرى

                            وبعدين مشيت على الشرح على سوسي واخر حلاوه ميه ميه

                            سبحان الله بكل سهوله كذا اشتغل وانا جالس مدة افحط

                            على العموم ننتظر جديدك والف شكر وبارك الله لك وعافاك

                            تحياتي
                            http://linuxhave.googlepages.com/suse.jpg

                            يقول الحبيب صلى الله عليه وسلم : يكون بين يدي الساعة فتن كقطع الليل المظلم يصبح
                            الرجل مؤمنا ويمسي كافرا ويمسي مؤمنا ويصبح كافرا يبيع أقوام دينهم بعرض من الدنيا

                            تعليق


                            • #15
                              المشاركة الأصلية بواسطة GreyHunter مشاهدة المشاركة
                              سأقوم قريبا بإضافة موضوع يتعلق بالزوون الثانية اللازمة وهي الخاصة بال Reverse DNS Lookups
                              في الانتظار

                              تعليق

                              يعمل...
                              X