DNSsec

(DNS (Domain Name System هو بروتوكول مهم للغاية تتمثل مهمته في تسهيل الإبحار على الإنترنات عبر تحويل أسماء المواقع URL إلى أرقام تمثل عنوان IP لذلك الموقع و العكس بالعكس فلولا هذا البرتوكول لاضطرننا لحفظ عشرات اﻷرقام التي تمثل عنوانين مواقعنا المفضلة. من هنا جاءت فكرة تحويل الذهاب إلى موقع موثوق به إلى صفحات مفخخة يقع إعدادها للغرض و تهدف لإرسال كل ما يكتبه الضحية على لوحة المفاتيح إلى المخترق و هذا الهجوم يعرف لدى الهاكرز باسم DNS spoofing و تطبيق مثل هذا النوع من الهجومات سهل للغاية و فعال خصوصا داخل الشبكات الداخلية LAN مما يجعل انتشاره متوفر على نطاق واسع.
من هنا جاء مفهوم DNSsec و الذي يقع اعتماده لدى خوادم الشركات الكبرى لحماية معلوماتها الحيوية





إذن (Domain Name System Security Extensions (DNSSEC  هو بروتوكول يسمح بتأمين المعلومات التي ترسل بواسطة DNS و هو على عكس بعض البروتوكولات الأخرى مثل SSL لا يقوم بالضبط بحماية قناة اﻹتصال و لكنه يحمي المعلومات

DNSsec يوقع باستعمال علم التشفير (cryptography)  اعددات DNS و يدمج ذلك التوقيع داخل DNS .
في المقابل المستخدم client يحصل على التوقيع في حال امتلاك المفتاح من الخادم server.

هذه باختصار طريقة عمله و قد تعمدت أن لا أركز على طريقة عمله بالكامل حتى لا ندخل في متاهات كبيرة, أما في ما يخص كيفية استعماله فهي ليست بالأمر المعقد كما قد يتصور البعض حيث يمكن دمجها داخل bind البرنامج المفتوح المصدر و الأكثر شهرة لاستغلال خادم DNS بالشكل التالي:

أولا يقع تثبيت خادم bind بواسطة الأمر التالي:

sudo apt-get install bind9
ثانيا نقوم بايقاف bind عن العمل حتى يتسنى تعديل ملفاته:

service named stop
بعد الإنتهاء من بقية اعددات bind و التي لن أذكرها لأنها تتطلب شرحا مطولا, سيقع اضافة الأسطر التالية مع تغيير الإعددات بما يتناسب مع حاجة صاحبا الخادم.

options {
       dnssec-enable yes;
};

zone "mycompany.com." {
      type forward;
         forwarders { 195.24.65.7; };
};

trusted-keys {
   "mycompany.com." 257 3 5
   "AQPFTcrI419hTu06QuPs95t9e8rirIvmpNtqLRDKTu28iPv4xbNxKLbE
   uVlsjhfaSPqmqKnNmb7WeexloTCVbJe1jYf8g0c1Crec8TvglLq/PB/J
   CxD3aD2pmlBx6sOCiSXR3VpjvqMUzENl/PajSFpKnPs3dLAwrDrkqwSI
   M/ORZw==";
};
 حيث قمنا في البداية بتفعيل خاصية dnssec ثم من خلال zone قمنا بتحديد الموقع الذي سنعمل عليه (هام: لا بد أن ينتهي اسم الموقع بنقطة)
- type forward و هو أحد أنواع خوادم dns حيث نجد master الخادم الرئيسي و slave الخادم الثانوي و غيرها من الأنواع,
forward هنا يقوم بكل بساطة بتحويل جميع الطلبات إلى خادم dns آخر و يقوم بإخفاء النتيجة.
و أخيرا trusted-keys كما يبدو واضحا من اسمها المفتاح المستعمل من نوع public key.
مع التأكيد على ضرورة تغيير المفتاح سنويا.

إن سارت كل الأمور كل ما يجب سنجد أنها تعمل بعد التأكد من ذلك بواسطة الأمر dig ثم عنوان ip الذي قمنا بتحضيره في الإعدادات

> dig @127.0.0.1 ns.mycompany.com. +retry=1 +dnssec +multiline

; <<>> DiG 9.3.0beta3 <<>> @127.0.0.1 +retry=1 +dnssec +multiline
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 50414
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 5
                        ^^ this flag (ad) indicates that a secure DNS response has been received.

و أخيرا اريد أن أقترح موقعا ممتازا يعطي تفاصيل هامة تتعلق بال DNS يمكن لمن يشاء التعمق في دراستها أن يطلع عليها.
http://www.zytrax.com/books/dns/ch7/

0 comments: