المحتوى
- الخطوة 1: قم بتثبيت الحزم المطلوبة
- الخطوة 2: تكوين خادم DNS العالمي
- الخطوة 3: إنشاء منطقة للأمام والخلف
- الخطوة 4: بدء تشغيل خادم DNS
- الخطوة 5: تغيير إعدادات جدار الحماية
- الخطوة 6: إعداد حقوق الوصول
- الخطوة 7: اختبار الأخطاء وإكمال التكوين
- الخطوة 8: التحقق من خادم DNS المثبت
- تكوين جانب العميل لخادم DNS
- اختبار خادم DNS
- أسئلة وأجوبة
الخطوة 1: قم بتثبيت الحزم المطلوبة
قبل البدء في إلقاء نظرة على الإرشادات التالية ، نود أن نلاحظ أن موقعنا يحتوي بالفعل على دليل عام لتكوين DNS القياسي على Linux. نوصي باستخدام هذه المواد بالضبط إذا كنت بحاجة إلى ضبط الإعدادات للزيارات المنتظمة لمواقع الإنترنت. بعد ذلك ، سنوضح لك كيفية تثبيت خادم DNS محلي أساسي من جانب العميل.
اقرأ أيضا: تكوين DNS في Linux
كوسيلة لإنشاء خادم DNS محلي ، نوصي باستخدام ربط 9... سيعتمد تكوين ملفات التكوين اللاحقة أيضًا على المبادئ العامة لسلوك هذا المكون. إفتراضي ربط 9 مفقود من نظام التشغيل ، فلنبدأ بإضافته.
- ابدأ تشغيل وحدة التحكم بطريقة تناسبك. إنه في القسم "التطبيقات" — المفضلة أو يمكن فتحه عبر اختصار لوحة المفاتيح القياسي Ctrl + Alt + T..
- هنا تحتاج إلى إدخال الأمر
sudo yum install bind bind-utils -y
وانقر فوق أدخل لتنشيطه. - يتم تنفيذ هذا الإجراء نيابة عن المستخدم المتميز (سودو) ، لذلك سيتعين عليك تأكيد الحساب عن طريق إدخال كلمة المرور في السطر الذي يظهر.
- انتظر حتى يكتمل تنزيل الحزم وتثبيتها.
في نهاية هذه العملية ، سيتم إخطارك بأنه تم إضافة جميع الحزم بنجاح إلى النظام. ثم انتقل إلى الخطوة التالية.
الخطوة 2: تكوين خادم DNS العالمي
نريد الآن توضيح كيفية تحرير ملف التكوين الرئيسي بالضبط ، وكذلك الأسطر المضافة هناك. لن نتطرق إلى كل سطر على حدة ، حيث سيستغرق الأمر وقتًا طويلاً جدًا ، بالإضافة إلى أن جميع المعلومات الضرورية متوفرة في الوثائق الرسمية.
- يمكن استخدام أي محرر نصوص لتحرير كائنات التكوين. نحن نقدم لتثبيت مناسب نانوعن طريق الكتابة في وحدة التحكم
sudo yum تثبيت نانو
. - سيتم تنزيل جميع الحزم المطلوبة ، وستتلقى إشعارًا إذا كانت موجودة بالفعل في التوزيع "لا يوجد شيء لفعله".
- لنبدأ في تحرير الملف نفسه. افتحها من خلال
sudo nano /etc/amed.conf
... إذا لزم الأمر ، استبدل محرر النصوص المطلوب ، ثم سيبدو السطر كما يلي:sudo vi /etc/oted.conf
. - سنقدم أدناه المحتوى الذي تحتاج إلى إدراجه في الملف المفتوح أو مقارنته بالمحتوى الحالي عن طريق إضافة الأسطر المفقودة.
- بعد ذلك اضغط على السيطرة + Oلتسجيل التغييرات.
- لست بحاجة إلى تغيير اسم الملف ، فقط انقر فوق أدخل.
- اترك محرر النصوص عبر السيطرة + X.
كما ذكرنا سابقًا ، ستحتاج إلى إدخال سطور معينة في ملف التكوين التي تحدد القواعد العامة لسلوك خادم DNS.
//
// المسمى
//
// المقدمة من حزمة ربط Red Hat لتكوين ISC BIND المسمى (8) DNS
// الخادم كخادم أسماء للتخزين المؤقت فقط (كمحلل DNS للمضيف المحلي فقط).
//
// راجع / usr / share / doc / bind * / sample / على سبيل المثال ملفات التكوين المسماة.
//
خيارات {
استمع على المنفذ 53 {127.0.0.1 ؛ 192.168.1.101؛} ، ### ماجستير DNS IP ###
# listen-on-v6 port 53 {:: 1؛ } ؛
الدليل "/ var / named" ؛
ملف تفريغ "/var/itled/data/cache_dump.db" ؛
ملف الإحصاء "/var/amed/data/itled_stats.txt" ؛
memstatistics-file "/var/amed/data/itled_mem_stats.txt" ؛
allow-query {localhost؛ 192.168.1.0/24 ؛} ، ### مجموعة الملكية الفكرية ###
allow-transfer {localhost؛ 192.168.1.102 ؛ } ؛ ### عنوان DNS الرقيق ###
/*
- إذا كنت تقوم ببناء خادم DNS موثوق ، فلا تقم بتمكين العودية.
- إذا كنت تقوم ببناء خادم DNS RECURSIVE (التخزين المؤقت) ، فأنت بحاجة إلى التمكين
العودية.
- إذا كان خادم DNS التكراري الخاص بك يحتوي على عنوان IP عام ، فيجب عليك تمكين الوصول
السيطرة لقصر الاستعلامات على المستخدمين الشرعيين. عدم القيام بذلك سوف
جعل الخادم الخاص بك جزءًا من تضخيم DNS على نطاق واسع
الهجمات. سيؤدي تنفيذ BCP38 داخل شبكتك إلى حد كبير
تقليل سطح الهجوم
*/
العودية نعم
نعم تمكين dnssec ؛
dnssec-validation نعم ؛
dnssec-lookaside السيارات ؛
/ * المسار إلى مفتاح ISC DLV * /
bindkeys-file "/etc/apped.iscdlv.key" ؛
إدارة-مفاتيح-دليل "/ فار / مسمى / ديناميكي" ؛
pid-file "/run/itled/itled.pid" ؛
جلسة-keyfile "/run/itled/session.key" ؛
};
تسجيل {
قناة default_debug {
ملف "data / named.run" ؛
ديناميكية الشدة
};
};
المنطقة "." في {
اكتب تلميح
ملف "named.ca" ؛
};
المنطقة "unixmen.local" IN {
نوع الماجستير
ملف "forward.unixmen" ؛
السماح بالتحديث {بلا ؛ } ؛
};
المنطقة "1.168.192.in-addr.arpa" IN {
نوع الماجستير
ملف "reverse.unixmen" ؛
السماح بالتحديث {بلا ؛ } ؛
};
تشمل "/etc/igned.rfc1912.zones" ؛
تشمل "/etc/igned.root.key" ؛
تأكد من تعيين كل شيء تمامًا كما هو موضح أعلاه ، وبعد ذلك فقط انتقل إلى الخطوة التالية.
الخطوة 3: إنشاء منطقة للأمام والخلف
يستخدم خادم DNS المناطق الأمامية والخلفية للحصول على معلومات المصدر. يسمح لك Forward بالحصول على عنوان IP حسب اسم المضيف ، ويمنحك عكس IP اسم مجال. يجب تزويد التشغيل الصحيح لكل منطقة بقواعد خاصة ، ونقترح إنشاء المزيد منها.
- لنقم بإنشاء ملف منفصل للمنطقة المباشرة باستخدام محرر النصوص نفسه.ثم سيبدو الخط كما يلي:
sudo نانو / فار / مسمى / فوري. unixmen
. - سيتم إعلامك أن هذا كائن فارغ. الصق المحتوى التالي هناك:
TTL 86400 دولار
@ IN SOA masterdns.unixmen.local. الجذر. unixmen.local. (
2011071001 ؛ المسلسل
3600 ؛ تحديث
1800 ؛ أعد المحاولة
604800 ؛ تنتهي
86400 ؛ الحد الأدنى من TTL
)
@ IN NS masterdns.unixmen.local.
@ IN NS seconddns.unixmen.local.
@ IN A 192.168.1.101
@ IN A 192.168.1.102
@ IN A 192.168.1.103
ماسترز في 192.168.1.101
الثانوية في A 192.168.1.102
العميل في 192.168.1.103 - احفظ التغييرات وأغلق محرر النصوص.
- الآن دعنا ننتقل إلى المنطقة العكسية. يتطلب ملف
/var/itled/reverse.unixmen
. - سيكون هذا أيضًا ملفًا جديدًا فارغًا. أدخل هناك:
TTL 86400 دولار
@ IN SOA masterdns.unixmen.local. الجذر. unixmen.local. (
2011071001 ؛ المسلسل
3600 ؛ تحديث
1800 ؛ أعد المحاولة
604800 ؛ تنتهي
86400 ؛ الحد الأدنى من TTL
)
@ IN NS masterdns.unixmen.local.
@ IN NS seconddns.unixmen.local.
@ IN PTR unixmen.local.
ماسترز في 192.168.1.101
الثانوية في A 192.168.1.102
العميل في 192.168.1.103
101 IN PTR masterdns.unixmen.local.
102 في PTR Secondarydns.unixmen.local.
103 IN PTR client.unixmen.local. - عند الحفظ ، لا تغير اسم الكائن ، ولكن ببساطة اضغط على المفتاح أدخل.
الآن سيتم استخدام الملفات المحددة للمناطق الأمامية والخلفية. إذا لزم الأمر ، يجب عليك تعديلها لتغيير بعض المعلمات. يمكنك أيضًا أن تقرأ عن هذا في الوثائق الرسمية.
الخطوة 4: بدء تشغيل خادم DNS
بعد اتباع جميع الإرشادات السابقة ، يمكنك بالفعل بدء تشغيل خادم DNS بحيث يكون من السهل في المستقبل التحقق من قابليته للتشغيل ومواصلة تكوين المعلمات المهمة. يتم تنفيذ المهمة على النحو التالي:
- في وحدة التحكم تدخل
sudo systemctl تمكين مسمى
لإضافة خادم DNS لبدء التشغيل لبدء التشغيل التلقائي عند بدء تشغيل نظام التشغيل. - قم بتأكيد هذا الإجراء عن طريق إدخال كلمة مرور المستخدم المتميز.
- سيتم إخطارك بإنشاء ارتباط رمزي ، مما يعني أن الإجراء قد اكتمل بنجاح.
- قم بتشغيل الأداة المساعدة عبر
اسم بدء systemctl
... يمكنك إيقافه بنفس الطريقة ، فقط عن طريق استبدال الخيار بداية علىقف
. - عندما تظهر نافذة المصادقة المنبثقة ، أدخل كلمة مرور الجذر.
كما ترى ، يتم تنفيذ إدارة الخدمة المحددة وفقًا لنفس المبدأ مثل جميع المرافق القياسية الأخرى ، لذلك يجب ألا تكون هناك مشاكل مع هذا حتى للمستخدمين المبتدئين.
الخطوة 5: تغيير إعدادات جدار الحماية
من أجل الأداء الصحيح لخادم DNS ، ستحتاج إلى فتح المنفذ 53 ، والذي يتم تنفيذه من خلال جدار الحماية القياسي FirewallD. في "طرفية" تحتاج إلى إدخال ثلاثة أوامر بسيطة فقط:
- الأول له الشكل
جدار الحماية - cmd - دائم - منفذ إضافة = 53 / tcp
وهو مسؤول عن فتح منفذ TCP. أدخله في وحدة التحكم وانقر فوق أدخل. - يجب أن يتم إعلامك "نجاح"، مما يشير إلى التطبيق الناجح للقاعدة. بعد ذلك أدخل السطر
جدار الحماية - cmd - دائم - منفذ إضافة = 53 / udp
لفتح منفذ UDP. - سيتم تطبيق جميع التغييرات فقط بعد إعادة تشغيل جدار الحماية ، والذي يتم من خلال الأمر
جدار الحماية- cmd - إعادة تحميل
.
لست بحاجة إلى إجراء أي تغييرات أخرى على جدار الحماية. استمر في تشغيله في جميع الأوقات لتجنب أي مشاكل في الوصول.
الخطوة 6: إعداد حقوق الوصول
الآن ستحتاج إلى تعيين الأذونات الأساسية وحقوق الوصول من أجل تأمين أداء خادم DNS بشكل طفيف وحماية المستخدمين العاديين من القدرة على تغيير المعلمات. لنفعل ذلك بالطريقة القياسية ومن خلال SELinux.
- يجب تفعيل جميع الأوامر اللاحقة نيابة عن المستخدم المتميز. من أجل عدم إدخال كلمة مرور باستمرار ، ننصحك بتمكين الوصول الدائم إلى الجذر للجلسة الطرفية الحالية. للقيام بذلك ، أدخل في وحدة التحكم
سو
. - أدخل كلمة مرور الوصول.
- بعد ذلك ، أدخل الأوامر التالية واحدًا تلو الآخر لإنشاء إعداد الوصول الأمثل:
chgrp اسمه -R / var / اسمه
chown -v root: المسمى /etc/igned.conf
ريستوركون -rv / فار / اسمه
restorecon /etc/amed.conf
هذا يكمل التكوين العام لخادم DNS الرئيسي. كل ما تبقى هو تحرير بعض ملفات التكوين واختبار الأخطاء. مع كل هذا ، نقترح معرفة ذلك في الخطوة التالية.
الخطوة 7: اختبار الأخطاء وإكمال التكوين
نوصي بأن تبدأ بالتحقق من الأخطاء حتى لا تضطر إلى تغيير ملفات التكوين المتبقية في المستقبل. هذا هو السبب في أننا سنغطي كل هذا في خطوة واحدة ، بالإضافة إلى تقديم أمثلة لإخراج الأمر الصحيح للاختبار.
- أدخل في "طرفية"
مسمى checkconf /etc/igned.conf
... سيؤدي هذا إلى التحقق من المعلمات العامة. إذا لم يتم اتباع أي إخراج نتيجة لذلك ، فسيتم تكوين كل شيء بشكل صحيح. وإلا فدرس الرسالة وابدأ من حل المشكلة. - بعد ذلك ، تحتاج إلى التحقق من المنطقة المباشرة عن طريق إدخال الخط
مسمى checkzone unixmen.local /var/igned/forward.unixmen
. - يبدو إخراج العينة كما يلي:
المنطقة unixmen.local / IN: تم تحميل المسلسل 2011071001 OK
. - نقوم بتنفيذ نفس الشيء تقريبًا مع المنطقة العكسية من خلال
مسمى checkzone unixmen.local /var/itled/reverse.unixmen
. - يجب أن يكون الإخراج الصحيح كما يلي:
المنطقة unixmen.local / IN: تم تحميل المسلسل 2011071001 OK
. - الآن دعنا ننتقل إلى إعدادات واجهة الشبكة الرئيسية. ستحتاج إلى إضافة بيانات خادم DNS الحالي إليها. للقيام بذلك ، افتح الملف
/ etc / sysconfig / network-scripts / ifcfg-enp0s3
. - تأكد من أن المحتوى كما هو موضح أدناه. الصق معلمات DNS إذا لزم الأمر.
TYPE = "إيثرنت"
BOOTPROTO = "لا شيء"
DEFROUTE = "نعم"
IPV4_FAILURE_FATAL = "لا"
IPV6INIT = "نعم"
IPV6_AUTOCONF = "نعم"
IPV6_DEFROUTE = "نعم"
IPV6_FAILURE_FATAL = "لا"
NAME = "enp0s3"
UUID = "5d0428b3-6af2-4f6b-9fe3-4250cd839efa"
ONBOOT = "نعم"
HWADDR = "08: 00: 27: 19: 68: 73"
IPADDR0 = "192.168.1.101"
PREFIX0 = "24"
GATEWAY0 = "192.168.1.1"
DNS = "192.168.1.101"
IPV6_PEERDNS = "نعم"
IPV6_PEERROUTES = "نعم" - بعد حفظ التغييرات انتقل إلى الملف
/etc/resolv.conf
. - تحتاج فقط إلى إضافة سطر واحد هنا:
خادم الأسماء 192.168.1.101
. - عند الانتهاء ، كل ما تبقى هو إعادة تشغيل الشبكة أو الكمبيوتر لتحديث التكوين. يتم إعادة تشغيل خدمة الشبكة عن طريق الأمر
إعادة تشغيل شبكة systemctl
.
الخطوة 8: التحقق من خادم DNS المثبت
في نهاية التكوين ، يبقى فقط التحقق من تشغيل خادم DNS الحالي بعد إضافته إلى خدمة الشبكة العالمية. يتم تنفيذ هذه العملية أيضًا باستخدام أوامر خاصة. أولهم الشكل حفر masterdns.unixmen.local
.
نتيجة لذلك ، يجب أن تعرض الشاشة إخراجًا يشبه المحتوى أدناه.
؛ <> DiG 9.9.4-RedHat-9.9.4-14.el7 <> masterdns.unixmen.local
؛؛ الخيارات العالمية: + cmd
؛؛ حصلت على إجابة:
؛؛ - >> HEADER << - كود التشغيل: QUERY ، الحالة: NOERROR ، المعرف: 25179
؛؛ الأعلام: qr aa rd ra ؛ سؤال: 1 ، إجابة: 1 ، سلطة: 2 ، إضافية: 2
؛؛ OPT PSEUDOSION:
؛ EDNS: الإصدار: 0 ، الأعلام: ؛ udp: 4096
؛؛ قسم السؤال:
؛ masterdns.unixmen.local. في
؛؛ قسم الإجابة:
masterdns.unixmen.local. 86400 في 192.168.1.101
؛؛ قسم السلطة:
unixmen.local. 86400 IN NS Secondarydns.unixmen.local.
unixmen.local. 86400 في NS masterdns.unixmen.local.
؛؛ قسم إضافي:
ثانوي dns.unixmen.local. 86400 في 192.168.1.102
؛؛ وقت الاستعلام: 0 مللي ثانية
؛؛ الخادم: 192.168.1.101 # 53 (192.168.1.101)
؛؛ الزمان: الأربعاء 20 آب (أغسطس) الساعة 16:20:46 بتوقيت الهند الصيفي 2014
؛؛ حجم MSG rcvd: 125
سيسمح لك أمر إضافي بمعرفة حالة التشغيل المحلي لخادم DNS. للقيام بذلك ، أدخل في وحدة التحكم nslookup unixmen.local
وانقر فوق أدخل.
يجب أن يعرض هذا ثلاثة تمثيلات مختلفة لعناوين IP وأسماء المجال.
الخادم: 192.168.1.101
العنوان: 192.168.1.101 # 53
الاسم: unixmen.local
العنوان: 192.168.1.103
الاسم: unixmen.local
العنوان: 192.168.1.101
الاسم: unixmen.local
العنوان: 192.168.1.102
إذا تطابق الإخراج مع الناتج الذي أشرنا إليه ، فقد تم إكمال التكوين بنجاح ويمكنك متابعة العمل مع جزء العميل من خادم DNS.
تكوين جانب العميل لخادم DNS
لن نقسم هذا الإجراء إلى خطوات منفصلة ، حيث يتم تنفيذه عن طريق تحرير ملف تكوين واحد فقط. من الضروري إضافة معلومات حول جميع العملاء الذين سيتم توصيلهم بالخادم ، ومثال على هذا الإعداد يبدو كالتالي:
- افتح الملف
/etc/resolv.conf
من خلال أي محرر نصوص مناسب. - أضف سطورًا هناك
ابحث عن خادم أسماء unixmen.local 192.168.1.101
وخادم الأسماء 192.168.1.102
مع استبدال ما يلزم بعناوين العميل. - عند الحفظ ، لا تغير اسم الملف ، ولكن ببساطة اضغط على المفتاح أدخل.
- بعد الخروج من محرر النصوص ، تأكد من إعادة تشغيل الشبكة العالمية عبر الأمر
إعادة تشغيل شبكة systemctl
.
كانت هذه هي النقاط الرئيسية لتكوين جانب العميل من خادم DNS الذي أردنا التحدث عنه. نقترح دراسة جميع الفروق الدقيقة الأخرى من خلال قراءة الوثائق الرسمية ، إذا لزم الأمر.
اختبار خادم DNS
المرحلة الأخيرة من مواد اليوم هي الاختبار النهائي لخادم DNS. يمكنك أدناه رؤية العديد من الأوامر التي تسمح لك بالتعامل مع المهمة المطروحة. استخدم واحدًا منهم عن طريق التنشيط عبر "طرفية"... إذا لم تكن هناك أخطاء في الإخراج ، فإن العملية برمتها صحيحة.
حفر masterdns.unixmen.local
حفر الثانوية dns.unixmen.local
حفر العميل. unixmen.local
nslookup unixmen.local
لقد تعلمت اليوم كل شيء عن إعداد خادم DNS رئيسي على توزيع CentOS. كما ترى ، تركز العملية بأكملها على إدخال أوامر المحطة الطرفية وتحرير ملفات التكوين ، والتي يمكن أن تسبب بعض الصعوبات للمستخدمين المبتدئين. ومع ذلك ، كل ما عليك فعله هو اتباع التعليمات بدقة وقراءة نتائج الفحوصات بحيث يمر كل شيء دون أي أخطاء.