رانسيد RANCID هي اختصار لـ Really Awesome New Cisco ConfIg Differ
و عند إعداد خادم رانسيد فإنك ستحصل على رسالة بالبريد الإلكتروني عن أي تعديل يحصل لأي من راوترات أو سويتشات أو فايرولات سيسكو و سيكون مضمون الرسالة موضحا لما كان عليه ملف إعدادات سيسكو السابق و ما هو التعديل الذي طرأ عليه. أضف إلى أنه يراقب أي تعديل في السوفتواير أو الهاردوير أو حتى رقم السيريال و يستخدم في ذلك نظام CVS أو SVN للنسخ المتعدد Versioning.
حقيقة لم أعرف أن هناك برنامج رائع بهذا الشكل و لم أسمع عنه من قبل لكني وجدته بالصدفة أثناء بحثي في الإنترنت بالأمس و قمت بتثبيته على أحد خوادم FreeBSD في العمل و كانت النتائج أكثر من رائعة، مذهلة في الحقيقة.
مالفائدة من برنامج كهذا؟
أولا في بيئات العمل الكبيرة يجب أن يكون هناك إعدادات قياسية لأي من الأجهزة، و بالأخص في أجهزة الشبكة مثل أجهزة سيسكو و هو ما يسمى بالـ Standardization حتى تسهل عملية إدارة عدد كبير من الأجهزة.
أضف إلى ذلك أن وجود أكثر من مسؤول عن الشبكة (Network Admin) قد يصعب العملية و ربما يصعب تتبع الأخطاء في حال تغيير قيم معينة و ما إلى ذلك. لذى، وجود نظام نسخ متعدد Versioning System و ربطه بملف إعدادات سيسكو هو الحل الأمثل لهذا كما أنه يقوم بعمل نسخة احتياطية لملف إعدادات سيسكو، و صدقوني هذا أمر في غاية الأهمية لأنه قد يأتي يوم تتمنون وجود نسخة احتياطية للملف لتتفاجئون بعدم وجوده!!
كيفية عمل البرنامج؟
برنامج رانسيد عبارة عن سكريبتات تعمل على استخدام اسم مستخدم للدخول على أجهزة سيسكو و نقل الملفات إلى خادم رانسيد، لذلك يجب إعداد بعض الملفات قبل تشغيل البرنامج لتسهيل و تمكين البرنامج من الدخول إلى الأجهزة. بعد ذلك يتم وضع الملفات في نظام النسخ المتعدد CVS أو SVN لمعرفة التغييرات الطارئة على الملف و من ثم إرسالها إلى المستخدم.
ملخص الخطوات التي اتبعتها في إنشاء الخادم
أولا قمت بتثبيت حزمة رانسيد و من ثم إنشاء حساب مستخدم اسمه rancid
بعد ذلك تعديل ملف إعدادات رانسيد الرئيسي rancid.conf و تغيير القيم التالية
LIST_OF_GROUPS="networks"
MAILDOMAIN="@yourdomain.tld"; export MAILDOMAIN
ثم إنشاء الملف .cloginrc في المجلد الشخصي للمستخدم و في هذا الملف يجب إدخال معلومات الدخول الخاصة بكل راوتر أو سويتش أو فايروول.
عمل روابط (ناعمة) soft links للسكريبتات ليسهل الوصول إليها، لا حاجة لعمل الروابط في حال وجود السكريبت rancid-run و rancid-cvs في المجلد /usr/local/bin/
ln -s /usr/local/libexec/rancid/clogin /usr/sbin/clogin
ln -s /usr/local/libexec/rancid/rancid-run /usr/local/bin/rancid-run
ln -s /usr/local/libexec/rancid/rancid-cvs /usr/local/bin/rancid-cvs$ rancid-cvs
$ rancid-runالخطوات بالتفصيل
تثبيت الحزمة:
# cd /usr/ports/net-mgmt/rancid
# make install cleanإنشاء حساب المستخدم و إعطاءه الصلاحيات اللازمة:
# pw groupadd rancid
# pw useradd rancid -g rancid -m /home/rancid
# pw usermod -c "RANCID User fo Cisco Devices" -s /usr/local/bin/bash
# chown -R rancid:rancid /usr/local/var/rancidإعدادات الملف rancid.conf
# cp -v /usr/local/etc/rancid/rancid.conf.sample /usr/local/etc/rancid/rancid.conf
قمت بتعديل قيمة المتغيرات على النحو التالي:
LIST_OF_GROUPS="networks"
MAILDOMAIN="@yourdomain.tld"; export MAILDOMAINإعدادات الملف .clogin
قمت بالدخول بحساب المستخدم rancid و إنشاء الملف .clogin في المجلد المنزلي Home Folder و إضافة المحتويات التالية:
add user 192.168.1.20 rancid
هذا في حال استخدامك للمستخدم rancid في الدخول إلى أجهزة سيسكو، في حال استخدامك لمستخدم آخر، يجب وضع اسمه الصحيح هنا بدلا من rancid
add password 192.168.1.20 {verysecretpassword} {enablepassword}
add method 192.168.1.20 ssh
السطر الأول يعني استخدام كلمة المرور verysecretpassword للدخول إلى الجهاز المحدد 192.168.1.20 و كلمة المرور enablepassword للوضع المتقدم Enable Mode في جهاز سيسكو
أما السطر الأخير فيعني استخدام بروتوكول ssh للدخول إلى الجهاز المعني و يمكن استبداله بـ telnet في حال عدم استخدامك للـ ssh، واعلم بأنك في وضع حرج!
و في آخر الملف تأكد من وجود
# set ssh encryption type, dflt: 3des
add cyphertype *و إن كان جهاز السيسكو الذي تستخدمه لا يحتاج إلى enable password يعني auto-enabled فيجب وضع السطر التالي قبل كلمة المرور
add autoenable 192.168.1.20 1
تجربة الإعدادات في ملف .clogin
قبل تجربة الإعدادات يفضل عمل الروابط (الناعمة) Soft Links لتسهل عملية كتابة الأوامر
ln -s /usr/local/libexec/rancid/clogin /usr/sbin/clogin
ln -s /usr/local/libexec/rancid/rancid-run /usr/local/bin/rancid-run
ln -s /usr/local/libexec/rancid/rancid-cvs /usr/local/bin/rancid-cvs$ clogin 192.168.1.20إعدادات نظام النسخ المتعدد
بما أننا قمنا بإعطاء الصلاحيات اللزمة في خطوة إنشاء حساب المستخدم، بقي علينا تنفيذ الأمرين rancid-cvs و rancid-run مع مراعاة تنفيذها بالمستخدم rancid
$ rancid-cvs
$ rancid-runإعدادات router.db
بعد تنفيذ الأمرين السابقين ستجد مجلدا بنفس القيمة التي اخترتها لـ LIST_OF_GROUPS و هي networks
قم بالدخول إلى المجلد networks و تعديل الملف router.db بإضافة الأجهزة التي تريد مراقبتها
core1-sw-jed:cisco:up
core1-sw-riy:cisco:up
mpls-jed:cisco:up
192.168.1.20:cisco:upإعدادات خادم البريد
إضافة السطر التالي في /usr/local/etc/postfix/virtual
rancid-networks user@yourdomain.tld
و من ثم postmap /usr/local/etc/postfix/virtual لإعتماد التغييرات في بوستفيكس. بهذه الخطوة، أي بريد موجه إلى rancid-networks سيقوم بوستفيكس بتوجيهه إلى user@yourdomain.tld
إعدادات الـ cron
و لقد قمت بالدخول بالمستخدم rancid و كتابة الأمر التالي لتعديل ملف الـ cron لهذا المستخدم
$ crontab -e
و من ثم إضافة السطرين التاليين:
# Run config differ every hour
0 * * * * /usr/local/bin/rancid-run
# Clean out config differ logs (+n keeps n days, so 2 here) at 3:00AM
0 3 * * * /usr/bin/find /usr/local/var/rancid/logs -type f -mtime +2 -exec rm {} \;
المصادر التي استفدت منها في الموضوع
http://www.joe-ma.co.za/page.php?9
http://www.bsdguides.org/guides/freebsd/networking/rancid
http://homepage.mac.com/duling/halfdozen/RANCID-Howto.html#d0e395
تعليقات الزوار
فلة الموضوع .....
فلة الموضوع .....
بحتفظ به ان شاء الله في الجهاز ... مع المواضيع الي احتفظ بيها :)
يسعدني ذلك
و إن شاء الله نشوفك مستخدمه :)
Salam,Its very good
Salam, Its very good software, we used it for long time . but if you want more powerful tool, use expect by build you own script to manage your NOC with it. BemoX
I just knew about it
I just knew about it yesterday and I really liked it, plus it is simple to setup. On the other hand, I agree with you regarding having my own scripts, but I look at it from the point the says: "Why re-invent the wheel?"
Thanks for your input.
rplay
Salam,
After long use, you ill knew why you must re-invent the wheel :-)
for example, RANCID keep all password in clear text in cloginrc!!!
btw, its not about re-inventing the wheel per say.... its about expanding the wheel.
BemoX
This is what I didn't like
This is what I didn't like about the clogin file but it is not much of an issue as the file is 0600, so no one can read it, unless they logged in with the owner account. In my case, no one can login to that box unless they have a proper certificate, because SSH doesn't not allow user/password authentications, it is only certificate based.
Oh, I can't argue on the fact of "expanding the wheel", you are absolutely right and I agree with that.
Again, Thanks a lot for your valuable feedback
أرسل تعليق جديد