Configure recursion
ماهي عملية الـrecursion في سيرفرات الـDNS؟
هي أن يقوم سيرفر الـDNS المحلي بإرسال اﻷستعلام DNS query إلى سيرفر DNS اخر نيابة عن العميل ليقوم بتزويد العميل بالمعلومات المطلوبة.
عادة جميع سيرفرات الـDNS وكذلك سيرفرات forwarded DNS تقوم بعملية recursion.
بشكل افتراضي ، تؤدي جميع خوادم DNS استعلامات متكررة بالنيابة عن عملاء DNS وخوادم DNS الأخرى التي قامت بإعادة توجيه استعلامات عميل DNS إليهم.
قد يستغل الهكر عملية recursion لتوجيه اﻷستعلامات الى سيرفرات مشبوهة لذلك من الأفضل أن تتعلم كيف تقوم بتعطيل خاصية الـrecursion
علما أن تعطيلها يعطل ايضا الـForwarders
وللحاجة في بعض اﻷوقات لتعطيل هذا النوع من اﻷستعلام سنقوم بتوضيح عملية تعطيل اﻷستعلام disable recursion كمايلي :-
وفي الفيديو التالي توضيح لـdisable recursion
Recursion Scopes
نستطيع نتحكم في recursive query باستخدام DNS Server Policies بحيث أن السيرفر يقوم بعمل recursive query للعملاء الذين من دومين معين فقط
فمثلا نحن لدينا المجال learn.com سيتم عمل recursion فقط لطلبات الجهزة التي من هذا المجال وبهذه الطريقة سيتم منع المجالات اﻷخرى ومن ضمنها الأجهزة التي من الأنترنت وهكذا اغلقنا الطريق على الهكر
وفي هذه الحالة فقط سمحنا للأجهزة الداخلية باستخدام الـDNS serverو هذا مايسمى بـAllow recursion for internal clients
والخطوات كما يلي:-
1- نقوم بتعطيل default recursion scope
Set-DnsServerRecursionScope -Name . -EnableRecursion $False
2- إنشاء recursion scope جديد ولنفرض أسمه MyScope1
Add-DnsServerRecursionScope -Name “MyScope1” -EnableRecursion $True
3- إنشاء policy جديدة بحيث أن سيرفر الـDNS يتعامل فقط مع الطلبات التي موجهة للعنوان المذكور وفي مثالنا 192.168.100.100
Add-DnsServerQueryResolutionPolicy -Name “MyPolicy1” -Action ALLOW
-ApplyOnRecursion -RecursionScope “MyScope1” -ServerInterfaceIP
“EQ,192.168.100.100”

سيتم في الفيديو التالي تعطيل عملية الـRecursion اﻷفتراضية وإنشاء مجال لـRecursion جديدة يتم ربطها بالمجال الداخلي فقط وذلك باستخدام الأوامر التالية :-
Set-DnsServerRecursionScope -Name . -EnableRecursion $False Add-DnsServerRecursionScope -Name "InternalLearnClients" -EnableRecursion $True Add-DnsServerQueryResolutionPolicy -Name "RecursionControlPolicy" -Action ALLOW ` -ApplyOnRecursion -RecursionScope "InternalLearnClients" ` -ServerInterfaceIP "EQ,192.168.100.100"