اطلاعیه

بستن
No announcement yet.

نصب و راه اندازی Bind Server در Ubuntu و Debian

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
پاک کردن همه
پست های جدید

  • نصب و راه اندازی Bind Server در Ubuntu و Debian

    همه کاربران لینوکس با سرویس بایند آشنا هستند، از آنجایی که مقالات زیادی با ورژن های اخیر اوبونتو/دبیان در این زمینه منتشر شده اند و شما میتوانید تمامی آنها را مطالعه کنید. Bind یک سرویس DNS است که یک نام unique را به ip آدرس شما اختصاص میدهد که این نام در حقیقت domain name نامیده میشود، به طوریکه باعث میشود عملیات resolve کردن ip آدرس روی بستر اینترنت یا حتی روی یک شبکه local (شبکه LAN) آسان شود. یک شبکه میتواند تنها یک domain name مخصوص به خود داشته باشد. زمانیکه domain name به ip آدرسش resolve میشود، این عملیات با عنوان forward zone شناسایی میشود و هنگامیکه یک ip آدرس به نامش مراجعه میکند با عنوان revers zone شناخته میشود. تنها هدف اصلی DNS شاید آسان کردن درخواست های شبکه ای مان باشد، منظورمان این است که به خاطر سپردن یک نام که در حقیقت همه یک وب سایت با آن شناسایی میشود بسیار آسان است، به خاطر داشتن لیست بی نهایتی از اعداد (ip address ها) باعث آشفتگی بزرگی در ذهن انسان میشود و به خاطر سپرده نخواهد شد اما همیشه به خاطر اوردن نام بسیار آسان است و این دلیلی است بر اینکه ما به ip آدرس روی هر شبکه نام اختصاص میدهیم.


    همچنین توصیه میشود مطالعه کنید.

    معرفی انواع DNS Record (یا A - MX - PTR - SOA - SPF - NS - TXT - DKIM - CNAME)

    راه اندازی هاستینگ منطقه لینوکسی ها (فروش سرور مجازی و اختصاصی لینوکس)



    نحوه نصب DNS سرور روی Ubuntu Server و Debian

    پیشنیاز :
    • یک عدد domain name با نام : www.linuxzone.ir
    • یک عدد آدرس ip مانند : 192.168.12.250
    • فایل تنظیمات forward zone با نام : /etc/bind/db.linuxzone.ir
    • فایل تنظیمات reverse zone با نام : /etc/bind/db.192

    قبل از هر کاری یک Ubuntu Server یا Debian جدید دانلود و آنرا به صورت bootable روی یک دیوایس کپی و سپس نسخه Desktop/Server به انتخاب خود نصب کنید.

    سیستم را update کنید.
    کد PHP:
    # apt-get update 
    آدرس ip خود را چک کنید.
    کد PHP:
    # ip a 
    پکیج های پیشنیاز را نصب کنید.
    کد PHP:
    # apt-get install bind9 bind9utils 
    به دایرکتوری نصب رفته آنرا را مشاهده کنید.
    کد PHP:
    # cd /etc/bind && ls 
    دایرکتوری شبیه به زیر خواهد بود.
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: bind server-1.png مشاهده: 0 حجم: 37.5 کیلو بایت





    در ابتدا caching مربوط به name server را ایجاد میکنیم. فایل /etc/bind/named.conf.options را باز کنید، قسمت forwards را پیدا کنید و آدرس DNS مربوط به ISP خود را در آن قرار دهید.
    کد PHP:
    forwarders {
     
    8.8.8.8;
     }; 
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: set-isp-ip-address-bind-server-2.png مشاهده: 0 حجم: 56.5 کیلو بایت





    اکنون google.com را resolve میکنیم. شما میتوانید تفاوتی را که تغییر بالا ایجاد میکند در سرور مشاهده کنید و به مدت زمان کوئری در اولین تلاش توجه کنید.
    کد PHP:
    # dig google.com 
    خروجی باید شبیه به زیر باشد.
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: dig-google-3.png مشاهده: 0 حجم: 58.7 کیلو بایت





    بار دیگر دستور dig را تکرار میکنیم و تفاوت را در خروجی مشاهده میکنیم.
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: dig-google-4.png مشاهده: 0 حجم: 58.6 کیلو بایت





    زمان Qurey اینار 76 میباشد (البته من چون در محیط مجازی این کار را دارم انجام میدهم مقدار کش خیلی پایین نرفت ولی اگر شما از isp های خارجی یا داخلی خوب استفاده کنید مقدار کش تا عدد صفر هم کاهش میبابد). شما میتوانید مشاهده کنید که عملیات cashe در سرویس bind چقدر سریع DNS سرور را resolve میکند.

    اکنون سرور mster بایند را کانفیگ میکنیم. در ابتدا یکسری تنظیمات در فایل /etc/resolve.conf ایجاد کنید. فایل را باز کنید
    کد PHP:
    # vim /etc/resolv.conf 
    و در آن همانند زیر تایپ نمایید.
    کد PHP:
    search linuxzone.ir
    nameserver 192.168.12.250 
    domain name و ip address خود را با توجه به آنچه که در بالا به آن اشاره جایگزین نمایید.

    به دایرکتوری /etc/bind وارد شوید.
    کد PHP:
    # cd /etc/bind 
    فایل named.conf.local را باز کنید.
    کد PHP:
    # vim named.conf.local 
    فایل کانفیگ ما باید چیزی شبیه به زیر باشد.
    کد PHP:
    // Consider adding the 1918 zones here, if they are not used in your
    // organization
    //include "/etc/bind/zones.rfc1918";
    zone "linuxzone.ir" {
     
    type master;
     
    file "/etc/bind/db.linuxzone.ir";
    };
    zone "12.168.192.in-addr.arpa" {
     
    type master;
     
    file "/etc/bind/db.192";
    }; 
    اکنون نام zone ما linuxzone.ir میباشد که DNS Name ما نیز خواهد بود. از آنجایی که سرور ما master است ما تایپ سرور را با عنوان master تعریف میکنیم. فایل تنظیمات دامین ما db.linuxzone.ir خواهد بود. شبیه به آنچه در بالا انجام دادیم برای revers lookup ما باید فایل ip-addr.arpa برای ip آدرس مان تعریف کنیم، سه رقم اول ip آدرس را به صورت برعکس و قبل از .in-arddr.arpa. تایپ میکنیم. فایل مربوط به reverse zone فایل db.192 خواهد بود. مطمئن شوید که فایل های کانفیگ zone خود را در مکان درستی قرار دادید.


    تنظیمات Forward Zone

    فایل نمونه db.local را درون db.linuxzone.ir کپی کنید.
    کد PHP:
    # cp db.local db.rajneesh.conf 
    فایل db.linuxzone.ir را باز و ویرایش کنید.
    کد PHP:
    # vim /etc/bind/db.linuxzone.ir 
    فایل را کانفیگ کنید.
    کد PHP:
    ;
    BIND data file for local loopback interface
    ;
    $TTL    604800
    @    IN    SOA    www.linuxzone.iradmin.linuxzone.ir. (
                      
    2        Serial
                 604800        
    Refresh
                  86400        
    Retry
                2419200        
    Expire
                 604800 
    )    ; Negative Cache TTL
    ;
    @    
    IN    NS    www.linuxzone.ir.
    @    
    IN    A    192.168.12.250
    @    IN    AAAA    ::1
    www    IN    A    192.168.12.250 
    www.linuxzone.ir نام domain ی است که میخواهیم resolve شود، مطمئن شوید که بعد از تعریف هر domain name یک نقطه (dot) قرار دهید. admin.linuxzone.ir. در حقیقت email id برای این domain است. NS در حقیقت Name Server این دامین است. یک A رکورد برای هاست خود مانند www قرار دهید.

    در اینجا بررسی میکنیم که آیا تنظیمات به درستی کار میکنند یا خیر.
    کد PHP:
    # systemctl status bind9 
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: baind-server-status-5.png مشاهده: 0 حجم: 121.0 کیلو بایت





    در این مرحله همه چیز خوب به نظر میرسد. فایل را ذخیره و از آن خارج شوید، سپس سرویس بایند را restart کنید.
    کد PHP:
    # systemctl restart bind9 


    نحوه Resolve کردن DNS Name

    دستور dig را همانند زیر اجرا کنید.
    کد PHP:
    # dig @127.0.0.1 linuxzone.ir 
    برای دیدن سایز بزرگ روی عکس کلیک کنید  نام: dig-command-6.png مشاهده: 0 حجم: 78.6 کیلو بایت





    همانطور که از عکس بالا مشاهده میکنید در قسمت ANSWER به آدرس ip و دامنه ما اشاره میکند. در نتیجه به تنظیم reverse zone خواهیم پرداخت.

    فایل نمونه db.127 را درون db.192 کپی کنید و سپس آنرا ویرایش کنید.
    کد PHP:
    # cp db.127 db.192 
    فایل را ویرایش کنید.
    کد PHP:
    BIND reverse data file for local loopback interface
    ;
    $TTL 604800
    IN SOA www.rajneesh.comadmin.rajneesh.com. (
    Serial
    604800 
    Refresh
    86400 
    Retry
    2419200 
    Expire
    604800 
    ) ; Negative Cache TTL
    ;
    IN NS www.linuxzone.ir.
    250 IN PTR linuxzone.ir
    فایل اکثرا کپی از فایل forward zone میباشد، به جز PTR یا pointer record که ما در فایل reverse zone به آن اشاره میکنیم. عدد 250 آخرین رقم ip آدرس مان میباشد، فایل را ذخیره و از آن خارج میشویم.

    ابتدا status سرور بایند را بررسی کرده و در صورتی که error ی وجود نداشت آنرا restart کنید.
    کد PHP:
    # systemctl status bind9
    # systemctl restart bind9 
    ip آدرس dns سرور تان را nslookup کنید.
    کد PHP:
    #nslookup 192.168.12.250 
    نمونه خروجی :
    کد PHP:
    Server192.168.12.250
    Address
    192.168.12.250#53
    250.12.168.192.in-addr.arpa name linuxzone.ir
    همانطور که میبینید همه چیز به درستی کار میکند.
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 04-06-2019, 05:51 PM.
در حال انجام ...
X
کانال تلگرام منطقه لینوکسی ها