MENU

كيفية التحقق من خوادم DNS وإعدادها على Linux: من الأساسيات إلى تدابير الأمان

التحقق بدقة من خوادم DNS وتكوينها على نظام Linux أمر بالغ الأهمية للحفاظ على استقرار وكفاءة شبكتك. يوفر هذا المقال دليلاً شاملاً لكل من المبتدئين والمستخدمين المتقدمين حول كيفية التحقق من خوادم DNS وإعدادها على Linux. بدءًا بالمفاهيم الأساسية، يغطي استخدام أدوات سطر الأوامر المحددة، وتحرير ملفات التكوين، واستكشاف الأخطاء وإصلاحها، ويشمل المعرفة العملية بشكل شامل. نتيجة لذلك، سيصبح نظام Linux الخاص بك أكثر كفاءة في الوصول إلى الموارد على الإنترنت.

الفهرس

ما هو DNS: شرح المفهوم الأساسي

نظام أسماء النطاقات (DNS) هو نظام يحول أسماء نطاقات الإنترنت إلى عناوين IP والعكس. يلعب دورًا حاسمًا في جعل بحث الإنترنت والوصول إلى المواقع الإلكترونية ممكنًا من خلال ترجمة أسماء النطاقات السهلة التذكر (مثل www.example.com) إلى عناوين IP الرقمية (مثل 192.0.2.1) التي يمكن للكمبيوترات فهمها. يسهل هذا العملية، المعروفة بـ “حل الأسماء”، استرجاع المعلومات على الإنترنت.

يتمتع نظام DNS ببنية تسلسلية مع “خوادم DNS الجذرية” في القمة، والتي تدير الجزء الأخير من أسماء النطاقات (مثل .com، .org). تتبعها “خوادم النطاقات العليا (TLD)”، ثم “خوادم DNS الموثوقة”، وأخيرًا، “خوادم DNS المحلية” التي تستجيب لاستفسارات المستخدمين في هذا الإعداد المنظم.

عندما يدخل المستخدم اسم نطاق في متصفح ويب، يبحث خادم DNS المحلي عن العنوان IP المقابل. إذا لم يكن لدى خادم DNS المحلي المعلومات، يتم تمرير الطلب إلى خوادم DNS ذات مستويات أعلى حتى يتم استرجاع المعلومات اللازمة. تتم هذه العملية عادةً في غضون مللي ثوانٍ، مما يتيح للمستخدم الوصول إلى صفحة الويب.

نظام DNS ضروري لبنية الإنترنت، وتشغيله الفعال له تأثير كبير على أداء وإمكانية الوصول إلى الويب. لذلك، تكوين وإدارة خوادم DNS على أنظمة Linux بشكل صحيح هي مهارة حاسمة لمدراء النظام.

كيفية التحقق من خوادم DNS: باستخدام أدوات سطر الأوامر

هناك عدة طرق للتحقق من إعدادات خادم DNS على أنظمة Linux، ولكن الطريقة الأكثر مباشرة وشيوعًا هي استخدام أدوات سطر الأوامر. هنا، نقدم أداتين مستخدمتين على نطاق واسع: الأمر cat والأمر nmcli.

التحقق من /etc/resolv.conf باستخدام الأمر `cat`

الطريقة الأساسية هي عرض ملف /etc/resolv.conf. يحتوي هذا الملف على عناوين خوادم DNS التي يستخدمها النظام لحل DNS. يمكنك التحقق من محتواه بتنفيذ الأمر التالي:

cat /etc/resolv.conf

قد يبدو الإخراج مثل هذا:

# Generated by NetworkManager
search example.com
nameserver 192.168.1.1
nameserver 8.8.8.8

في هذا المثال، تشير الأسطر التي تبدأ بـ nameserver إلى عناوين IP لخوادم DNS، مع تعيين 192.168.1.1 وعنوان DNS العام لجوجل 8.8.8.8.

التحقق من خوادم DNS باستخدام الأمر `nmcli`

في الأنظمة التي تستخدم NetworkManager، يمكنك استخدام الأمر nmcli للتحقق من إعدادات DNS للاتصال الشبكي الحالي. يسترجع الأمر التالي معلومات خادم DNS:

nmcli device show | grep IP4.DNS

يستخرج هذا الأمر ويعرض إعدادات خادم DNS (IPv4) من معلومات جهاز الشبكة الحالي. قد يبدو الإخراج مثل هذا:

IP4.DNS[1]:                             192.168.1.1
IP4.DNS[2]:                             8.8.8.8

تتيح لك هذه الطرق التحقق بسهولة من معلومات خادم DNS المعينة على نظام Linux الخاص بك، والتي يمكن أن تكون مفيدة لتشخيص مشاكل الاتصال بالشبكة أو النظر في تغييرات على خادم DNS محدد.

كيفية إعداد خوادم DNS: تحرير /etc/resolv.conf

إحدى الطرق الأساسية لإعداد خوادم DNS على نظام Linux هي بتحرير ملف /etc/resolv.conf مباشرة. يحتفظ هذا الملف بقائمة خوادم DNS التي يشير إليها النظام لحل DNS. هنا، نشرح كيفية تحرير هذا الملف بأمان.

تحرير ملف /etc/resolv.conf

  1. أولاً، قم بعمل نسخة احتياطية من الإعدادات الحالية. من المهم أن تتمكن من استعادة الملف الأصلي في حالة حدوث أي مشاكل. استخدم الأمر التالي لإنشاء نسخة احتياطية:
sudo cp /etc/resolv.conf /etc/resolv.conf.backup
  1. بعد ذلك، استخدم محرر نصوص لتحرير ملف /etc/resolv.conf. هنا نستخدم محرر nano، ولكن يمكنك استخدام محررك المفضل مثل vi أو emacs:
sudo nano /etc/resolv.conf
  1. بمجرد فتح الملف، أضف أو عدل الأسطر التي تبدأ بـ nameserver لتحديد عناوين خوادم DNS. على سبيل المثال، لاستخدام عناوين DNS العامة لجوجل، يجب كتابة:
nameserver 8.8.8.8
nameserver 8.8.4.4
  1. بعد إجراء التغييرات، احفظ الملف واخرج من المحرر. إذا كنت تستخدم nano، اضغط على Ctrl + O للحفظ و Ctrl + X للخروج.

تفعيل الإعدادات الجديدة

بعد تحرير ملف /etc/resolv.conf، عادةً ما تحتاج إلى إعادة تشغيل خدمة الشبكة لتطبيق التغييرات. يمكن القيام بذلك بالأمر التالي:

sudo systemctl restart network.service

أو، إذا كنت تستخدم NetworkManager، يمكنك إعادة تشغيل الاتصال بالشبكة بهذا الأمر:

sudo systemctl restart NetworkManager

يطبق هذا الإعدادات الجديدة لـ DNS على نظامك. للتأكد من أن الإعدادات تعمل بشكل صحيح، يُنصح بالاختبار عن طريق الوصول إلى المواقع الإلكترونية أو استخدام أوامر مثل ping لحل أسماء النطاقات.

تكوين خادم DNS يدويًا فعال لضبط استراتيجيات حل DNS وفقًا لمتطلبات النظام أو الشبكة. ومع ذلك، قد لا تكون هذه الطريقة مناسبة للحلول طويلة الأمد، حيث يمكن الكتابة فوق ملف /etc/resolv.conf تلقائيًا بواسطة عمليات أخرى. لذلك، ضع في اعتبارك استخدام أدوات مثل resolvconf، systemd-resolved، أو NetworkManager لإدارة إعدادات DNS.

التحقق من إعدادات DNS وتغييرها باستخدام أدوات سطر الأوامر

توفر Linux عدة طرق للتحقق من إعدادات DNS وتغييرها باستخدام سطر الأوامر، دون الاعتماد على أدوات واجهة المستخدم الرسومية. تكون هذه الطرق مفيدة بشكل خاص لبيئات الخادم أو إدارة الأنظمة عن بُعد. هنا، نشرح طرقًا باستخدام أوامر systemd-resolve و nmcli.

التحقق من إعدادات DNS باستخدام الأمر `systemd-resolve`

في الأنظمة التي تستخدم systemd، يمكن استخدام الأمر systemd-resolve للتحقق من إعدادات DNS الحالية. يتعلق هذا الأمر بخدمة systemd-resolved ويوفر تكوين وإحصائيات حل الأسماء.

للتحقق من إعدادات DNS، نفذ الأمر التالي:

systemd-resolve --status

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

تغيير إعدادات DNS باستخدام الأمر `nmcli`

في الأنظمة التي تستخدم NetworkManager، يمكن استخدام الأمر nmcli لتغيير إعدادات DNS. nmcli هو أداة سطر الأوامر لإعداد وإدارة اتصالات الشبكة.

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

nmcli connection modify <اسم الاتصال> ipv4.dns "8.8.8.8 8.8.4.4"
nmcli connection modify <اسم الاتصال> ipv4.ignore-auto-dns yes
nmcli connection up <اسم الاتصال>

في هذا الأمر، يتم تعيين خوادم DNS لجوجل (8.8.8.8 و 8.8.4.4) للاتصال المسمى <اسم الاتصال>. يُستخدم الخيار ipv4.ignore-auto-dns yes لتجاهل الإعدادات التلقائية لـ DNS واستخدام DNS المحدد يدويًا بدلاً من ذلك. أخيرًا، يُستخدم الأمر nmcli connection up لإعادة تشغيل الاتصال وتطبيق الإعدادات الجديدة.

تتيح لك هذه الأدوات سطر الأوامر المرونة في التحقق من إعدادات DNS وتغييرها على أنظمة Linux. وهي مفيدة بشكل خاص لإدارة الأنظمة عن بُعد والأتمتة من خلال السكربتات.

إعدادات DNS مع systemd-resolved

systemd-resolved هو محلل DNS حديث مدمج في نظام ومدير الخدمة systemd. يقدم ميزات متنوعة مثل التخزين المؤقت لـ DNS، التحقق من صحة DNSSEC، وتوجيه السجلات، مما يبسط عملية حل DNS. هنا، نشرح كيفية إدارة إعدادات DNS باستخدام systemd-resolved.

نظرة عامة على systemd-resolved

systemd-resolved يتعامل مع طلبات حل DNS من التطبيقات المحلية، مخزنًا الاستجابات من خوادم DNS الخارجية لتحسين سرعة وموثوقية حل الأسماء. كما يدير ملف /etc/resolv.conf، موفرًا استراتيجية حل الأسماء على مستوى النظام.

تمكين وتكوين systemd-resolved

معظم التوزيعات الحديثة من Linux لديها systemd-resolved ممكّن بشكل افتراضي. ومع ذلك، إذا لم يكن ممكّنًا، يمكنك بدء وتمكين الخدمة باستخدام الأمر التالي:

sudo systemctl enable --now systemd-resolved.service

بمجرد تمكينه، يمكنك تحرير ملف /etc/systemd/resolved.conf لتعيين عناوين خوادم DNS المخصصة. يُنصح بعمل نسخة احتياطية من الملف قبل التحرير.

sudo nano /etc/systemd/resolved.conf

على سبيل المثال، لاستخدام خوادم DNS العامة لجوجل، يمكنك ضبط الإعدادات التالية:

[Resolve]
DNS=8.8.8.8 8.8.4.4
FallbackDNS=1.1.1.1 9.9.9.9

تحدد الخيار DNS عناوين IP لخوادم DNS الأساسية التي يجب استخدامها، مفصولة بمسافات. يسرد FallbackDNS خوادم DNS التي يتم استخدامها إذا كانت الخوادم الأساسية غير متاحة.

بعد تغيير الإعدادات، أعد تشغيل خدمة systemd-resolved لتطبيق التغييرات:

sudo systemctl restart systemd-resolved

العلاقة بين systemd-resolved و /etc/resolv.conf

في الأنظمة التي تستخدم systemd-resolved، يُنصح بربط ملف /etc/resolv.conf بـ /run/systemd/resolve/stub-resolv.conf. يتيح ذلك استخدام ميزات التخزين المؤقت المحلي وإعادة التوجيه التي يوفرها systemd-resolved. لإعداد الرابط الرمزي، استخدم الأمر التالي:

sudo ln -sf /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

يتيح ذلك لـ systemd-resolved إدارة عملية حل DNS للنظام، موفرًا اتصالًا بالإنترنت أسرع وأكثر أمانًا.

إدارة DNS باستخدام Network Manager

في أنظمة Linux، Network Manager (NetworkManager) هو الأداة الأكثر استخدامًا لتكوين وإدارة الشبكة. يسهل إدارة واجهات الشبكة المختلفة، بما في ذلك الشبكات اللاسلكية والسلكية والنطاق العريض المتنقل واتصالات VPN. يمكن أيضًا إدارة إعدادات DNS من خلال هذه الأداة. هنا، نناقش كيفية إعداد DNS باستخدام Network Manager.

تغيير إعدادات DNS باستخدام Network Manager

مع Network Manager، يمكنك تغيير إعدادات DNS باستخدام واجهة المستخدم الرسومية (GUI) أو واجهة سطر الأوامر (CLI). لواجهة سطر الأوامر، الأمر nmcli مفيد جدًا.

لتغيير إعدادات DNS لاتصال شبكة معين، حدد أولاً اسم الاتصال. يمكنك سرد جميع اتصالات الشبكة المتاحة بالأمر التالي:

nmcli connection show

ثم، استخدم اسم الاتصال لتعيين خوادم DNS. يقوم الأمر التالي بتعيين عناوين خوادم DNS للاتصال المسمى “اسم الاتصال”:

nmcli connection modify "اسم الاتصال" ipv4.dns "8.8.8.8 8.8.4.4"
nmcli connection modify "اسم الاتصال" ipv4.ignore-auto-dns yes
nmcli connection up "اسم الاتصال"

يقوم هذا الأمر بتعيين خوادم DNS لجوجل (8.8.8.8 و 8.8.4.4) لاتصال محدد، متجاهلاً الإعدادات التلقائية لـ DNS. أخيرًا، يتم إعادة تشغيل الاتصال باستخدام nmcli connection up لتطبيق الإعدادات.

تغيير الإعدادات العالمية لـ DNS

يمكنك أيضًا استخدام Network Manager لتغيير إعدادات DNS للنظام بأكمله. للقيام بذلك، عدل ملف /etc/NetworkManager/NetworkManager.conf وأضف خيار dns تحت قسم [main]:

[main]
dns=dnsmasq

يتيح هذا الإعداد لـ Network Manager استخدام dnsmasq لمعالجة استفسارات DNS. dnsmasq هو خادم تخزين مؤقت لـ DNS وخادم DHCP خفيف يوفر حل استفسارات DNS المحلية والتخزين المؤقت، مما يحسن من سرعة حل DNS.

بعد تغيير الإعدادات، تحتاج إلى إعادة تشغيل Network Manager:

sudo systemctl restart NetworkManager

تعزز إدارة DNS من خلال Network Manager المرونة والراحة في تكوين الشبكة بشكل كبير. تتيح للمستخدمين تخصيص إعدادات DNS بسهولة، مما يحسن من أداء وأمان الشبكة.

استكشاف الأخطاء وإصلاحها: المشكلات الشائعة وحلولها

يمكن أن تظهر مشكلات متعلقة بـ DNS بأشكال مختلفة، مثل مشاكل الاتصال بالإنترنت، صعوبات في الوصول إلى المواقع الإلكترونية، والتأخيرات. هنا، نناقش المشكلات الشائعة المتعلقة بـ DNS التي قد تواجهها على Linux والنهج لحلها.

بطء حل DNS

إذا كان حل DNS بطيئًا، فقد يكون خادم DNS الذي تستخدمه سبب التأخير. التبديل إلى خادم DNS آخر قد يحل المشكلة. على سبيل المثال، Google Public DNS (8.8.8.8 و 8.8.4.4) و Cloudflare DNS (1.1.1.1) خيارات سريعة وموثوقة.

فشل حل DNS

إذا فشل حل DNS، تحقق أولاً مما إذا كان نظامك يشير إلى خوادم DNS الصحيحة. يمكنك التحقق من ذلك باستخدام ملف /etc/resolv.conf أو الأمر systemd-resolve --status. إذا تم تعيين خوادم DNS الصحيحة واستمرت المشكلة، قد يساعد مسح ذاكرة التخزين المؤقت لـ DNS. إذا كنت تستخدم systemd-resolved، يمكنك مسح ذاكرة التخزين المؤقت باستخدام الأمر التالي:

sudo systemd-resolve --flush-caches

عدم القدرة على الوصول إلى مواقع معينة

إذا كنت تواجه مشكلة في الوصول إلى مواقع معينة، قد تكون هناك مشكلات في سجلات DNS لتلك المواقع، أو قد تحتفظ ذاكرة التخزين المؤقت المحلية لـ DNS بمعلومات قديمة. قد يحل مسح ذاكرة التخزين المؤقت لـ DNS المشكلة. أيضًا، تحقق مما إذا كان ملف /etc/hosts لم يضف سجلات يدويًا لتلك المواقع.

خادم DNS لا يستجيب

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

بتجربة هذه الخطوات العامة لاستكشاف الأخطاء وإصلاحها، يجب أن تتمكن من حل العديد من المشكلات المتعلقة بـ DNS. ومع ذلك، إذا استمرت المشكلة، قد تكون هناك حاجة لمزيد من التحقيق في إعدادات الشبكة أو التكوين. في بعض الحالات، قد يكون الاتصال بمزود خدمة الإنترنت (ISP) أو مسؤول الشبكة هو الإجراء المناسب.

اعتبارات الأمان: الأمور التي يجب مراعاتها عند إعداد DNS

عند إعداد تكوينات DNS، من المهم مراعاة الآثار الأمنية. يمكن أن تزيد الإعدادات غير الصحيحة لـ DNS من الضعف أمام الهجمات الإلكترونية. هنا، نقدم بعض الاعتبارات الأمنية الرئيسية التي يجب وضعها في الاعتبار عند تكوين DNS.

موثوقية وأمان خوادم DNS

يجب أن يكون خادم DNS الذي تختاره موثوقًا ولديه تدابير أمان معمول بها. إذا كنت تستخدم خدمة DNS عامة، تحقق من ميزات الأمان التي يوفرها مزود الخدمة، مثل دعم DNSSEC وحظر المواقع الضارة.

التخفيف من تسمم ذاكرة التخزين المؤقت لـ DNS

تسمم ذاكرة التخزين المؤقت لـ DNS هو هجوم يقوم فيه المهاجم بحقن معلومات DNS كاذبة في الذاكرة، موجهًا المستخدمين إلى مواقع ضارة، مثل مواقع التصيد الاحتيالي. استخدام خوادم DNS التي تدعم DNSSEC (امتدادات أمان DNS) يمكن أن يحمي ضد مثل هذه الهجمات.

تأمين تكوين خادم DNS المحلي

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

حماية الخصوصية

يمكن أن تكشف استفسارات DNS عن سجل استخدام الإنترنت للمستخدمين. لحماية الخصوصية، ضع في اعتبارك استخدام خوادم DNS التي تدعم استفسارات DNS المشفرة، مثل DNS عبر HTTPS (DoH) أو DNS عبر TLS (DoT).

خاتمة

فهم كيفية التحقق من خوادم DNS وتكوينها على Linux وإدارتها بشكل مناسب أمر بالغ الأهمية للحفاظ على كفاءة الشبكة وأمانها. تناول هذا المقال أساسيات DNS، كيفية التحقق من خوادم DNS وإعدادها، إدارة DNS باستخدام systemd-resolved وNetwork Manager، استكشاف الأخطاء وإصلاحها، واعتبارات الأمان. تطبيق هذه المعرفة سيمكن من تكوين DNS بشكل أكثر فعالية وأمان على أنظمة Linux.

الفهرس