ديف أوبس

إعداد DNS على خوادم أوبنتو

تنصيب وإعداد خدمة اسم النطاق (DNS) على خواديم أوبنتو

تعد خدمة اسم النطاق (DNS) من أهم الخدمات في الشبكات الحديثة، حيث تُستخدم لتحويل أسماء النطاقات (مثل www.example.com) إلى عناوين IP التي يمكن للأجهزة فهمها والاتصال بها. وبالنظر إلى أهمية هذه الخدمة في الإنترنت والشبكات الخاصة، فإن إعداد DNS بشكل صحيح على الخواديم يعد من المهام الأساسية التي يجب أن يتقنها المسؤولون عن النظام. في هذا المقال، سنتناول كيفية تنصيب وإعداد خدمة DNS على خواديم أوبنتو من خلال شرح الخطوات اللازمة بالتفصيل، مع تسليط الضوء على أفضل الممارسات والملاحظات التي يجب مراعاتها أثناء عملية الإعداد.

نظرة عامة على خدمة DNS

DNS هو اختصار لـ “Domain Name System”، وهو النظام الذي يربط بين أسماء النطاقات التي يستخدمها البشر والعناوين الرقمية التي تتعامل معها أجهزة الكمبيوتر والشبكات. بمعنى آخر، يقوم DNS بترجمة الأسماء التي يستخدمها الأشخاص للوصول إلى المواقع والخوادم عبر الإنترنت إلى عناوين IP يمكن لأجهزة الكمبيوتر استخدامها لتوجيه البيانات. بدون DNS، سيتعين على المستخدمين تذكر عناوين IP للأجهزة أو المواقع التي يرغبون في الوصول إليها.

أهمية خدمة DNS في الشبكات

تتعدد وظائف DNS في الشبكات، ومن أهمها:

  1. تحويل أسماء النطاقات إلى عناوين IP: هذه هي الوظيفة الأساسية لـ DNS، حيث يترجم اسم النطاق إلى عنوان IP يمكن للأجهزة الاتصال به.

  2. المرونة في الوصول: تتيح DNS للمستخدمين الوصول إلى الموارد على الشبكة باستخدام أسماء سهلة التذكر بدلاً من الأرقام.

  3. إدارة توزيع البيانات: يمكن تكوين DNS لضمان توزيع البيانات بين الخوادم، مما يساعد في تحسين الأداء.

  4. التحكم في الوصول: من خلال إعدادات DNS، يمكن حظر الوصول إلى بعض المواقع أو الخدمات عبر الشبكة.

اختيار خوادم DNS في أوبنتو

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

  1. Bind9: هو الأكثر شيوعاً واستخداماً في بيئات أوبنتو. إنه يوفر مرونة عالية ويمكنه التعامل مع أنواع متعددة من سجلات DNS.

  2. dnsmasq: يعد حلاً أبسط وأخف من Bind9 ويستخدم عادة في البيئات الصغيرة أو في الشبكات المنزلية.

  3. Unbound: يعتبر خادماً حديثاً ويوفر مستوى عالياً من الأمان والكفاءة.

في هذا المقال، سنركز على إعداد خادم DNS باستخدام Bind9، لأنه الخيار الأكثر شيوعاً في بيئات الإنتاج.

تنصيب Bind9 على أوبنتو

الخطوة 1: تحديث النظام

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

bash
sudo apt update sudo apt upgrade

الخطوة 2: تنصيب Bind9

لتنصيب Bind9 على خادم أوبنتو، استخدم الأمر التالي:

bash
sudo apt install bind9 bind9utils bind9-doc

سيقوم هذا الأمر بتنصيب الخادم بالإضافة إلى الأدوات المساعدة والوثائق الخاصة به.

الخطوة 3: التحقق من تنصيب Bind9

بمجرد اكتمال التنصيب، يمكنك التحقق من حالة الخدمة باستخدام الأمر التالي:

bash
sudo systemctl status bind9

يجب أن يظهر لك أن الخدمة تعمل بشكل طبيعي.

إعداد خادم DNS باستخدام Bind9

الخطوة 4: إعداد ملف التكوين

ملف التكوين الرئيسي لخادم Bind9 هو named.conf. يمكن العثور عليه في المسار التالي:

bash
/etc/bind/named.conf

يحتوي هذا الملف على إعدادات خادم DNS الرئيسية، ويجب تعديل بعض الملفات الفرعية مثل named.conf.local و named.conf.options و named.conf.default-zones لتخصيص إعدادات DNS.

الخطوة 5: إعداد الملف named.conf.local

الملف named.conf.local يستخدم لتحديد النطاقات المحلية (zones) التي ستتم معالجتها بواسطة الخادم. على سبيل المثال، إذا كنت ترغب في إضافة إعداد لنطاق خاص بك، يمكنك تعديل هذا الملف كالتالي:

bash
sudo nano /etc/bind/named.conf.local

ثم قم بإضافة التكوين التالي لتحديد نطاقك:

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

الخطوة 6: إعداد ملف قاعدة البيانات للنطاق

يجب إنشاء ملف قاعدة البيانات للنطاق الذي تم تكوينه في الخطوة السابقة. هذا الملف يحتوي على معلومات حول النطاق مثل السجلات A و MX و CNAME.

ابدأ بإنشاء ملف قاعدة البيانات باستخدام الأمر التالي:

bash
sudo cp /etc/bind/db.local /etc/bind/db.example.com

ثم افتح الملف الجديد لتحريره:

bash
sudo nano /etc/bind/db.example.com

قم بتعديل السطور لتتناسب مع إعدادات النطاق الخاص بك. على سبيل المثال:

bash
$TTL 604800 @ IN SOA ns1.example.com. admin.example.com. ( 2023050901 ; Serial 604800 ; Refresh 86400 ; Retry 2419200 ; Expire 604800 ) ; Minimum TTL @ IN NS ns1.example.com. @ IN A 192.168.1.10 ns1 IN A 192.168.1.10

الخطوة 7: إعداد الأذونات

بمجرد إعداد ملف قاعدة البيانات، تأكد من أن جميع الملفات التي قمت بإنشائها أو تعديلها تحتوي على الأذونات الصحيحة.

bash
sudo chown bind:bind /etc/bind/db.example.com sudo chmod 644 /etc/bind/db.example.com

الخطوة 8: إعادة تشغيل الخدمة

بعد تعديل ملفات التكوين، يجب عليك إعادة تشغيل خدمة Bind9 لتطبيق التغييرات:

bash
sudo systemctl restart bind9

الخطوة 9: التحقق من إعدادات DNS

يمكنك التحقق من صحة إعدادات DNS باستخدام الأداة dig أو nslookup. على سبيل المثال، للتحقق من النطاق الذي قمت بتكوينه، يمكنك استخدام الأمر التالي:

bash
dig @localhost example.com

التكوينات الإضافية لخادم DNS

إعدادات DNS للأمان

أحد الأهداف المهمة في تكوين خوادم DNS هو تأمين الاتصال ضد الهجمات المحتملة مثل Cache Poisoning أو DNS Spoofing. لضمان أمان الخادم، يمكن تطبيق بعض السياسات مثل:

  1. تفعيل DNSSEC: يساعد DNSSEC في التحقق من صحة سجلات DNS.

  2. استخدام Jailing: يمكن جلب خدمة Bind9 داخل بيئة محكمة لتقليل المخاطر في حالة الهجمات.

  3. تحديث خوادم DNS بانتظام: تأكد من أن Bind9 محدث لمنع الثغرات الأمنية المعروفة.

تكوين الخادم ليكون خادمًا عكسيًا (Forwarder)

في بعض الحالات، قد تحتاج إلى تكوين خادم DNS ليكون خادمًا عكسيًا. يمكنك إعداد هذا عن طريق تحرير الملف named.conf.options، وإضافة الخوادم الخارجية التي ترغب في توجيه الاستعلامات إليها:

bash
sudo nano /etc/bind/named.conf.options

ثم أضف التالي في قسم forwarders:

bash
forwarders { 8.8.8.8; 8.8.4.4; };

خاتمة

إن إعداد خدمة DNS على خوادم أوبنتو باستخدام Bind9 يمكن أن يكون عملية معقدة إذا لم يتم الاهتمام بالتفاصيل الدقيقة. ومع ذلك، من خلال اتباع الخطوات الموضحة أعلاه، يمكن لأي مسؤول نظام إعداد خادم DNS بشكل صحيح وآمن. بالإضافة إلى ذلك، يعتبر DNS أحد العناصر الأساسية في بنية الشبكة الحديثة ويجب تأمينه وصيانته بشكل دوري لضمان استمرارية الخدمة وحمايتها من الهجمات المحتملة.