اتصال دامنه به سرور ubuntu

اتصاد دامنه به سرور ubuntu

dns چیست

کلمه dns سرواژه سازی شده از Domain Name Service است. از آن جایی که به خاطر سپردن ای پی آدرس ها سخت است این سرویس نام ها را به ای پی ترجمه میکند . به سرور ها و کامپیوتر هایی که DNS را اجرا میکنند name server میگویند . ابونتو به صورت پیشفرض BIND یا Berkley Internet Naming Daemon روی خودش نصب داره که معروف ترین نرم افزار برای resolve کردن توی لینوکس است.

آموزش نصب name server روی سرور ابونتو

با دسترسی روت وارد ترمینال بشوید  و دستور زیر را اجرا کنید

sudo apt install bind9

این بخش اجباری نیست! یکی از بهترین ابزار ها برای troubleshoot کردن این سرویس پکیج dnsutils است .ممکن است روی سرورتون هم به صورت پیشفرض نصب باشه از کامند زیر استفاده کنید.

sudo apt install dnsutils

کانفیگ کردن

روش های بسیار زیادی برای کانفیگ کردن bind وجود دارد . با توجه به کاری که میخواهید انجام دهید میتوانید برخی از معروف ترین آن ها cachting namserver , primary name server و secondary server هستند.

  • زمانی که BIND به صورت Caching Nameserver کانفیگ میشود بعد از ریزالو کردن یک کوئری اون را کش میکند تا برای درخواست بعدی با سرعت بیشتری به آن پاسخ بدهد.
  • زمانی که BIND به صورت Primary Server کانفیگ میشود اطلاعات موجود از zone که شما درون آن تعریف میکنید میخواند و فقط به آن ها پاسخ میدهد
  • زمانی که BIND به صورت Secondary Server کانفیگ میشود اطلاعات مربوط به zone از یک nameserver دیگر میگیرد (جهت اطلاع گفتم زیاد برای شما مهم نیست).

دورنمایی از ماجرا

مهم ترین کانفیگ های BIND میتوانید در فولدر /etc/bind پیدا کنید اما ما در این آموزش به محتوا این فولدر کاری نداریم فایل /etc/bind/named.conf فایل ای است که ما در این آموزش آن را ویرایش میکنیم

کانفیگ Primary Name Server

در اینجا ما از example.ir استفاده میکنم شما باید از اسم دامنه خودتون استفاده کنید.

ابتدا فایل /etc/bind/named.conf.local با ویرایش گر محبوبتون باز کنید من از nano استفاده میکنم .

nano /etc/bind/named.conf.local

سپس این خط به صورت زیر آخر فایل اضافه کنید

zone "example.ir" {
    type master;
    file "/etc/bind/db.example.ir";
};

سپس باید  فایل db.example.ir که در بالا به آن اشاره کردم بسازیم.

کامند زیر را بزنید و وارد ویرایشگر شوید

nano /etc/bind/db.example.ir

 

;
; BIND data file for example.ir
;
$TTL    604800
@       IN      SOA     example.ir. root.example.ir. (
                              2         ; Serial
                         604800         ; Refresh
                          86400         ; Retry
                        2419200         ; Expire
                         604800 )       ; Negative Cache TTL

@       IN      NS      ns.example.ir.
@       IN      A       192.168.1.10
@       IN      AAAA    ::1
ns      IN      A       192.168.1.10

سپس سرویس bind restart میکنیم با دستور زیر

sudo systemctl restart bind9

بعد نوبت کانفیگ کردن فایروال باید پورت 53 udp و 53 tcp باز کنیم

sudo ufw allow dns

یا اگه جواب نداد

sudo ufw allow 53/tcp
sudo ufw allow 53/udp

 

اگه نظر منو بپرسید میگم مهم ترین بخش این کانفیگ همین جاست توی هیچ جا هم درست حسابی توضیحش ندادن . من میخوام دونه دونه براتون بازش کنم.

اولش میاد میگه SOA که به معنی Start of Authority هست شما یه سری اطلاعت بعد از پرانتز اومده مثل سریال رفش اینا که تغییرش ندید .

دوم . در DNS زمانی که از @ استفاده میشه به معنی همان دامنه که بالا تر تعریفش کردید بهش روت دامین هم میگن پس شد چی ؟ @ = example.ir.

سوم . میاد این دامین example.ir به یه دی ان اس وصل که اسمش ns.example.ir توی خط  بعدی هم example.ir و ns به یه ای پی پوینت میکنه

حالا همه اینا رو که طی کنید به دی ان اس کاملا نا امن بدون کش و هیچی دارید سرعت reslove کردنش هم اصلا جالب نیست

 

روش پیشنهادی :

وقتی یه سرویس قدرمتند مثل کلادفلیر هست چرا باید دی ان اس کانفیگ کنید؟!

ابتدا وارد سایت کلافلیر بشوید اگر اکانت ندارید ابتدا ثبت نام کنید . سپس دامنه خودتون در قسمت add site وارد کنید.

 

dns هایی که بهتون میده مانند تصویر زیر set کنید .

 

حالا فرض بگیریم میخواید example.ir به ای پی  10.2.2.1 وصل کنید . اون دردسری که بالا داشتید الان ندارید با GUI خیلی راحت به صورت زیر اضافه میکنید.

 

حالا خیلی ها میگن دامنه ما IR نمیتونیم از cloudflare استفاده کنیم که این موضوع  کاملا اشتباه شما نمیتونید از سرویس ابری و ddos protection استفاده کنید dns برای همه بازه .

 

خب دامین پوینت کردید . حالا اگه یه وب سرور بالا بیارید روی سرور ابونتو میبینید که وقتی وارد دامنه میشید اونو نشون میده .