تغيير كلمة مرور المستخدم الجذر (root) يوميا !

الكاتب: SilenCker في 9 يونيو 2010

بسم الله الرحمن الرحيم




أعود لكم اليوم وبعد انقطاء طويل عن التدوين بموضوع صغير وخفيف وسريع وهو من فكرة أخي طاهر عيسى أحد زوار المدونة.

كيف لي أن أقوم بتغيير كلمة مرور المستخدم الجذر كل يوم أو كل شهر أو كل ساعة مثلا !؟

الجواب بسيط طبعا، الفكرة في تنفيذ هذا الأمر هو استعمال خصائص CronTab وسكربت bash بسيط للغاية.

أولا نبدأ بكتابة السكربت bash، يحتوي السكربت على متغير يحتوي كلمة مرور قوية عشوائية (تُنشأ من جديد عند كل تنفيذ للسكربت) تحتوي رموزا وأرقاما وحروفا كبيرة وصغيرة، بالاعتماد على الجهاز الوهمي urandom، الكتابة البرمجية لهذا تكون على هذا النحو:

1
PASS=`</dev/urandom tr -dc "A-Za-z0-9*-/+.*=_\|\\#" | head -c16`

ولتغيير كلمة المرور الخاصة بالجذر إلى المولّدة بالأمر السابق نستعمل الأمر passwd على الشكل التالي:

1
2
3
4
passwd root<<SILENCKER
$PASS
$PASS
SILENCKER

لأن تغيير كلمة المرور تتطلب كتابتها وإعادة كتابتها مرة أخرى، بعدها نرسل كلمة المرور الجديدة عبر البريد الالكتروني إلى مدير الخادم بالأمر -طبعا مع تغيير البريد الالكتروني الموجود في الأمر-:

1
echo "The new password is: $PASS\n" | mail -s "Password Changed in $HOSTNAME" silencker@gmail.com

ملاحظة للمبتدئين: الأوامر متسلسلة لأنها تعتمد على المتغير PASS لذلك لا يمكن استعمال الأوامر كل على حدة إلا بفهم منطقها.

فينتج السكربت النهائي:

1
2
3
4
5
6
7
8
9
10
#!/bin/bash

PASS=`</dev/urandom tr -dc "A-Za-z0-9*-/+.*=_\|\\#" | head -c16`;

passwd root<<SILENCKER
$PASS
$PASS
SILENCKER


echo "The new password is: $PASS\n" | mail -s "Password Changed in $HOSTNAME" silencker@gmail.com;

الاستعمال التطبيقي:

حمل السكربت إلى سيرفيرك عبر الأمر:

1
wget http://www.silencker.com/files/pass.sh -O /root/pass; chmod +x /root/pass

قم بفتح الملف وتغيير البريد الالكتروني إلى بريدك الخاص.

بعدها قم بإضافة أمر تشغيله إلى crontab بالمدة الزمنية الفاصلة التي تريد، سوف نستعمل فاصل زمني يقدر بيوم واحد، طبق الأمر crontab -e وقم بإضافة السطر التالي في آخره:

1
0 0 * * * /root/pass

سوف يقوم بتنفيذ السكربت على الساعة الصفر، للاستزادة في موضوع crontab تصفح الرابط .

الشرح مقدم من أخوكم SilenCker
يوم 9 جوان 2010 الموافق لـ26 جمادى الثانية 1431

مقالات ذات علاقة

    8 ردود

  1. طاهر قال:

    السلام عليكم ورحمة الله
    شكرا اخي العزيز على تدوينتك الرائعه حقا
    لقد ساعدتني كثير في هذه التدوينه فيما كنت ابحث عنه
    لك كل التقدير وجاري التجربه بأذن المولى

    • SilenCker قال:

      وعليكم السلام ورحمة الله

      أهلا بك أخي طاهر في المدونة، ومتواجد للخدمة دائما :) .

      أخوك.

  2. طاهر قال:

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

    وكمان سؤال ثاني حاليا لما ندخل على
    silencker.com
    بحولك تلقائي الى
    http://www.silencker.com
    جميله وجدت انه في الاباتشي هذا الخيار لكن لا يحول تلقائي
    هل لي بطريقة الصحيحه لو سمحت
    والسلام عليكم

    • SilenCker قال:

      السلام عليكم ورحمة الله

      نعم يمكن فعل هذا طبعا، فقط يجب علينا مراعاة الجدران النارية بأنواعها وما إلى ذلك، فحتى لو قمنا بالسماح للبورت الجديد عبر قوانين iptables مباشرة فإنه وبإعادة تشغيل للجدار الناري (البرمجية المتحكمة في iptables مثل bfd,csf ..) سوف تعاد قوانين هذه الأخيرة للعمل ويغلق البورت في حال لم يتم وضعه في قوانين هذه الجدران أيضا … ولهذا يجب علينا مراعاة كل جدار على حدة وما أكثر هذه الجدران :)

      بخصوص تحويل www فيتم عملها بقوانين بسيطة لـ mod_rewrite في ملف .htaccess أو في ملف httpd.conf مباشرة.

      أخوك.

  3. M374 S7ruc7 قال:

    بارك الله فيك اخوي العزيز

    رآئع بجد

  4. طاهر قال:

    جميل اخوي silencker
    يعني افهم من كلامك انه ما في امل من عمل الاقتراح الثاني مثلا لو كنا مركبين csf
    اوكي ما في مشكله هي مجرد اقتراح كان للحماية
    تسلم ايدك

    • SilenCker قال:

      وهل قلت ما فيه أمل ؟ :D
      بل قلت يمكن لكن علينا مراعاة جميع الجدران النارية، أو مراعاة الجدران النارية المعروفة وحظر تركيب السكربت على الأنظمة التي تستعمل جدار ناري غير الجدران المدعومة فهذا أبسط وأسهل أليس كذلك :) .

      أخوك.

  5. yasMouh قال:

    شكرا جزيلا على هاذ المعلومات القيمة اخي

علق على المقال

التعليق