خادم أسماء النطاقات (DNS) هو مكون حيوي من بنية الإنترنت، وبناء خادم DNS الخاص يمكن أن يكون تحديًا. حسنًا، ليس مع BIND، حيث يمكنك إنشاء خادم DNS BIND الخاص بك في وقت قصير. يتمتع BIND بسمعة ممتازة بين المسؤولين لمرونته ودعم توافره العالي.
في هذه المقالة، ستتعلم كيفية تثبيت وتكوين خادم DNS BIND الآمن والتحقق من أن النطاقات الفرعية تُحل إلى العنوان IP الصحيح.
استمر في القراءة وأنشئ خادم DNS الخاص بك بسهولة تامة!
المتطلبات المسبقة
سيكون هذا البرنامج التعليمي عبارة عن دورة تدريبية عملية. لمتابعة الخطوات، تأكد من أن لديك ما يلي.
- A Linux server – This example uses the Ubuntu 20.04 server.
- A non-root user with root privileges or root/administrator user.
- A domain name pointed to the server IP address – This demo uses the atadomain.io domain and server IP address 172.16.1.10.
تثبيت حزم BIND
يوفر مستودع Ubuntu الافتراضي حزم BIND ولكنها لا تأتي مثبتة مع النظام الخاص بك. يمكنك تثبيت BIND كخادم DNS الرئيسي أو كـ “مخول فقط”. يوفر لك BIND ميزات قوية، مثل دعم التثبيت الرئيسي-العبد، ودعم DNSSEC، وقوائم التحكم في الوصول المدمجة (ACL).
للبدء في استخدام DNS BIND، ستحتاج أولاً إلى تثبيت حزم BIND على جهازك باستخدام مدير الحزم apt.
1. افتح الطرفية الخاصة بك وقم بتسجيل الدخول إلى خادمك.
2. فيما يلي، قم بتشغيل الأمر apt update
أدناه لتحديث وتحديث فهرس حزم المستودع. يضمن هذا الأمر أنك تقوم بتثبيت أحدث إصدارات الحزم.

3. بمجرد التحديث، قم بتشغيل الأمر apt install
أدناه لتثبيت حزم BIND على خادم Ubuntu.
توفير حزم bind9-utils و bind9-dnsutils أدوات سطر الأوامر الإضافية لـ BIND. تعتبر هذه الحزم مفيدة لاختبار وإدارة خادم BIND DNS.

4. في الختام، قم بتشغيل الأمر systemctl
أدناه للتحقق من خدمة BIND.
يأتي حزمة BIND مع خدمة named وتبدأ تلقائيًا وتتيح التمكين أثناء تثبيت حزمة BIND.
الآن يجب أن ترى خدمة BIND named ممكّنة بالحالة نشطة (تعمل). في هذه النقطة، ستعمل خدمة BIND تلقائيًا عند بدء تشغيل النظام.

تكوين خادم DNS BIND
لقد قمت الآن بتثبيت حزم BIND على خادم Ubuntu، لذا حان الوقت لإعداد تثبيت BIND على خادم Ubuntu الخاص بك. كيف؟ عن طريق تحرير تكوينات BIND وخدمة named
.
جميع التكوينات لـ BIND متاحة في الدليل /etc/bind/، والتكوينات لخدمة named
في /etc/default/named.
1. قم بتحرير تكوين /etc/default/named باستخدام محررك المفضل وأضف الخيار -4
على السطر OPTIONS
كما هو موضح أدناه. سيؤدي هذا الخيار إلى تشغيل خدمة named
على IPv4 فقط.
احفظ التغييرات التي قمت بها وأغلق الملف.

2. بعد ذلك، قم بتحرير ملف /etc/bind/named.conf.options واملأ التكوين التالي أسفل سطر directory "/var/cache/bind";
.
يعين هذا التكوين خدمة BIND للتشغيل على منفذ UDP الافتراضي 53 على localhost للخادم وعنوان IP العام (172.16.1.10). في الوقت نفسه، يسمح بالاستعلامات من أي مضيف إلى خادم DNS BIND باستخدام Cloudflare DNS 1.1.1.1 كجهة إعادة توجيه.
في الأسفل، قم بتعليق سطر listen-on-v6 { any; };
كما هو موضح أدناه لتعطيل خدمة named
من التشغيل على IPv6.

3. أخيرًا، قم بتشغيل الأمر التالي للتحقق من تكوين BIND.
إذا لم يكن هناك مخرجات، فإن تكوينات BIND صحيحة بدون أي خطأ.

إعداد مناطق DNS
في هذه المرحلة، قمت بتكوين التكوين الأساسي لخادم DNS BIND. أنت الآن جاهز لإنشاء خادم DNS بنطاقك وإضافة النطاقات الفرعية الأخرى لتطبيقاتك. ستحتاج إلى تعريف وإنشاء تكوين جديد لمناطق DNS للقيام بذلك.
في هذا الدليل، ستقوم بإنشاء خادم اسم جديد (ns1.atadomain.io) والنطاقات الفرعية (www.atadomain.io، mail.atadomain.io، vault.atadomain.io).
1. قم بتحرير ملف /etc/bind/named.conf.local باستخدام المحرر المفضل لديك وأضف التكوين التالي.
هذا التكوين يعرف منطقة الإرسال (/etc/bind/zones/forward.atadomain.io)، ومنطقة العكس (/etc/bind/zones/reverse.atadomain.io) لاسم نطاق atadomain.io.
احفظ التغييرات وأغلق الملف.

2. بعد ذلك، قم بتشغيل الأمر أدناه لإنشاء دليل جديد (/etc/bind/zones
) لتكوينات مناطق DNS النصية.
3. قم بتشغيل كل أمر أدناه لنسخ تكوينات مناطق الإرسال والعكس الافتراضية إلى دليل /etc/bind/zones
.

4. الآن، قم بتحرير تكوين منطقة الإرسال (/etc/bind/zones/forward.atadomain.io) باستخدام المحرر المفضل لديك وأدخل التكوين أدناه.
تكوين المنطقة الأمامية هو المكان الذي تعرّف فيه اسم النطاق الخاص بك وعنوان IP للخادم. سيقوم هذا التكوين بترجمة اسم النطاق إلى العنوان IP الصحيح للخادم.
التكوين أدناه ينشئ خادم الأسماء التالي والنطاقات الفرعية:
ns1.atadomain.io
– الخادم الرئيسي للأسماء الخاص بنطاقك بعنوان IP172.16.1.10
.
- سجل MX لنطاق
atadomain.io
الذي يتم التعامل معه بواسطةmail.atadomain.io
. يتم استخدام سجل MX لخادم البريد.
- النطاقات الفرعية للتطبيقات:
www.atadomain.io
،mail.atadomain.io
، وvault.atadomain.io
.
احفظ التغييرات وأغلق الملف.

5. مثل المنطقة الأمامية، عدّل ملف تكوين المنطقة العكسية (/etc/bind/zones/reverse.atadomain.io) واملأ التكوين التالي.
تقوم المنطقة العكسية بترجمة عنوان IP للخادم إلى اسم النطاق. المنطقة العكسية أو سجل PTR ضرورية لخدمات مثل خادم البريد، والتي تؤثر على سمعة خادم البريد.
يستخدم سجل PTR الكتلة الأخيرة من عنوان IP، مثل سجل PTR بالرقم 10 لعنوان IP للخادم 172.16.1.10.
هذا التكوين ينشئ المنطقة العكسية أو سجل PTR للنطاقات التالية:
- خادم الأسماء
ns1.atadomain.io
مع المنطقة العكسية أو سجل PTR172.16.1.10
.
- سجل PTR للنطاق
mail.atadomain.io
إلى عنوان IP للخادم172.16.1.20
.
قم بحفظ التغييرات وإغلاق الملف.

6. الآن، قم بتشغيل الأوامر التالية لفحص والتحقق من إعدادات BIND.
عندما يكون التكوين صحيحًا، سترى إخراجًا مماثلًا للمثال التالي.

7. في الختام، قم بتشغيل الأمر التالي باستخدام الأمر systemctl
لإعادة تشغيل والتحقق من خدمة named
. بهذه الطريقة، يتم تطبيق التغييرات الجديدة على خدمة named
.
أدناه، يمكنك رؤية حالة خدمة named كمفعلة (جارية).

فتح منفذ DNS باستخدام جدار الحماية UFW
في هذه المرحلة، لقد أكملت تثبيت خادم BIND DNS. ولكن لا تزال عليك تأمين خادم DNS الخاص بك. ستقوم بإعداد جدار الحماية UFW وفتح منفذ DNS لأي استعلامات إلى الخادم. بهذه الطريقة، يمكن للعملاء إجراء استعلام إلى خادم BIND DNS.
من أجل الأمان، يُفضل تشغيل وتمكين جدار الحماية UFW على خادم Ubuntu الخاص بك.
1. قم بتشغيل الأمر ufw
أدناه لفحص التطبيقات المتاحة على جدار الحماية UFW.
يجب عليك رؤية Bind9 في قائمة التطبيقات على تطبيق UFW أدناه.

2. الآن قم بتشغيل الأمر أدناه لـ السماح
لـ Bind9
بجدار الحماية UFW.

3. في النهاية، قم بتشغيل الأمر التالي للتحقق من القواعد الممكّنة على جدار الحماية UFW.
يجب عليك رؤية تطبيق Bind9 في القائمة كما هو موضح في اللقطة أدناه.

التحقق من تثبيت خادم DNS BIND
لقد أكملت الآن تثبيت BIND DNS وتكوين جدار الحماية UFW. ولكن كيف يمكنك التحقق من تثبيت خادم DNS الخاص بك؟ سيقوم الأمر dig
بذلك.
Dig هو أداة سطر الأوامر لحل مشاكل تثبيت خادم DNS. يقوم dig
بإجراء بحث DNS لاسم النطاق المعطى وعرض إجابات مفصلة للهدف بالاسم نطاق. على نظام Ubuntu، dig
هو جزء من حزمة bind9-dnsutil
.
للتحقق من تثبيت خادم DNS BIND الخاص بك:
1. قم بتشغيل كل أمر dig
أدناه للتحقق من النطاقات الفرعية www.atadomain.io
، mail.atadomain.io
، و vault.atadomain.io
.
إذا كانت عملية تثبيت خادم DNS الخاص بك ناجحة، سيتم حل كل فرع فرعي إلى العنوان IP الصحيح بناءً على تكوين forward.atadomain.io.
أدناه هو إخراج الفرع الفرعي www.atadomain.io الذي تم حله إلى عنوان IP للخادم 172.16.1.10.

وأدناه هو الفرع الفرعي mail.atadomain.io الذي تم حله إلى عنوان IP للخادم 172.16.1.20.

وأدناه هو الفرع الفرعي vault.atadomain.io الذي تم حله إلى عنوان IP للخادم 172.16.1.50.

2. بعد ذلك، قم بتشغيل الأمر dig
أدناه للتحقق من سجل MX لنطاق atadomain.io.
يجب أن ترى أن لديها سجل MX mail.atadomain.io.

3. أخيرًا، قم بتشغيل الأوامر التالية للتحقق من سجل PTR أو منطقة الانعكاس لعناوين IP للخادم 172.16.1.10 و 172.16.1.20.
إذا كانت عملية التثبيت الخاصة بـ BIND ناجحة، سيتم حل كل عنوان IP إلى اسم النطاق المحدد في تكوين reverse.atadomain.io.
يمكنك أن ترى أدناه، تم حل عنوان IP للخادم 172.16.1.10 إلى اسم النطاق ns1.atadomain.io.

كما ترى أدناه، تم حل عنوان IP للخادم 172.16.1.20 إلى اسم النطاق mail.atadomain.io.

الختام
في جميع أنحاء هذا البرنامج التعليمي، تعلمت كيفية إنشاء وإعداد خادم BIND DNS آمن على خادم Ubuntu الخاص بك. كما قمت بإنشاء منطقة إرشاد ومنطقة عكسية لإضافة نطاقك وقمت بالتحقق من خوادم DNS عبر تشغيل أوامر dig
.
الآن، كيف يمكنك تنفيذ خادم BIND DNS في بيئتك؟ ربما تنفيذ BIND كـ خادم مخول؟ أو إعداد توفر عالي باستخدام تثبيت BIND كـ سيد-عبد؟